鉴于带有time
和status
变量(以及其他)的 n - 患者记录,我希望在他们所在的时间段内获得他们的生存风险,即2,4,6,8,10年。
我有24-47个月(2年),48-83个月(4年),84-107个月(6年),108-119个月(8年)和120-的分工“到什么可用“月(10年)。
从个体角度来看,生存月份为30个月的患者将被纳入两年期,并与其他预测变量一起,我希望在两年内了解该患者的生存风险。
我正在使用R code described in this thread检索我的数据的生存风险百分比。
km <- survfit(Surv(time, status)~1, data=mydata)
survest <- stepfun(km$time, c(1, km$surv))
time
变量是生存月,status
分别为alive和dead 1
和0
。
代码输出类似的东西(取自here):
> survest(0:100)
[1] 1.0000000 0.9854015 0.9781022 0.9708029 0.9635036 0.9635036 0.9635036
[8] 0.9416058 0.9124088 0.9124088 0.8978102 0.8905109 0.8759124 0.8613139
[15] 0.8613139 0.8467153 0.8394161 0.8394161 0.8175182 0.8029197 0.7883212
[22] 0.7737226 0.7664234 0.7664234 0.7518248 0.7299270 0.7299270 0.7225540
[29] 0.7225540 0.7151810 0.7004350 0.6856890 0.6856890 0.6783160 0.6783160
我的问题是:这些是我需要使用survest(0:300000)
的300,000条个人记录的实际生存估计值吗?我试过survest(0:1000)
,但结果已经收敛到某个值,这不能解决我的问题。
答案 0 :(得分:1)
正如我的评论所述,我认为不可能对个别患者进行KM估计。 KM估计器在人口水平上给出在某个时间点观察到的生存概率。然而,观察到的个体存活概率为0(死亡)或1(存活),两者之间没有任何关系。
除了观察到的生存概率,您还必须使用某种模型(例如Cox PH,加速失效时间模型,神经网络等)来获得预测的生存概率。这些概率告诉您具有该特定变量组合的个体在特定时间点存活的风险。
更新:使用基于OP提供的代码的示例代码here
library(pec) ; library(rms)
# Simulate data
set.seed(1)
examp.data <- SimSurv(3000)
# fit a Cox model with predictors X1+X2
coxmodel <- cph(Surv(time,status)~X1+X2, data=examp.data, surv=TRUE)
# predicted survival probabilities can be extracted at selected time-points:
ttt <- quantile(examp.data$time)
ttt
# 0% 25% 50% 75% 100%
#6.959458e-03 9.505409e+00 3.077284e+01 7.384565e+01 7.100556e+02
# Get predicted survival probabilities at selected time-points:
preds <- predictSurvProb(coxmodel, newdata=examp.data, times=ttt)
# Store in original data
examp.data$predict.surv.prob.Q1 <- preds[,1] # pred. surv. prob. at 0.006959458
examp.data$predict.surv.prob.Q2 <- preds[,2] # pred. surv. prob. at 9.505409
examp.data$predict.surv.prob.Q3 <- preds[,3] # pred. surv. prob. at 30.77284
examp.data$predict.surv.prob.Q4 <- preds[,4] # pred. surv. prob. at 73.84565
examp.data$predict.surv.prob.Q5 <- preds[,5] # pred. surv. prob. at 710.0556
现在,您可以预测数据中每个人的5个时间点的生存概率。当然,您需要根据区分(例如,使用pec-package中的函数cindex
)和校准(使用校准图,参见rms-package)来评估模型的预测性能。