简短介绍:
coxph
可以使用包的功能来估计 Cox 比例危害 (PH) 模型survival
。从这种类型的模型中获得合理结果的一个明显要求是风险是成比例的,即它们随着时间的推移是恒定的。如果某个变量不是这种情况,可以通过使该变量的系数随时间变化来解决。(现在它在技术上是一个扩展的 Cox 模型。)这是通过tt()
向该变量添加 并随着时间的推移指定一个函数来完成的(参见vignette("timedep", package = "survival")
第 19 页+)。
问题:
tt()
如果在没有指定函数的情况下使用哪个函数?
这是一个例子:
library(survival)
data(lung)
cox_model <- coxph(Surv(time, status) ~ age + sex + ph.karno, data = lung)
cox_model_ph <- cox.zph(cox_model)
# rho chisq p
# age 0.00701 0.00871 0.92566
# sex 0.12249 2.42336 0.11954
# ph.karno 0.23135 8.24167 0.00409
# GLOBAL NA 11.54750 0.00911
我们看到这ph.karno
违反了 PH 假设(小 p 值),所以添加tt()
:
cox_model_tt <- coxph(Surv(time, status) ~ age + sex + tt(ph.karno), data = lung)
cox_model_tt_ph <- cox.zph(cox_model_tt)
# rho chisq p
# age -0.00907 0.0142 0.9052
# sex 0.12844 2.7270 0.0987
# tt(ph.karno) 0.11643 2.3846 0.1225
# GLOBAL NA 5.0220 0.1702
现在满足 PH 假设,但我不知道该tt()
函数实际做了什么。我尝试了一些常用的功能,例如tt = function(x, t, ...) x*t
, tt = function(x, t, ...) x + t
, tt = function(x, t, ...) x*log(t)
。但都给出了不同的结果(并且无法修复 PH 违规)。
任何帮助表示赞赏。