时间相关的协变量——这段代码有什么问题吗? (R程序)

Time-dependent covariates- is there something wrong with this code? (R program)

我正在使用 survival 程序包检查我的一些 Cox 多元回归分析使用时间相关协变量的比例风险假设。问题是观察具有不同 ADAMTS13 水平(一种酶)的组的存活率。

我可以检查我的代码本身是否有问题吗?它一直在说 Error in tt(TMAdata$ADAMTS13level.f) : could not find function "tt" 。为什么?

值得注意的是,ADAMTS13level.f 是一个因子变量。

cox_multivariate_survival_ADAMTS13 <- coxph(Surv(TMAdata$Daysalive, TMAdata$'Dead=1')
                                                        ~TMAdata$ADAMTS13level.f
                                                        +TMAdata$`Age at diagnosis`
                                                        +TMAdata$CCIwithoutage
                                                        +TMAdata$Gender.f
                                                        +TMAdata$`Peak Creatinine`
                                                        +TMAdata$DICorcrit.f,
                                                        tt(TMAdata$ADAMTS13level.f), 
                                                        tt = function(x, t, ...)
                                                        {mtrx <- model.matrix(~x)[,-1] 
                                                         mtrx * log(t)})

谢谢 - 从我的实际代码或拼写错误的基础开始 - 我尝试了不同的排列但无济于事。

@Limey 走在正确的轨道上!

ADAMTS13level.f 的 time-transformed 版本需要添加到模型中,而不是分离到 coxph(...) 的单独参数中。

Max Gordon 在 How to use the timeSplitter 中描述了测试 time-dependent 分类变量时 coxph 调用的形式。

其他有用的文档:

coxph - fit proportional hazards regression model

cox_multivariate_survival_ADAMTS13 <- 
  coxph(
    Surv(
      Daysalive,
      'Dead=1'
    ) ~
      ADAMTS13level.f
    + `Age at diagnosis`
    + CCIwithoutage
    + Gender.f
    + `Peak Creatinine`
    + DICorcrit.f
    + tt(ADAMTS13level.f), 
    tt = function(x, t, ...) {
      mtrx <- model.matrix(~x)[,-1]
      mtrx * log(t)
    },
    data = TMAdata
  )

p.s。对于原始数据,也存在一个问题,因为 Daysalive 包含一个零 (0) 值,最终导致 coxph 出现 'infinite predictor' 错误,可能是因为 tt 转换使用 log(t) 的数据。 (https://rdrr.io/github/therneau/survival/src/R/coxph.R)