[英]how to do predictions from cox survival model with time varying coefficients
我建立了一个生存cox模型,其中包括covariate * time
相互作用(检测到非比例性)。 我现在想知道如何从模型中轻松获得生存预测。
我的模型被指定:
coxph(formula = Surv(event_time_mod, event_indicator_mod) ~ Sex +
ageC + HHcat_alt + Main_Branch + Acute_seizure + TreatmentType_binary +
ICH + IVH_dummy + IVH_dummy:log(event_time_mod)
现在我希望使用survfit
进行预测,并为我正在进行预测的变量组合提供new.data
:
survfit(cox, new.data=new)
现在我在模型的右侧有event_time_mod
,我需要在传递给survfit
的新数据框中指定它。 需要在预测的各个时间设置此event_time
。 有没有一种简单的方法可以指定event_time_mod
是正确的survfit
时间? 或者还有其他选项可以从我的模型中实现预测吗?
当然,我可以在新数据框中创建尽可能多的行,因为预测中有不同的时间,并设置为event_time_mod
来修正值,但感觉非常麻烦,我认为必须有更好的方法。
你完成了所做的事情
一种明显但不正确的方法......
如在R survival
包的版本2.41-3 中的Cox模型小插图中使用时间相关协变量和时间相关系数中所述 。 相反,您应该使用时间转换功能 ,即同一个插图中所述的tt
函数。 代码类似于插图中的示例
> library(survival)
> vfit3 <- coxph(Surv(time, status) ~ trt + prior + karno + tt(karno),
+ data=veteran,
+ tt = function(x, t, ...) x * log(t+20))
>
> vfit3
Call:
coxph(formula = Surv(time, status) ~ trt + prior + karno + tt(karno),
data = veteran, tt = function(x, t, ...) x * log(t + 20))
coef exp(coef) se(coef) z p
trt 0.01648 1.01661 0.19071 0.09 0.9311
prior -0.00932 0.99073 0.02030 -0.46 0.6462
karno -0.12466 0.88279 0.02879 -4.33 1.5e-05
tt(karno) 0.02131 1.02154 0.00661 3.23 0.0013
Likelihood ratio test=53.8 on 4 df, p=5.7e-11
n= 137, number of events= 128
当你有一个tt
术语时, survfit
不起作用
> survfit(vfit3, veteran[1, ])
Error in survfit.coxph(vfit3, veteran[1, ]) :
The survfit function can not yet process coxph models with a tt term
但是,您可以通过predict
轻松获得terms
,线性预测或平均响应。 此外,您可以使用此处的答案为tt
术语创建一段时间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.