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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用R中的RMS包预测生存?相关的知识,希望对你有一定的参考价值。

我正在使用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)
答案

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

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

另一答案

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

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

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

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

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

HTH,马特

以上是关于使用R中的RMS包预测生存?的主要内容,如果未能解决你的问题,请参考以下文章

R语言rms包生存分析之限制性立方样条(RCS, Restricted cubic spline)分析:拟合连续性自变量和事件风险之间的关系并绘制直方图平滑曲线双Y轴于同一个图像中

基于R语言pec包对Cox回归模型进行外部验证与评价

R语言 生存分析

R语言生存分析预测中位生存时间生存曲线可视化log-rank检验HR值分析:基于survival包lung数据集

R语言构建生存分析(survival analysis)模型示例

使用 R 中“rpart”包中的生存树来预测新的观察结果