使用R中的RMS包预测生存?

问题描述 投票:1回答:2

我正在使用RMS包中的函数survest来生成生存概率。我希望能够获取我的数据的子集并通过survest传递它。我开发了一个执行此操作的for循环。这运行并输出每组预测变量的生存概率。

for (i in 1:nrow(df)){
  row <- df[i,]
  print(row)
  surv=survest(fit, row, times=365)
  print(surv)
  }

我的第一个问题是,是否有办法使用survest来预测中位数生存而不是必须指定一个特定的时间范围,或者是否有更好的功能使用?

其次,我希望能够仅使用我的考克斯模型的五个预测变量中的四个预测生存率(如下所示),而我理解这可能不太准确,是否可以使用survest来做到这一点?

survest(fit, expand.grid(Years.to.birth =NA, Tumor.stage=1, Date=2000, 
Somatic.mutations=2, ttype="brca"), times=300)
r machine-learning prediction survival-analysis cox-regression
2个回答
1
投票

要获得中位生存时间,请使用Quantile函数生成器或summary.survfit包中的survival函数。由Quantile创建的函数可以针对0.5分位数进行评估。它是线性预测的函数。您需要在观察子集上使用predict函数来获取线性预测值以通过计算中值。

对于您的其他两个问题,survest需要使用您安装的完整模型(所有变量)。如果变量不可用,则需要使用多次插补,或者对模型a la fastbw进行快速近似修改。


0
投票

我们正尝试用缺失的数据做类似的事情。

虽然MI是一个好主意,但对于单个缺失变量更简单的想法是多次运行预测,并将缺失的变量替换为在缺失变量的随机分布中采样的值。

例如。如果我们将x1,x2和x3作为预测变量,并且我们想要在x3缺失时建模,我们使用x1和x2以及take_random_sample_from(x3)运行预测,然后对所有结果的生存时间求平均值。

重构模型的问题(例如在这种情况下重新建模,所以我们只考虑x1和x2)是它不允许你明确地探索x3的影响。

对于简单的情况,这应该有效 - 它基本上是对大范围x3的生存预测求平均值,因此使得x3相对没有信息。

HTH,马特

© www.soinside.com 2019 - 2024. All rights reserved.