Comment estimer la fonction de risque de base dans le modèle de Cox avec R

13

J'ai besoin d'estimer la fonction de risque de base dans un modèle de Cox dépendant du tempsλ0(t)

λ(t)=λ0(t)exp(Z(t)β)

Pendant que je suivais le cours de survie, je me souviens que la dérivée directe de la fonction de risque cumulatif ( ) ne serait pas un bon estimateur car l'estimateur de Breslow donne une fonction de pas.λ0(t)dt=dΛ0(t)

Alors, y a-t-il une fonction dans R que je pourrais utiliser directement? Ou toute référence sur ce sujet?

Je ne sais pas s'il vaut la peine d'ouvrir une autre question, alors j'ajoute juste quelques informations sur la raison pour laquelle la fonction de risque de base est importante pour moi. La formule ci-dessous estime la probabilité que le temps de survie d'un sujet soit plus grand qu'un autre. Dans le cadre d'un modèle de Cox, la fonction de risque de base est requise. λ0(t)

P(T1>T2)=0S1(t)dS2(t)=0S1(t)S2(t)λ2(t)dt

allonger
la source
2
est-ce que cela aide? stats.stackexchange.com/questions/36015/…
ocram
À propos de l'estimation de Breslow: stats.stackexchange.com/questions/20747/…
Stéphane Laurent
La formule (4) de cet article donne une estimation. jstor.org/stable/2530904
Elong

Réponses:

20

Un modèle de Cox a été explicitement conçu pour pouvoir estimer les ratios de risque sans avoir à estimer la fonction de risque de base. C'est une force et une faiblesse. La force est que vous ne pouvez pas faire d’erreurs dans des fonctions que vous n’estimez pas. C'est une véritable force et c'est la raison pour laquelle les gens l'appellent "semi-paramétrique" et est en grande partie responsable de sa popularité. Cependant, c'est aussi une véritable faiblesse, car une fois que vous voulez savoir autre chose que le rapport de risque, vous aurez souvent besoin de la fonction de risque de base et qui va à l'encontre de l'objectif même d'un modèle de Cox.

J'ai donc tendance à utiliser les modèles Cox uniquement lorsque je suis intéressé par les ratios de risque et rien d'autre. Si je veux en savoir plus, je passe généralement à d'autres modèles comme ceux dont il est question ici: http://www.stata.com/bookstore/flexible-parametric-survival-analysis-stata/

Maarten Buis
la source
2
+1 Il s'agit d'une autre façon de modéliser de manière paramétrique les données de danger de base.princeton.edu/wws509/notes/c7s4.html
boscovich
3

La fonction de risque de base peut être estimée dans R à l'aide de la fonction "basehaz". Le fichier "aide" indique que c'est la fonction "survie prédite" qui n'est clairement pas. Si l'on inspecte le code, c'est clairement la fonction de risque cumulatif d'un survfitobjet. Pour plus de bêtise, le paramètre par défaut est celui centered=TRUEqui a) n'est pas une fonction de danger de base (comme son nom l'indique), et b) utilise une prédiction au moyen qui est largement discréditée comme valide dans n'importe quel sens pratique.

Et à votre point précédent: oui, cette fonction utilise la fonction step. Vous pouvez transformer cette sortie en fonction de danger à l'aide du lissage. Le pire dans tout cela, quel est l'intervalle d'incertitude pour cette prédiction? Vous pouvez obtenir une médaille Fields si vous pouvez la dériver. Je ne pense pas que nous sachions même si le bootstrap fonctionne ou non.

Par exemple:

set.seed(1234)
x <- rweibull(1000, 2, 3)
coxfit <- coxph(Surv(x) ~ 1)
bhest <- basehaz(coxfit)
haz <- exp(diff(bhest[, 1])*diff(bhest[, 2]))
time <- (bhest[-1,2] + bhest[-1000, 2])/2
b <- 2^-3

curve(3*b*x, from=0, to=max(x), xlab='Survival time', ylab='Weibull hazard')
points(t <- bhest[-1,2], h <- diff(bhest[, 1])/diff(bhest[, 2]), col='grey')
smooth <- loess.smooth(t, h)
lines(smooth$x, smooth$y, col='red')
legend('topright', lty=c(1,1,0), col=c('black', 'red', 'grey'), pch=c(NA,NA,1), c('Actual hazard fun', 'Smoothed hazard fun', 'Stepped discrete-time hazards'), bg='white')

entrez la description de l'image ici

AdamO
la source