在R中使用Cox比例风险模型计算生存预测

4
我正在尝试使用R语言中的Cox比例风险模型来计算生存预测。
    library(survival)
    data(lung)
    model<-coxph(Surv(time,status ==2)~age + sex + ph.karno + wt.loss, data=lung)
    predict(model, data=lung, type ="expected")

当我使用上述代码时,我得到的是与该公式相对应的累积风险预测。
    h^i(t)=h^0(t)exp(x′iβ^)

但我的担忧在于预测与公式相对应的生存率。

    S^i(t)=S^0(t)exp(x′iβ^)

我该如何在R中预测生存率?

提前感谢。


你解决了如何进行预测吗?我有完全相同的问题,我认为答案无法提供概率。 - Yoki
1
我在R中这样计算生存率的: exp(-predict) 其中,predict是使用predict()函数预测newdata的预测值。 - Edwin Vivek N
谢谢回复!只是想确认您在这里指的是哪种类型的预测? - Yoki
1个回答

1
你可以使用 predict 或者 survfit。使用 predict 时,需要给 newdata 参数传递一个包含模型中所有变量值的列表:
predict(model, 
      newdata=list(time=100,status=1,age=60,sex=1, ph.karno=60,wt.loss=15),
      type ="expected")
[1] 0.2007497

对于 survfit 对象,有一个绘图方法:

?survreg
png(); plot(survfit(model)); dev.off()

enter image description here


你能解释一下这个图表的含义吗? - Edwin Vivek N
[1] 0.2007497 这个结果是否意味着生存率? - Edwin Vivek N
1
生存函数不返回速率。速率是计数/风险单位时间。生存函数返回比例。0.020是具有newdata参数输入的特征的队列的估计生存比例。 - IRTFM
使用 type = "risk" 是否允许按风险级别对观测进行评分?这是否可以用作事件即将发生的指标,或者输出如何解释?谢谢。 - Seanosapien
predict.coxph 函数的类型设置为 "risk",可以得到风险评分,即 exp(lp),也可以称为危险比或相对危险度,其中 lp 是针对原始数据点或由 newdata 值列表对象提供给函数的假设点集的线性预测器。更高的风险评分与更早的事件或等效地更短的中位生存期相关联。 - IRTFM
注意事项:survfit和coxph模型的'type'参数具有不同的值(例如“right”,“left”,“counting”),而predict.coxph的'type'参数则不同。 - IRTFM

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接