2016-11-02 2 views
1

Je travaille sur une analyse de survie et je n'arrive pas à comprendre comment faire. A partir du tutoriel MSTATE, voici un bloc de code pour une simple régression Cox.
Comment calcule-t-on le temps de séjour moyen dans chaque état non absorbant?Comment calculer le temps de séjour moyen dans chaque état non absorbant en utilisant le paquet R MSTATE

code:

library(mstate) 
data(ebmt3) 
tmat <- trans.illdeath(names=c("Tx","PR","RelDeath")) 
ebmt3$prtime <- ebmt3$prtime/365.25 
ebmt3$rfstime <- ebmt3$rfstime/365.25 
covs <- c("dissub", "age", "drmatch", "tcd", "prtime") 
msbmt <- msprep(time = c(NA, "prtime", "rfstime"), status = c(NA, "prstat", "rfsstat"), data = ebmt3, trans = tmat, keep = covs) 
expcovs <- expand.covs(msbmt, covs[2:3], append = FALSE) 
msbmt <- expand.covs(msbmt, covs, append = TRUE, longnames = FALSE) 
c1 <- coxph(Surv(Tstart, Tstop, status) ~ dissub1.1 + dissub2.1 + 
age1.1 + age2.1 + drmatch.1 + tcd.1 + dissub1.2 + dissub2.2 + 
age1.2 + age2.2 + drmatch.2 + tcd.2 + dissub1.3 + dissub2.3 + 
age1.3 + age2.3 + drmatch.3 + tcd.3 + strata(trans), data = msbmt, 
method = "breslow") 

newd <- data.frame(dissub = rep(0, 3), age = rep(0, 3), drmatch = rep(0, 
3), tcd = rep(0, 3), trans = 1:3) 
newd$dissub <- factor(newd$dissub, levels = 0:2, labels = levels(ebmt3$dissub)) 
newd$age <- factor(newd$age, levels = 0:2, labels = levels(ebmt3$age)) 
newd$drmatch <- factor(newd$drmatch, levels = 0:1, labels = levels(ebmt3$drmatch)) 
newd$tcd <- factor(newd$tcd, levels = 0:1, labels = levels(ebmt3$tcd)) 
attr(newd, "trans") <- tmat 
class(newd) <- c("msdata", "data.frame") 
newd <- expand.covs(newd, covs[1:4], longnames = FALSE) 
newd$strata = 1:3 
newd 
msf1 <- msfit(c1, newdata = newd, trans = tmat) 

Merci!

+0

Je suppose que c'est des devoirs? Vous devez d'abord décrire la structure de la matrice de transition. Les transitions seront différentes pour différentes valeurs de covariable. Si vous voulez des probabilités de transition (à partir desquelles les valeurs de séjour moyennes sont dérivées, puisqu'il s'agit d'un modèle de Markov), vous devez spécifier quelles valeurs de covariable sont souhaitées. Lisez '? Msfit'. –

+0

Devoirs - Je souhaite! Zut alors je pourrais aller demander au professeur Nope, je suis autodidacte donc je suis aux prises avec la terminologie fluctuante. Je peux voir les probabilités de transition, mais comment calculez-vous le séjour? – user918967

+0

Alors ça fait deux d'entre nous. Une fois que vous avez la matrice de transition, je crois que c'est assez simple. Donc, je le répète, ... spécifiez vos covariables. –

Répondre

1

Je pense que vous recherchez la fonction ELOS dans mstate - cela signifie la durée de séjour attendue dans un état - pour compléter votre exemple, vous devez calculer les probabilités de transition en utilisant probtrans et vous pouvez calculer ELOS pour chaque Etat.

pt <- probtrans(msf1,predt=0) 
# ELOS until last observed time point 
ELOS(pt)