Lorsque l’on a une connaissance partielle de la variable (par
exemple, sur un suivi de 12 mois l’évènement n’est pas survenu, mais il
peut survenir ensuite), on dit qu’elle est censurée.
Que vaut-il
mieux mesurer?
- la durée jusqu’à la survenue de l’évènement ?
-
le pourcentage de survenue de l’évènement ? mais ce dernier va être
pénalisé par les perdus de vue.
En pratique, il va y avoir dans
la cohorte deux types de censures selon que les patients sont des exclus
vivants (au delà de la période, l’évènement n’est pas survenu) ou des
perdus de vue qui n’ont pas été suivi sur toute la période.
Le risque instantané
de décès \(h(t)\), c’est l’évolution de
la probabilité de décéder à un instant donné.
Nous allons travailler sur une cohorte de 125 patient·es alcooliques suivis :
str(alc)
## 'data.frame': 125 obs. of 5 variables:
## $ t : int 121 121 40 39 66 64 5 30 34 5 ...
## $ SEVRE : int 0 0 0 0 0 0 1 0 0 0 ...
## $ AGE : int 53 52 45 48 45 42 35 35 41 37 ...
## $ SEXE : int 1 2 2 1 1 1 1 1 1 1 ...
## $ EDVNEG: int 0 0 0 1 0 0 0 0 0 0 ...
On va étudier la variable censurée “délai jusqu’à rechute de la maladie alcoolique”.
| Temps | Patients survivants | Décès | Censure | Prob de décès | Prob de survie | Prob de survie cumulée |
|---|---|---|---|---|---|---|
| 1 | 10 | 0 | 0 | 0 | 1 | 1 |
| 5 | 10 | 1 | 0 | \(\frac{1}{10} = 0,1\) | 0,9 | \(1*0,9 = 0,9\) |
| 14 | 9 | 1 | 0 | \(\frac{1}{9} = 0,11\) | 0,89 | \(0,9*0,89 = 0,8\) |
| 20 | 8 | 1 | 0 | \(\frac{1}{8} = 0,125\) | 0,875 | \(0,8*0875 = 0,7\) |
| 40 | 7 | 1 | 0 | \(\frac{1}{7} = 0,14\) | 0,857 | \(0,7*0,857 = 0,6\) |
| 55 | 6 | 1 | 0 | \(\frac{1}{6} = 0,16\) | 0,84 | \(0,6*0,84 = 0,5\) |
| 60 | 5 | 0 | 1 | - | - | \(0,5\) |
| 75 | 4 | 1 | 0 | \(\frac{1}{(5-1)} = 0,25\) | 0,75 | \(0,5*0,75 = 0,38\) |
| 90 | 3 | 0 | 0 | \(\frac{1}{3}=0\) | 1 | \(1*0,38 = 0,38\) |
La probabilité de survie cumulée prend en compte la censure. La courbe de survie prend en compte les perdus de vue au cours du temps.
library(survival)
plot(survfit(Surv(alc$t,alc$SEVRE) ~ 1), main = 'Courbe de maintien dans l\'abstinence', mark.time = TRUE) # le mark.time correspond à chacune des observations censurées
# en modifiant l'affichage on peut afficher plusieurs courbes de survie correspondant à plusieurs groupes de sujets
plot(survfit(Surv(t, SEVRE) ~ SEXE, data = alc), col = c('black', 'red'), main = 'Courbe de maintien dans l\'abstinence', mark.time = TRUE)
legend(x = 'topright', lty = c(1,1), legend = c('Hommes', 'Femmes'), col = c('black', 'red'))
survfit(Surv(alc$t,alc$SEVRE) ~ 1) # la médiane de survie est NA car plus de la moitié des sujets sont toujours sevrés à la fin de l'observation, on ne peut donc pas estimer la médiane de survie
## Call: survfit(formula = Surv(alc$t, alc$SEVRE) ~ 1)
##
## n events median 0.95LCL 0.95UCL
## [1,] 125 27 NA 160 NA
On aimerait savoir s’il existe une différence de survie entre les
hommes et les femmes, il faut alors utiliser un test du
log-rank
Attention aux conditions de
validité, il faut soit de nombreux temps de décès ou alors de
nombreux morts à chaque temps de décès.
library(survival)
#
plot(survfit(Surv(t, SEVRE) ~ SEXE, data = alc), col = c('black', 'red'), main = 'Courbe de maintien dans l\'abstinence', mark.time = TRUE)
legend(x = 'topright', lty = c(1,1), legend = c('Hommes', 'Femmes'), col = c('black', 'red'))
survdiff(Surv(t, SEVRE) ~ SEXE, data = alc)
## Call:
## survdiff(formula = Surv(t, SEVRE) ~ SEXE, data = alc)
##
## N Observed Expected (O-E)^2/E (O-E)^2/V
## SEXE=1 107 24 23.74 0.00281 0.0235
## SEXE=2 18 3 3.26 0.02046 0.0235
##
## Chisq= 0 on 1 degrees of freedom, p= 0.9
Le \(p = 0,9\), il n’y a pas de différence entre les deux sexes.
On pourrait tester l’association entre la rechute et l’âge, nous allons utiliser le modèle de Cox.
coxph(Surv(t, SEVRE) ~ AGE, data = alc)
## Call:
## coxph(formula = Surv(t, SEVRE) ~ AGE, data = alc)
##
## coef exp(coef) se(coef) z p
## AGE -0.04671 0.95436 0.02349 -1.989 0.0467
##
## Likelihood ratio test=4.09 on 1 df, p=0.04312
## n= 125, number of events= 27
\(p = 0.0467\), au risque de 5% on peut dire qu’il y a une association significative entre le risque de rechute et l’âge. Le coefficient étant négatif (- 0.04671) signifie que la survenue de la rechute sera plus tardive pour les gens plus âgés (l’âge a tendance à protéger de la rechute).
Par exemple, on peut tester la rechute de la maladie alcoolique en fonction de l’âge, du sexe, de la survenue d’évènements de vie. C’est encore le modèle de Cox.
mod <- coxph(Surv(t, SEVRE) ~ AGE + SEXE + EDVNEG, data = alc)
summary(mod)
## Call:
## coxph(formula = Surv(t, SEVRE) ~ AGE + SEXE + EDVNEG, data = alc)
##
## n= 125, number of events= 27
##
## coef exp(coef) se(coef) z Pr(>|z|)
## AGE -0.04733 0.95378 0.02367 -1.999 0.0456 *
## SEXE -0.01511 0.98500 0.62057 -0.024 0.9806
## EDVNEG -0.44278 0.64225 1.02405 -0.432 0.6655
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## exp(coef) exp(-coef) lower .95 upper .95
## AGE 0.9538 1.048 0.9105 0.9991
## SEXE 0.9850 1.015 0.2919 3.3240
## EDVNEG 0.6422 1.557 0.0863 4.7794
##
## Concordance= 0.628 (se = 0.058 )
## Likelihood ratio test= 4.31 on 3 df, p=0.2
## Wald test = 4.15 on 3 df, p=0.2
## Score (logrank) test = 4.23 on 3 df, p=0.2
On observe que seulement l’âge est associé au risque de survenue de
la rechute \(p = 0.0456\).
Les
coefficients sont négatifs (donc avec un rôle plutôt protecteur) mais
leur valeur n’est pas facile à interpréter. Encore une fois,
l’exponentielle de leur valeur peut être intéressante (surtout quand la
variable est binaire).
Pour les évènements de vie négatifs, nous
avons 36% (1 - 0.6422) de chances de moins de présenter un risque de
rechute à un instant donné. Ceci correspond à un hazard
ratio (ou rapport des risques instantannés de décès), la
présence d’un évènement de vie diminuerait de 36% le risque de rechute
ininterprétable dans ce cas car seulement 5 évènements de vie dans
la cohorte et NS.
plot(cox.zph(mod))par(mfrow= c(2,2)) # sert à fractionner en quatre cadrans la fenêtre du plot
plot(cox.zph(mod))
Il faut vérifier que les trois courbes sont le plus horizontal possible (ce qui est globalement le cas ici). Donc, l’hypothèse des risques instantanés proportionnels est vérifiée ici.
Ce qui ne change pas ou peu par rapport à la régression linéaire, c’est l’utilisation de variables catégorielles à plus de deux classes (qui seront re-codées en variables binaires) comme la profession et la recherche d’intéraction entre des variables explicatives (avec le signe *).