我想使用训练数据集估计的 beta 系数来估计验证数据集的生存函数。生存函数写成如下:
因此,第一步是估计基线生存函数: 。
因此,我需要使用 Breslow 方法估计训练数据集上的基线累积风险函数:
survfit
我的问题是:估计函数使用什么选项/公式 ?
我试过Surv(time, status) ~ 1
没有协变量。我也试过survfit
withSurv(...)
和 with coxph(Surv(...))
。
data(cancer, package="survival")
cox.mel <- coxph(Surv(time, status) ~ 1, data = cancer)
fit1 <- survfit(cox.mel, type='breslow', centered=T)
fit2 <- survfit(cox.mel, type='breslow', centered=F)
fit3 <- survfit(Surv(time, status) ~ 1, data = cancer, stype = 2, se.fit = TRUE)
fit4 <- survfit(Surv(time, status) ~ 1, data = cancer, ctype =1, se.fit = TRUE)
我发现这个 R 函数glmnet_basesurv允许计算 Breslow 基线危险估计器。它给了我不同的结果,我很想知道什么是正确的计算公式。在估计 ? 时是否应考虑协变量?
lp <- predict(coxph(Surv(time, status) ~ 1, data = cancer) ,type="lp", newdata = cancer)
fit. <- glmnet_basesurv(cancer$time, cancer$status, lp=lp)
tail(cbind(fit1$cumhaz,fit2$cumhaz,fit3$cumhaz,fit4$cumhaz,fit.$cumulative_base_hazard))
[,1] [,2] [,3] [,4] [,5]
[181,] 2.639267 2.639267 2.639267 2.639267 1.081732
[182,] 2.639267 2.639267 2.639267 2.639267 1.281732
[183,] 2.889267 2.889267 2.889267 2.889267 1.396399
[184,] 2.889267 2.889267 2.889267 2.889267 1.615065
[185,] 2.889267 2.889267 2.889267 2.889267 2.115065
[186,] 2.889267 2.889267 2.889267 2.889267 3.115065
谢谢您的帮助!