繁体   English   中英

获得每个个体的K​​aplan-Meier生存风险

[英]Obtain Kaplan-Meier survival risk per individual instance

问题

给定具有timestatus变量(除其他外)的n位患者记录,我希望在它们处于2、4、6、8、10年内的时间段内获得其生存风险。

我的分部为24-47个月(2年),48-83个月(4年),84-107个月(6年),108-119个月(8年)和120-“根据情况而定” (10年)。

从个人的角度来看,生存期为30个月的患者将包括在两年期间,以及其他预测变量,我想知道该患者在两年内的生存风险。

我的方法

我正在使用此线程中描述R代码检索数据的生存风险百分比。

km <- survfit(Surv(time, status)~1, data=mydata)
survest <- stepfun(km$time, c(1, km$surv))

time变量是生存月份,生存status和死亡status值分别为10

代码输出如下所示(从此处获取 ):

> 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)但是结果已经收敛到某个值,并且不能解决我的问题。

如我的评论中所述,我认为不可能获得单个患者的KM估计值。 KM估算器可提供人口水平上某个时间点观察到的生存概率。 但是,观察到的个体的生存概率为0(死亡)或1(存活),两者之间没有任何关系。

代替观察到的生存概率,您将必须使用某种模型(例如Cox PH,加速故障时间模型,神经网络等)来获得预测的生存概率。 这些概率通知您有关具有特定变量组合的个体在特定时间点存活的风险。

更新:示例代码基于此处提供的OP的代码

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软件包中使用cindex函数)和校准(具有校准图,请参阅rms软件包)评估模型的预测性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM