我正在尝试使用 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)
答案 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