如何用时变系数从考克斯生存模型做预测

时间:2012-10-06 12:01:29

标签: r prediction survival-analysis cox-regression

我建立了一个生存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_modsurvfit的正确时间吗? 或者还有其他选项可以从我的模型中实现预测吗?

当然我可以在新数据框中创建尽可能多的行,因为预测中有不同的时间并设置为event_time_mod来修正值,但感觉非常麻烦,我认为必须有更好的方法

1 个答案:

答案 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,线性预测变量或平均响应。此外,您可以使用答案herett字词创建一段时间。