我建立了一个生存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
来修正值,但感觉非常麻烦,我认为必须有更好的方法
答案 0 :(得分:1)
你已经完成了所谓的
一种明显但不正确的方法......
在R survival
包的2.41-3版Using Time Dependent Covariates and Time Dependent Coefficients in the Cox Model小插图中所述。相反,您应该使用时间转换功能,即同一个插图中所述的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
如果survfit
字词
tt
不起作用
> survfit(vfit3, veteran[1, ])
Error in survfit.coxph(vfit3, veteran[1, ]) :
The survfit function can not yet process coxph models with a tt term
但是,您可以轻松地使用terms
获取predict
,线性预测变量或平均响应。此外,您可以使用答案here为tt
字词创建一段时间。