我在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)
答案 0 :(得分:1)
要获得中位数生存时间,请使用Quantile
函数生成器或summary.survfit
包中的survival
函数。可以针对0.5分位数评估由Quantile
创建的函数。它是线性预测的函数。您需要在观察子集上使用predict
函数来获取线性预测值以通过计算中位数。
对于您的其他两个问题,survest
需要使用您安装的完整模型(所有变量)。如果变量不可用,则需要使用多次插补,或者对模型la fastbw
进行快速近似修改。
答案 1 :(得分:0)
我们正在努力做一些类似于缺失数据的事情。
虽然MI是一个好主意,但对于单个缺失变量更简单的想法是多次运行预测,并将缺失的变量替换为随机分布缺失变量的值。
E.g。如果我们将x1,x2和x3作为预测变量,并且我们想要在缺少x3时建模,我们使用x1和x2以及take_random_sample_from(x3)运行预测,然后对所有结果的生存时间求平均值。
重新构建模型的问题(例如在这种情况下重新建模,因此我们只考虑x1和x2)是它不能让你明确地探索x3的影响。
对于简单的情况,这应该有效 - 它基本上是对大范围x3的生存预测进行平均,因此使得x3相对没有信息。
HTH, 马特