Estoy ejecutando una regresión logística en R y haciendo «la eliminación hacia atrás» con el fin de brindar a conseguir mi modelo final:

FulMod2 <- glm(surv~as.factor(tdate)+as.factor(tdate)+as.factor(sline)+as.factor(pgf)
                                    +as.factor(weight5)+as.factor(backfat5)+as.factor(srect2)
                                    +as.factor(bcs)+as.factor(loco3)+as.factor(fear3)
                                    +as.factor(teats)+as.factor(preudder)+as.factor(postudder)
                                    +as.factor(colos)+as.factor(tb5) +as.factor(respon3)
                                    +as.factor(feed5)+as.factor(bwt5)+as.factor(sex)
                                    +as.factor(fos2)+as.factor(gest3)+as.factor(int3),
                                    family=binomial(link="logit"),data=sof)

Al intentar ejecutar la eliminación hacia atrás guión:

step(FulMod2,direction="backward",trace=FALSE)

Tengo este mensaje de error:

Error in step(FulMod2, direction = "backward", trace = FALSE) : 
  number of rows in use has changed: remove missing values?

Este es el segundo modelo que estoy ejecutando el uso de la función de eliminación hacia atrás. El primer modelo estaba bien cuando hice la eliminación hacia atrás para obtener mi modelo final.

Cualquier ayuda sería muy apreciada!

Baz

  • De ?step: Warning El ajuste del modelo debe aplicar los modelos para el mismo conjunto de datos. Esto puede ser un problema si hay falta de valores y R predeterminado de na.action = na.omitir es utilizado. Le sugerimos que retire los valores que faltan en primer lugar. Usted puede mirar ?complete.cases para identificar completa e incompleta de los casos en sof.
  • Gracias por tu ayuda. Tengo 9000 registros y después de la aplicación de «completo.de los casos», ahora ha bajado a 8000. Estoy pensando si que es demasiado a muchos a perder? De todos modos, gracias de nuevo!
  • En otra nota, si su predictores corresponden al resto de las columnas en sof, entonces usted puede utilizar el . operador para ?formula «especificar todas las columnas, de lo contrario no nombrado en el modelo. Algo así como glm(surv ~ ., data sof, family = binomial(link = "logit")). Usted querrá hacer todas las clases de as.factor() de antemano. Además, sus dos primeros predictores as.factor(tdate)+as.factor(tdate) parecen idénticos. Es que intencional?
  • Gracias por que. Con respecto a los dos primeros como predictores.factor(tdate)+como.factor(tdate), que no fue intencional!
InformationsquelleAutor baz | 2012-04-03

1 Comentario

  1. 6

    Con el fin de ejecutar correctamente step() en su modelo de atrás de selección, debe quitar los casos en sof con datos faltantes en las variables que se están probando.

    myForm <- as.formula(surv~
      as.factor(tdate)+as.factor(tdate)+as.factor(sline)+as.factor(pgf)
      +as.factor(weight5)+as.factor(backfat5)+as.factor(srect2)
      +as.factor(bcs)+as.factor(loco3)+as.factor(fear3)
      +as.factor(teats)+as.factor(preudder)+as.factor(postudder)
      +as.factor(colos)+as.factor(tb5) +as.factor(respon3)
      +as.factor(feed5)+as.factor(bwt5)+as.factor(sex)
      +as.factor(fos2)+as.factor(gest3)+as.factor(int3))
    
    sofNoMis <- sof[which(complete.cases(sof[,all.vars(myForm)])),]
    
    FulMod2 <- glm(myForm,family=binomial(link="logit"),data=sofNoMis)
    
    step(FulMod2,direction="backward",trace=FALSE)

    En su comentario, usted mencionó que 1 de los 9 casos, de los datos que faltan. Sin embargo, te recomiendo que compruebes que de nuevo con el código anterior, en el caso de que missingness corresponden a las variables no incluidas en FulMod2. Si usted todavía tiene muchos incompleta de los casos, usted podría querer decidir a priori si usted puede eliminar algunas de las variables con alta missingness.

    • Me encontré con el modelo como se sugirió anteriormente y me dio de 8000 9000 registros. Casi todos los predictores con altos valores que faltan en el modelo completo. Gracias!

Dejar respuesta

Please enter your comment!
Please enter your name here