5 votos

No válidos coeficientes de regresión de NegBin

Estoy haciendo una regresión múltiple con algunos datos (5 predictores, 1 respuesta). Ya que la respuesta es discreta y no negativo, yo pensé que iba a tratar de regresión de Poisson. Sin embargo, los datos son significativamente overdispersed (varianza > media), así que ahora estoy tratando de regresión binomial negativa.

Yo era capaz de ajustar el modelo con este código.

library(MASS)
model.nb <- glm.nb(Response ~ Pred1 + Pred2 + Pred3 + Pred4 + Pred5 - 1, data=d)

Ahora me gustaría ver si puedo obtener un mejor ajuste, incluyendo las interacciones entre los predictores. Sin embargo, cuando trato de hacerlo, me sale el siguiente error.

> model.nb.intr <- glm.nb(Response ~ Pred1 * Pred2 * Pred3 * Pred4 * Pred5 - 1, data=d)
Error: no valid set of coefficients has been found: please supply starting values

Cualquier idea de lo que puede estar causando esto?

10voto

John with waffle Puntos 3472

Antes de saltar a un modelo que incluye todas las interacciones, puede intentar agregar sólo las interacciones de 2 vías:

model.nb.intr <- glm.nb(Response ~ (Pred1 + Pred2 + Pred3 + Pred4 + Pred5)^2 - 1, data=d)

9voto

David J. Sokol Puntos 1730

Su modelo es demasiado complejo para que el equipo de trabajo de algunos de partida razonable de los valores, que no llevan a infinito de la desviación al hacer la glm.fit de iteraciones.

Tienes datos suficientes para estimar todas estas interacciones? ¿Crees que es posible para todos los predictores a interactuar unos con otros? Si no, piense acerca de los predictores que pueden interactuar e incluyen sólo aquellos términos.

El error en el que pide a la oferta de algunos valores de partida para que funcione. Para esto, es necesario proporcionar un vector de valores de parámetros como argumento start; de ?glm:

   start: starting values for the parameters in the linear predictor.

Usted necesidad de proporcionar a 31 de parámetros del modelo (espero que tenga muchas 1000 puntos de datos?) a start, en este orden:

> colnames(model.matrix(Y ~ Pred1*Pred2*Pred3*Pred4*Pred5 -1, data = DF))
 [1] "Pred1"                         "Pred2"                        
 [3] "Pred3"                         "Pred4"                        
 [5] "Pred5"                         "Pred1:Pred2"                  
 [7] "Pred1:Pred3"                   "Pred2:Pred3"                  
 [9] "Pred1:Pred4"                   "Pred2:Pred4"                  
[11] "Pred3:Pred4"                   "Pred1:Pred5"                  
[13] "Pred2:Pred5"                   "Pred3:Pred5"                  
[15] "Pred4:Pred5"                   "Pred1:Pred2:Pred3"            
[17] "Pred1:Pred2:Pred4"             "Pred1:Pred3:Pred4"            
[19] "Pred2:Pred3:Pred4"             "Pred1:Pred2:Pred5"            
[21] "Pred1:Pred3:Pred5"             "Pred2:Pred3:Pred5"            
[23] "Pred1:Pred4:Pred5"             "Pred2:Pred4:Pred5"            
[25] "Pred3:Pred4:Pred5"             "Pred1:Pred2:Pred3:Pred4"      
[27] "Pred1:Pred2:Pred3:Pred5"       "Pred1:Pred2:Pred4:Pred5"      
[29] "Pred1:Pred3:Pred4:Pred5"       "Pred2:Pred3:Pred4:Pred5"      
[31] "Pred1:Pred2:Pred3:Pred4:Pred5"

Me gustaría utilizar el coefs desde el primer modelo a rellenar en los primeros 5 valores de partida y, a continuación, lo que hacen los demás. Usted podría tratar de empezar todos a la 1 y a ver si eso va a hacer que el modelo se ajuste?

Usted también podría beneficiarse de código en el pscl paquete que puede caber obstáculo y cero-inflado modelos para datos de recuento.

3voto

Marius Puntos 27452

Si no pueden obtener satisfacción con R caben este modelo y los más complicados con AD Model Builder que es un software gratuito disponible en http://admb-project.org. Estratificación permite modelar la dispersión en una variedad de formas, en lugar de ser confinado al paradigma GLM. Puedo aconsejarle si usted está interesado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X