有没有一种方法可以预测R中未来的生存概率



下面是一个示例数据集:

age = runif(200, min = 25, max=70)
profile_id = seq(1, 200)
gender = sample(c("M", "F"), size = 200, replace = T)
start_date = sample(seq(as.Date('2013/01/01'), as.Date('2014/01/01'), by="month"), 200, replace = T)
end_date = sample(seq(as.Date('2014/01/01'), as.Date('2016/01/01'), by="month"), 200, replace = T)
mydf = data.frame(profile_id, age, gender, start_date, end_date)
mydf$end_date[mydf$end_date > as.Date('2015/01/01')] = as.Date('2015/01/01')
mydf$death = ifelse(mydf$end_date < as.Date('2015/01/01'), 1, 0)
mydf$periods_alive = mydf$end_date - mydf$start_date

基本上,如果可能的话,我试图利用某种生存回归模型来预测那些在研究结束时仍然活着的人,他们在研究后未来一段时间的生存概率。例如,在接下来的12个月里,每个月的生存概率。

我知道我可以做下面这样的事情来估计样本期内新观测的生存概率(尽管我不完全确定如何从预测函数中提取概率(:

m1 = survreg(Surv(periods_alive, death)~ age + gender, data = mydf)
mydf_alive = mydf[mydf$death == 0, ]
predict(m1, newdata = mydf_alive, type = 'quantile')

但我很好奇,对于审查后的观察,是否有办法预测未来某个时间T的存活概率。如果有更好的方法来模拟这些概率,我真的不想使用生存分析,但我认为可能有办法做到这一点?如有任何关于如何进行的帮助,我们将不胜感激!

type='quantile'一起使用的predict.survreg函数默认为c(0.1,0.9)的p(百分位数(参数。因此,你得到了一个矩阵,其中包含每个幸存者的2个预测生存概率。"0.1"列是直到预测存活率达到90%的预测天数,而0.9列是直到预计存活率达到10%的预测天数。(当考虑幸存者的剩余数量时,每个百分位数都是100%的补充。它们实际上是达到指定累积危险之前的预测时间。((你应该阅读?predict.survreg(

我们基本上是在假设马尔可夫性质。概率不会改变。如果有人还活着,那么你基本上是在把他们的生存率重置为100%,让时间继续下去。我想你可能会想把他们的年龄调整到当前的年龄值,如果这是对当前的幸存者进行的话

相关内容

  • 没有找到相关文章

最新更新