Risques concurrents en R : incidence cumulée et Fine-Gray
Quand un patient peut échouer par plus d’une cause, le Kaplan-Meier naïf surestime le risque — estimez la fonction d’incidence cumulée avec tidycmprsk, testez-la avec le test de Gray, et modélisez-la avec une régression spécifique à la cause et Fine-Gray
Réalisez une analyse de risques concurrents en R avec les packages survival et tidycmprsk. Comprenez pourquoi 1 - Kaplan-Meier surestime l’incidence cumulée d’un événement quand un événement concurrent (comme le décès) peut survenir en premier, estimez la fonction d’incidence cumulée (CIF) avec cuminc et tracez-la avec ggcuminc de ggsurvfit, comparez les groupes avec le test de Gray, et choisissez entre un modèle de Cox spécifique à la cause et un modèle de risque de sous-répartition Fine-Gray — sur le jeu de données mgus2 du package survival.
Date de publication
26 juin 2026
Modifié
7 juillet 2026
AstucePoints clés
Les risques concurrents apparaissent quand un patient peut échouer par plus d’une cause et qu’un événement empêche d’observer l’autre — le plus souvent, un décès avant l’événement d’intérêt (par exemple la progression de la maladie). Un événement concurrent n’est pas une censure ordinaire : un patient censuré pourrait encore connaître l’événement, un patient décédé ne le pourra jamais.
Traiter un événement concurrent comme une censure et lire 1 − Kaplan-Meier comme l’incidence surestime le risque. Sur les données mgus2, la courbe naïve situe l’incidence de progression à 20 ans à ~21 %, alors que la fonction d’incidence cumulée (CIF) correcte la situe à ~10 % — l’écart est le biais.
Le bon résumé est la fonction d’incidence cumulée : estimez-la avec tidycmprsk::cuminc(Surv(time, event) ~ group), tracez-la avec ggsurvfit::ggcuminc(), et comparez les groupes avec le test de Gray (affiché par cuminc()).
Deux modèles de régression répondent à deux questions différentes : le modèle de Cox spécifique à la cause (censurer le concurrent) sert à l’étiologie (« cette covariable influence-t-elle le taux d’événement ? ») ; le modèle de sous-répartition Fine-Graycrr() sert à la prédiction (« cette covariable modifie-t-elle l’incidence cumulée ? »). Ils peuvent diverger — et c’est informatif, pas un bug.
La variable d’événement doit être un facteur dont le premier niveau est le code de censure — réussissez le codage et toute l’analyse en découle.
Introduction
Imaginez un essai en oncologie dans une population âgée. Vous voulez le temps jusqu’à la progression de la maladie, mais de nombreux patients meurent d’autre chose avant — une crise cardiaque, une infection, un second cancer. Un patient qui meurt ne peut jamais progresser : le décès l’a retiré de la population qui pouvait encore connaître l’événement qui vous intéresse.
C’est un risque concurrent, et il met en échec la boîte à outils standard de la survie. L’ estimateur de Kaplan-Meier et le modèle de Cox supposent qu’un patient qui sort de votre champ de vue est censuré — qu’il pourrait encore connaître l’événement si vous continuiez à le suivre. C’est vrai pour un patient qui a simplement atteint la fin de l’étude. C’est faux pour un patient décédé : il est parti pour de bon. Censurez les décès et faites comme s’ils pouvaient encore progresser, et vous surestimez combien de patients vont progresser.
Cette leçon traite les risques concurrents correctement avec survival et tidycmprsk, en utilisant le jeu de données mgus2 — un problème de risques concurrents classique où des patients atteints de gammapathie monoclonale peuvent soit progresser vers une hémopathie plasmocytaire, soit mourir avant.
NoteÉvénement concurrent ou censure — la distinction à bien comprendre
Un patient quitte l’ensemble à risque pour l’une de deux raisons :
Censure — nous avons arrêté d’observer (fin de l’étude, perdu de vue). Il pourrait encore connaître l’ événement. L’analyse de survie standard gère ce cas.
Événement concurrent — un autre événement est survenu qui rend l’événement d’intérêt impossible (décès avant la progression). Il ne pourra jamais le connaître désormais.
Traitez un événement concurrent comme une censure et vous supposez l’impossible — qu’un patient décédé pourrait encore progresser. Cette seule erreur est ce qui gonfle le risque.
Les données : progression ou décès dans mgus2
Nous utilisons mgus2, fourni avec le package survival : 1384 patients atteints de gammapathie monoclonale de signification indéterminée (MGUS), suivis pendant des décennies. Deux choses peuvent arriver :
Progression vers une hémopathie plasmocytaire (PCM) — l’événement d’intérêt — enregistrée par pstat (1 = a progressé) au temps ptime (mois).
Décès — l’événement concurrent — enregistré par death (1 = décédé) au temps futime (mois).
id age sex ptime pstat futime death
1 1 88 F 30 0 30 1
2 2 78 F 25 0 25 1
3 3 94 M 46 0 46 1
4 4 68 M 92 0 92 1
5 5 90 F 8 0 8 1
6 6 90 M 4 0 4 1
Construire la variable d’événement unique de risques concurrents
Les risques concurrents nécessitent un temps et une variable d’événement avec un code pour chaque issue. La règle : si un patient a progressé, utilisez le temps de progression et codez-le comme l’événement ; sinon, utilisez le temps de suivi et codez-le comme décès ou censure. tidycmprsk exige que l’événement soit un factor dont le premier niveau est le code de censure — tout ce qui suit en dépend.
library(survival)mg <- mgus2# One event time: progression time if progressed, else follow-up timemg$etime <-ifelse(mg$pstat ==1, mg$ptime, mg$futime)# One event code: 0 = censored, 1 = progression (PCM), 2 = deathecode <-with(mg, ifelse(pstat ==1, 1, ifelse(death ==1, 2, 0)))# Factor with the CENSOR level FIRST (tidycmprsk requirement)mg$event <-factor(ecode, levels =c(0, 1, 2),labels =c("censor", "pcm", "death"))table(mg$event)
censor pcm death
409 115 860
Ainsi, 115 patients ont progressé, 860 sont décédés avant (l’événement concurrent), et 409 ont été censurés. Avec des décès dépassant les progressions d’environ 7 contre 1, le risque concurrent est énorme — exactement la situation où l’ignorer tourne très mal.
Pourquoi le Kaplan-Meier naïf est faux
Voici l’erreur en une seule figure. Pour obtenir l’« incidence de progression » de manière naïve, vous traiteriez le décès comme une censure et liriez 1 − KM. Tracez cela face à la fonction d’incidence cumulée correcte pour le même événement — l’écart est la surestimation.
library(survival)library(tidycmprsk)library(ggsurvfit)mg <- mgus2mg$etime <-ifelse(mg$pstat ==1, mg$ptime, mg$futime)ecode <-with(mg, ifelse(pstat ==1, 1, ifelse(death ==1, 2, 0)))mg$event <-factor(ecode, levels =c(0, 1, 2), labels =c("censor", "pcm", "death"))# NAIVE: treat death as censoring, take 1 - KM for progressionmg$pcm_only <-as.numeric(mg$event =="pcm")km <-survfit(Surv(etime, pcm_only) ~1, data = mg)naive <-data.frame(time = km$time, est =1- km$surv, method ="Naive (1 - Kaplan-Meier)")# CORRECT: cumulative incidence function for progressionci <-cuminc(Surv(etime, event) ~1, data = mg)cif <-tidy(ci)cif <- cif[cif$outcome =="pcm", ]cif <-data.frame(time = cif$time, est = cif$estimate, method ="Cumulative incidence (correct)")both <-rbind(naive, cif)ggplot(both, aes(time, est, colour = method)) +geom_step(linewidth =0.9) +scale_colour_manual(values =c("Cumulative incidence (correct)"="#3a86d4","Naive (1 - Kaplan-Meier)"="#d1495b")) +scale_y_continuous(labels = scales::percent) +labs(x ="Months since MGUS diagnosis", y ="Probability of progression",colour =NULL,title ="Progression to plasma-cell malignancy",subtitle ="Naive 1 - KM (red) overstates the incidence; the CIF (blue) is correct") +theme_minimal() +theme(legend.position ="bottom")
Les deux courbes répondent à la même question — « quelle fraction des patients a progressé au temps t ? » — et donnent des réponses très différentes :
Temps (mois)
1 − KM naïf
Incidence cumulée (CIF)
60
4.2%
3.4%
120
9.5%
6.4%
240
21.0%
10.0%
À 20 ans, la méthode naïve indique que 21 % ont progressé ; la vérité est ~10 %. La courbe naïve continue de grimper parce qu’elle crédite chaque patient qui est décédé de la possibilité de quand même progresser — des patients qui ne le peuvent pas. La CIF ne compte que les progressions qui surviennent réellement parmi ceux encore en vie et à risque. Plus il y a de décès concurrents, plus l’écart est large.
La fonction d’incidence cumulée
La fonction d’incidence cumulée (CIF) d’un événement est la probabilité d’avoir connu cet événement spécifique au temps t, en tenant compte du fait que les événements concurrents retirent des patients du risque. C’est le résumé correct et cliniquement interprétable. Estimez-la avec tidycmprsk::cuminc() — un seul modèle vous donne la CIF pour chaque type d’événement à la fois :
Lisez les deux blocs : la CIF pour la progression (pcm) et la CIF pour le décès. À tout horizon, les deux s’additionnent pour donner la fraction totale ayant connu un événement. Extrayez l’estimation à un temps choisi avec tidy() :
À 120 mois, l’incidence cumulée de progression est de 6.4 % (IC à 95 % 5.1–7.8 %) et celle de décès de 53.2 % — une population où le décès domine.
Comparer les groupes avec le test de Gray
Pour comparer l’incidence cumulée entre groupes, placez la variable de regroupement à droite de la formule et lisez le test de Gray que cuminc() affiche — c’est l’analogue, pour les risques concurrents, du test log-rank, exécuté séparément pour chaque type d’événement :
Progression (pcm) : test de Gray p = 0.27. Aucune différence convaincante entre hommes et femmes dans l’ incidence cumulée de progression.
Décès : test de Gray p < 0.001. Les hommes ont une incidence cumulée de décès plus élevée — les courbes se séparent nettement.
Donc le sexe compte pour le risque concurrent de décès, pas pour la progression elle-même — une distinction que l’analyse naïve aurait brouillée.
Tracer la CIF — ggcuminc() (la figure emblématique des risques concurrents)
Tracez un objet cuminc() directement avec ggsurvfit::ggcuminc() — la courbe de risques concurrents prête à publier, avec bandes de confiance, table des effectifs à risque et le p de Gray placé sur le panneau :
library(survival)library(tidycmprsk)library(ggsurvfit)mg <- mgus2mg$etime <-ifelse(mg$pstat ==1, mg$ptime, mg$futime)ecode <-with(mg, ifelse(pstat ==1, 1, ifelse(death ==1, 2, 0)))mg$event <-factor(ecode, levels =c(0, 1, 2), labels =c("censor", "pcm", "death"))ci_sex <-cuminc(Surv(etime, event) ~ sex, data = mg)ggcuminc(ci_sex, outcome ="pcm") +add_confidence_interval() +add_risktable() +add_pvalue("annotation", location ="annotation", x =200, y =0.18) +scale_ggsurvfit() +scale_colour_manual(values =c("#3a86d4", "#d1495b")) +scale_fill_manual(values =c("#3a86d4", "#d1495b")) +labs(x ="Months since MGUS diagnosis", y ="Cumulative incidence of progression")
outcome = "pcm" choisit l’événement à tracer (vous remplaceriez par "death" pour tracer le risque concurrent). Les deux courbes restent proches l’une de l’autre — le pendant visuel du p = 0.27 de Gray.
Deux risques, deux questions : spécifique à la cause ou Fine-Gray
Pour une modélisation ajustée sur covariables, vous avez deux modèles de régression, et ils répondent à des questions différentes. Bien comprendre ce point est au cœur des risques concurrents.
ImportantQuel modèle ? Étiologie ou prédiction
Risque spécifique à la cause — ajustez un modèle de Cox sur l’événement d’intérêt, en traitant les événements concurrents comme une censure. Il répond : « Parmi les patients encore en vie et sans événement, cette covariable modifie-t-elle le taux auquel l’événement survient ? » Utilisez-le pour l’étiologie / le mécanisme — ce facteur influence-t-il biologiquement l’événement ?
Risque de sous-répartition (Fine-Gray) — ajustez crr(), qui maintient les patients ayant connu un événement concurrent dans l’ensemble à risque. Il répond : « Cette covariable modifie-t-elle l’incidence cumulée de l’ événement ? » Utilisez-le pour la prédiction / le risque — quelle est la probabilité réelle de l’événement pour un patient, sachant qu’il pourrait mourir avant ?
Ils peuvent pointer dans des directions différentes, et c’est informatif. Un rapport courant présente les deux.
Modèle de Cox spécifique à la cause
Ajustez un modèle de Cox sur la progression, en censurant le décès — c’est le risque spécifique à la cause :
age : HR spécifique à la cause ≈ 1.01 par année (p = 0.11) — parmi les patients encore en vie et sans événement, l’âge ne modifie pas significativement le taux de progression.
Modèle de sous-répartition Fine-Gray
Maintenant le modèle Fine-Gray avec crr() — mêmes covariables, mais il modélise l’incidence cumulée directement, en maintenant les patients décédés dans l’ensemble à risque :
Variable Coef SE HR 95% CI p-value
sexM -0.260 0.186 0.77 0.54, 1.11 0.16
age -0.017 0.006 0.98 0.97, 0.99 0.003
failcode = "pcm" nomme l’événement d’intérêt ; les autres niveaux sont traités automatiquement comme l’événement concurrent / la censure. Lisez les rapports de risque de sous-répartition (subHR) :
sex (homme) : subHR = 0.77, IC à 95 % 0.54–1.11, p = 0.16. Aucun effet convaincant du sexe sur l’ incidence cumulée de progression — cohérent avec le test de Gray.
age : subHR = 0.98 par année, IC à 95 % 0.97–0.99, p = 0.003. Chaque année supplémentaire d’âge est associée à une incidence cumulée plus faible de progression — un effet significatif.
Pourquoi les deux modèles divergent sur l’âge — et ce que cela signifie
Regardez ce qui vient de se passer avec l’âge :
Modèle
Effet de l’âge
p
Interprétation
Cox spécifique à la cause
HR ≈ 1.01 (aucun effet)
0.11
L’âge ne modifie pas le taux de progression
Sous-répartition Fine-Gray
subHR ≈ 0.98 (inférieur à 1)
0.003
Les patients plus âgés ont une incidence cumulée plus faible de progression
Ce n’est pas une contradiction — c’est tout l’intérêt des risques concurrents. Les patients plus âgés progressent à peu près au même tauxtant qu’ils sont en vie (spécifique à la cause), mais ils sont bien plus susceptibles de mourir avant (le risque concurrent), donc moins d’entre eux atteignent jamais la progression : leur incidence cumulée est plus faible (Fine-Gray). Le risque concurrent de décès, capté par Fine-Gray et invisible pour le modèle spécifique à la cause, fait tout le travail.
Règle pratique : rapportez le modèle spécifique à la cause quand vous demandez « ce facteur influence-t-il la biologie de l’événement ? », et le modèle Fine-Gray quand vous demandez « quel est le risque réel d’événement pour un patient au cours du temps ? » Pour une discussion clinique sur le risque avec un patient, Fine-Gray est généralement celui que vous voulez.
Rapport
Chez 1384 patients atteints de MGUS (mgus2), 115 ont progressé vers une hémopathie plasmocytaire et 860 sont décédés avant. En tenant compte du risque concurrent de décès, l’incidence cumulée de progression était de 6.4 % (IC à 95 % 5.1–7.8 %) à 10 ans et de 10.0 % à 20 ans — nettement en dessous de l’estimation naïve 1 − Kaplan-Meier de 21 % à 20 ans, qui traite incorrectement les décès comme censurés. Le test de Gray n’a montré aucune différence dans l’ incidence cumulée de progression selon le sexe (p = 0.27), mais une incidence de décès plus élevée chez les hommes (p < 0.001). Dans un modèle de sous-répartition Fine-Gray, un âge plus avancé était associé à une incidence cumulée plus faible de progression (subHR = 0.98 par année, IC à 95 % 0.97–0.99, p = 0.003), du fait de la mortalité concurrente plus élevée aux âges avancés ; le risque spécifique à la cause de progression n’a pas changé avec l’âge (HR = 1.01, p = 0.11).
NoteLes maths derrière la fonction d’incidence cumulée (optionnel)
Pour le type d’événement \(k\), le risque spécifique à la cause\(h_k(t)\) est le taux instantané d’événement \(k\) parmi ceux encore sans événement et en vie. La fonction d’incidence cumulée pour l’événement \(k\) se construit à partir de son risque pondéré par la survie globale\(S(t)\) — la probabilité d’être encore à risque tout court :
\[
F_k(t) = \int_0^t S(u^-)\, h_k(u)\, du
\]
Le terme clé est \(S(u^-)\), la probabilité de n’avoir eu aucun événement d’aucune sorte juste avant \(u\). Il tire la CIF en dessous de \(1 - \exp\!\big(-\int h_k\big)\) — la quantité qu’estime \(1 - \mathrm{KM}\) — parce que \(S\) diminue à mesure que surviennent des événements concurrents, pas seulement les événements de type \(k\). Sans risques concurrents, \(S\) ne dépend que de \(h_k\) et les deux coïncident ; avec des risques concurrents, \(S\) chute plus vite et la CIF reste plus basse. Le risque de sous-répartition Fine-Gray\(\bar h_k(t)\) est au contraire défini pour rendre \(F_k(t) = 1 - \exp\!\big(-\int
\bar h_k\big)\), raison pour laquelle un modèle Fine-Gray se rapporte directement à l’incidence cumulée.
Quelle méthode et quand ?
AstuceGuide de décision pour les risques concurrents
Un seul type d’événement, ou des événements concurrents rares (<10 % des patients) → les Kaplan-Meier et Cox standard conviennent.
Un événement concurrent peut survenir en premier et est fréquent → utilisez la fonction d’incidence cumulée (cuminc + ggcuminc), jamais 1 − KM, et comparez les groupes avec le test de Gray.
Ajuster sur covariables, en s’interrogeant sur le taux d’événement / le mécanisme → Cox spécifique à la cause (censurer le concurrent).
Ajuster sur covariables, en s’interrogeant sur le risque cumulé / pour la prédiction → Fine-Graycrr() (risque de sous-répartition).
Événements récurrents, ou un composite « temps jusqu’au premier de n’importe quel événement » → ce ne sont pas des risques concurrents ; utilisez des méthodes standard ou multi-états.
Essayez en direct
Estimez vous-même la fonction d’incidence cumulée sur mgus2 — changez la variable de regroupement, ou tracez outcome = "death" à la place. Le bac à sable démarre au premier Run.
🟢 Avec un agent IA
Demandez à Prova« j’ai un jeu de données de survie où les patients peuvent progresser ou mourir avant — fais une analyse de risques concurrents : fonction d’incidence cumulée, test de Gray et un modèle Fine-Gray » — elle répond avec du code survival + tidycmprsk que vous pouvez exécuter sur vos propres données, avec le facteur d’événement codé correctement. The runtime is the judge.Demander à Prova →
Problèmes courants
Vous avez traité l’événement concurrent comme une censure (l’erreur classique). Lancer survfit(Surv(time, progressed) ~ 1) et lire 1 − KM comme l’incidence de progression traite chaque décès comme « pourrait encore progresser ». Avec une mortalité concurrente substantielle, cela surestime l’incidence — 21 % contre 10 % sur mgus2. Construisez le facteur d’événement multi-niveaux et utilisez plutôt cuminc().
Vous avez lu 1 − KM comme l’incidence cumulée. Même après avoir ajusté le bon modèle, ne retombez pas dans le raisonnement KM : le complément de la courbe de survie n’est pas l’incidence cumulée en présence de risques concurrents. La CIF de cuminc() est la seule estimation correcte de la « fraction ayant connu cet événement au temps t ».
Vous avez confondu les rapports de risque spécifique à la cause et Fine-Gray. Ils répondent à des questions différentes et peuvent diverger (voir l’âge ci-dessus). Un HR spécifique à la cause porte sur le taux de l’événement parmi ceux encore à risque (étiologie) ; un HR de sous-répartition porte sur l’incidence cumulée (prédiction). Précisez lequel vous avez ajusté, et n’interprétez pas un subHR Fine-Gray comme s’il s’agissait d’un rapport de taux spécifique à la cause.
cuminc() renvoie une erreur sur la variable d’événement. tidycmprsk a besoin que l’événement soit un facteur dont le premier niveau est le code de censure (ici "censor"). Un événement numérique, ou un facteur dont l’ordre des niveaux est incorrect, échoue ou renvoie n’importe quoi — définissez levels = c("censor", ...) explicitement.
Questions fréquentes
NoteQuelle est la différence entre un risque concurrent et une censure ?
Un patient censuré est un patient que vous avez cessé d’observer (fin de l’étude, perdu de vue) qui pourrait encore connaître l’événement d’intérêt si on le suivait plus longtemps — l’analyse de survie standard gère ce cas. Un risque concurrent est un autre événement (généralement le décès) qui rend l’événement d’intérêt impossible : un patient qui meurt avant de progresser ne pourra jamais progresser. Traiter un événement concurrent comme une censure suppose l’ impossible et surestime l’incidence de l’événement d’intérêt.
NotePourquoi 1 moins Kaplan-Meier surestime-t-il le risque avec des événements concurrents ?
Parce que l’estimateur de Kaplan-Meier suppose que toute personne retirée de l’ensemble à risque a simplement été censurée et pourrait encore connaître l’événement. Quand des événements concurrents (décès) sont censurés de cette façon, KM crédite ces patients d’une chance future de l’événement qu’ils ne peuvent jamais connaître, donc 1 − KM grimpe trop haut. La fonction d’incidence cumulée ne compte que les événements qui surviennent réellement parmi les patients encore en vie et à risque, donnant l’estimation correcte, plus basse — sur mgus2, 10 % contre les 21 % naïfs à 20 ans.
NoteSpécifique à la cause ou Fine-Gray — quel modèle utiliser ?
Utilisez le modèle de Cox spécifique à la cause (censurer l’événement concurrent) quand vous voulez l’étiologie — cette covariable modifie-t-elle le taux auquel l’événement survient parmi ceux encore à risque ? Utilisez le modèle de sous-répartition Fine-Gray (crr()) quand vous voulez la prédiction / le risque cumulé — cette covariable modifie-t-elle la probabilité réelle de l’événement pour un patient au cours du temps, sachant qu’il pourrait mourir avant ? Ils répondent à des questions différentes et peuvent diverger ; de nombreuses analyses rapportent les deux, Fine-Gray étant préféré pour la communication clinique du risque.
NoteQuel package R utiliser pour les risques concurrents ?
tidycmprsk est le choix moderne : cuminc() pour la fonction d’incidence cumulée et le test de Gray, crr() pour le modèle de sous-répartition Fine-Gray, avec une sortie tidy. Associez-le à ggsurvfit pour des tracés ggcuminc() prêts à publier (bandes de confiance, tables des effectifs à risque, p-values sur le graphique). Le package de base survival fournit les données et le moteur Surv() / coxph() pour le modèle spécifique à la cause.
NoteComment coder la variable d’événement pour tidycmprsk ?
Faites-en un facteur dont le premier niveau est le code de censure. Construisez une variable de temps d’événement (le temps de progression si progression, sinon le temps de suivi) et un code d’événement (par exemple 0 = censuré, 1 = événement d’intérêt, 2 = événement concurrent), puis factor(code, levels = c(0,1,2), labels = c("censor","pcm","death")). L’ordre « censure en premier » est obligatoire — cuminc() et crr() en dépendent.
Testez vos connaissances
ImportantPratique
Exécutez-le. Dans la cellule live ci-dessous, estimez l’incidence cumulée par sexe et relevez la CIF de progression à 120 mois pour chaque sexe. Remplissez le blanc avec l’événement d’intérêt.
Interprétez. Une analyse naïve 1 − KM rapporte une incidence de progression à 5 ans de 18 %, mais la fonction d’incidence cumulée rapporte 11 %. Expliquez en une phrase pourquoi elles diffèrent et laquelle est correcte.
NoteIndice
L’événement d’intérêt est la progression, codée "pcm" dans le facteur. tidy(ci, times = 120) renvoie une ligne par strate × issue ; filtrez sur outcome == "pcm" pour lire la CIF de progression de chaque sexe.
NoteSolution
ci <-cuminc(Surv(etime, event) ~ sex, data = mg)tidy(ci, times =120)[tidy(ci, times =120)$outcome =="pcm", ]#> Female CIF ~ 0.074, Male CIF ~ 0.055 at 120 months — close together,#> matching Gray's test p = 0.27 (no convincing sex difference in progression).
Pour la question 2 : l’estimation 1 − KM (18 %) surestime l’incidence parce qu’elle traite les patients décédés avant de progresser comme s’ils pouvaient encore progresser ; la fonction d’incidence cumulée (11 %) est correcte parce qu’elle tient compte du risque concurrent de décès qui retire ces patients du risque.
AstuceVérification rapide
Un modèle Fine-Gray donne un rapport de risque de sous-répartition de 0.80 (IC à 95 % 0.68–0.94) pour un traitement. Qu’est-ce que cela signifie cliniquement ?
NoteAfficher la réponse
Le traitement est associé à une incidence cumulée 20 % plus faible de l’événement d’intérêt au cours du temps ((1 − 0.80) × 100), en tenant compte du risque concurrent. Comme l’IC à 95 % (0.68–0.94) se situe entièrement en dessous de 1, la réduction est statistiquement convaincante. Notez qu’il s’agit d’une affirmation sur le risque cumulé, non sur le taux d’événement parmi ceux encore à risque — ce serait le risque spécifique à la cause.
Conclusion
Les risques concurrents surgissent dès qu’un patient peut échouer par plus d’une cause et qu’un événement en bloque un autre — le plus souvent un décès avant l’événement d’intérêt. La solution est disciplinée : construisez un facteur d’événement unique (niveau de censure en premier), résumez le risque avec la fonction d’incidence cumulée (cuminc + ggcuminc), jamais 1 − Kaplan-Meier, et comparez les groupes avec le test de Gray. Pour l’ajustement sur covariables, choisissez selon la question : le modèle de Cox spécifique à la cause pour le taux d’événement (étiologie), le modèle Fine-Gray pour l’incidence cumulée (prédiction) — et rappelez-vous qu’ils peuvent diverger, comme l’âge sur mgus2. Réussissez le codage de l’événement et le reste suit.
Prouvez que vous savez le faire. Maîtrisez toute la série Analyse de survie en R — suivez votre parcours, construisez des projets et obtenez un certificat.
Chaque résultat de cette page a été produit par le code montré, exécuté au moment du build contre un environnement R figé — copiez n’importe quel bloc, ou cliquez sur Try ▸ / Run, pour le reproduire vous-même.
@online{2026,
author = {},
title = {Risques concurrents en R : incidence cumulée et Fine-Gray},
date = {2026-06-26},
url = {https://www.datanovia.com/learn/biostatistics/survival-analysis/competing-risks},
langid = {fr}
}