Как можно назначить смещение в функции coxph в R, которая позже может быть использована в пакете "mstate"? - PullRequest
1 голос
/ 09 мая 2019

Я пытаюсь использовать пакет mstate в R , для которого я должен использовать функцию coxph , используя команду strata .Вот пример кода:

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')

Мой вопрос заключается в том, как я могу назначить член смещения, например, с коэффициентом = 2 в приведенном выше коде, только для перехода = 3 или слоев= 3?Обратите внимание, что я планирую запустить следующий код из пакета mstate после.Я был бы очень признателен за любую помощь в этом.

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

1 Ответ

1 голос
/ 09 мая 2019

Технически это можно сделать следующим образом:

# 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 
...