2016-12-03 2 views
0

Jusqu'à présent, je suis arrivé à pour ajuster le modèle dans la fonction survreg comme ci-dessous:prédiction de l'effet de complot en R

model <- survreg(formula = Surv(TimeDeath, event) ~ age + BM1 + BM2 + 
         mutation + sex + BM1:BM2 + BM1:mutation, 
         data = DF, dist = "lognormal") 

Maintenant, je dois prévoir le temps de l'échec d'un patient qui est âgé de 51 ans, il n'avait pas la mutation du gène, et pour BM1 il avait la valeur 3,7 mg/dL et pour BM2 la valeur 251 mg/dL.

je continue comme ci-dessous:

ND <- with(DF, data.frame(
    age = rep(seq(min(age), max(age), length.out = 20), 2), 
    BM1 = rep(seq(min(BM1), max(BM1), length.out = 20), 2), 
    BM2 = rep(seq(min(BM2), max(BM2), length.out = 20), 2), 
    mutation = c("No", "Yes"), 
    sex = c("male", "40") 
)) 

prs <- predict(model_final, ND, se.fit = TRUE, type = "lp") 
ND$pred <- prs[[1]] 
ND$se <- prs[[2]] 
ND$lo <- exp(ND$pred - 1.96 * ND$se) 
ND$up <- exp(ND$pred + 1.96 * ND$se) 
ND$pred <- exp(ND$pred) 

library(lattice) 
xyplot(pred + lo + up ~ age + BM1, data = ND, type = "l", 
     lty = c(1,2,2), col = "black", lwd = 4, xlab = "Age", 
     ylab = "Survival Time") 

Je sais que je ne l'ai pas défini l'objet ND correctement, mais je ne sais pas comment le faire, et aussi, la fonction de traçage.

De l'aide s'il vous plaît?

+0

Comment savez-vous que vous n'avez pas construit ND correctement (au moins en faisant une colonne "pred"? (Nous ne pouvons rien faire d'autre sans un jeu de données pour bultd le modèle.) La construction de CI semble suspecte, j'aurais pensé que vous préférez ont mis 'se.fit = TRUE' –

Répondre

0

Regardez ?predict.survreg. La construction de CI de ne semble suspect, je l'aurais pensé que vous aurait plutôt mis se.fit=TRUE Il y a un nouvel argument de données qui est l'endroit où vous incluez les paramètres nécessaires à la prévision dans le cadre de l'argument newdata:

all.combos < expand.grid(mutation=c("No", "Yes"), BM1= 3.7 , BM2= 251 , 
          sex = c("male", "40"), 
          age-seq(min(age), max(age), length.out = 20) ) ) 
    preds.combos <- predict(model, all.combos, se.fit=TRUE)