如何在R的coxph函数中分配偏移项,该偏移项以后可在“ mstate”包中使用?

时间:2019-05-08 22:02:09

标签: r survival

我正在尝试使用 R 中的 mstate 包,为此我必须使用 strata coxph 功能>命令。这是示例代码:

library(mstate)
tmat <- trans.illdeath()
tg <- data.frame(stt=rep(0,6),sts=rep(0,6), illt=c(1,1,6,6,8,9),ills=c(1,0,1,1,0,1),
             dt=c(5,1,9,7,8,12),ds=c(1,1,1,1,1,1))
tg$patid <- factor(2:7,levels=1:8,labels=as.character(1:8))
tt <- matrix(c(rep(NA,6),tg$illt,tg$dt),6,3)
st <- matrix(c(rep(NA,6),tg$ills,tg$ds),6,3)
mslong<-msprep(time=tt,status=st,trans=tmat)
models <- coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=mslong, method='breslow')

我只想在过渡= 3(即从疾病到死亡的过渡)的模型中分配补偿项,以便我可以通过更改补偿项来估算不同治疗效果的影响。现在,我可以为所有分层分配偏移项,

mslong$c1<-0
models<-coxph(Surv(Tstart, Tstop, status) ~ strata(trans)+offset(2*c1), data=mslong, method='breslow')

我的问题是我如何才能分配一个偏移项,例如,在上面的代码中,仅当transition = 3或strata = 3时,系数为2?请注意,我计划在 mstate 包中运行以下代码。我真的很感谢任何帮助。

fit <- msfit(models, trans=tmat)
pt <- probtrans(fit, predt=0)

1 个答案:

答案 0 :(得分:1)

从技术上讲,您可以按照以下步骤操作:

# define c1 as an indicator for transition 3
mslong$c1<-ifelse(mslong$trans == 3, 1, 0)
model <-coxph(Surv(Tstart, Tstop, status) ~ strata(trans)+offset(2*c1), data=mslong, method='breslow')

但是,从统计学上讲,这没有意义。偏移将完全被过渡3的地层基线危险所掩盖。您可以验证不管偏移如何,可能性都保持不变:

原始模型:

> coxph(Surv(Tstart, Tstop, status) ~ strata(trans), data=mslong, method='breslow')
Call:  coxph(formula = Surv(Tstart, Tstop, status) ~ strata(trans), 
    data = mslong, method = "breslow")

Null model
  log likelihood= -7.742402 
  n= 16 

偏移量模型:

> coxph(Surv(Tstart, Tstop, status) ~ strata(trans)+offset(2*c1), data=mslong, method='breslow')
Call:  coxph(formula = Surv(Tstart, Tstop, status) ~ strata(trans) + 
    offset(2 * c1), data = mslong, method = "breslow")

Null model
  log likelihood= -7.742402 
  n= 16