3 votos

El AIC para mi regresión de Poisson es INF. ¿Significa esto que no debería utilizar la regresión de Poisson para mi modelo?

Estoy tratando de crear un modelo de regresión para esta variable ( Y ) basado en 2 variables categóricas. Por lo tanto, he creado variables ficticias para sustituirlas. Estas variables ficticias (es decir int_collab, Q1,Q2,Q3 ) tienen valores de 1 y 0.

Y es un doble, con valores que van de 0 a 348,19, y alrededor del 10% tiene valores de 0. Sigue la distribución de Poisson.

Pero, cuando lo modele:

glm(Y ~ int_collab + Q1 + Q2 + Q3, data = capdata,
                 family=poisson(link="log"))

El valor del AIC es INF. ¿Supongo que algo está mal? ¿Es porque se supone que no debo usar Poisson para modelar esta variable?

He estado leyendo en internet, pero me ha confundido aún más. Parece que debería considerar el uso de la Binomial Negativa o la Cuasi Poisson (ya que la varianza es mayor que la media), etc... Cualquier indicación sobre qué distribución sería más adecuada sería muy apreciada.

1 votos

Y es un indicador llamado FWCI. Se calcula tomando la relación entre las citas de una publicación con el número medio de citas recibidas por todas las demás publicaciones similares. Intento ver si alguno de los predictores (calidad de la revista ~ cuartil 1 a cuartil 4 y colaboración internacional) tiene algún efecto sobre este FWCI.

2voto

Ben Bolker Puntos 8729

Este es su problema:

Y es un doble, con valores que van de 0 a 348,19 ... Sigue [a] la distribución de Poisson

Deberías nunca utilizar una distribución de Poisson para los valores de respuesta no enteros.

El AIC se basa en la log-verosimilitud negativa, que a su vez se basa en la log-probabilidad de los valores observados dado el modelo. La probabilidad de un valor no entero es cero, por lo que la log-verosimilitud es -Inf, por lo que la log-verosimilitud negativa es Inf. Si tiene un solo valor no entero en su conjunto de datos, esto ocurrirá. Como ejemplo, así es como R calcularía la log-verosimilitud negativa de $Y=2.3$ para una distribución de Poisson con $\lambda$ (media) igual a 2,3:

-dpois(2.3,lambda=2.3,log=TRUE)

esto es Inf y también produce una advertencia:

En dpois(2.3, lambda = 2.3, log = TRUE) : no entero x = 2.300000

Deberías haber recibido un montón de advertencias de este tipo: puede que estén escondidas en una frase comodín como There were 20 warnings (use warnings() to see them) .

Si quiere analizar $x/Y$ donde $x$ es un número entero y $Y$ es un valor conocido, debe buscar el uso de compensaciones es decir glm(x~ ... + offset(log(Y)) ...

1 votos

Y si quiere una varianza proporcional a la media, pero no una distribución de Poisson, utilice family="quasipoisson". No habrá ningún AIC (lo cual es correcto, ya que no hay probabilidad).

-1voto

Gregoire Puntos 1

Creo que tienes un problema de variables ficticias o singularidades. Como tus variables son dummies no puedes usarlas todas en la regresión, sino hay un problema de identificación. Mira el resumen de los resultados, uno de los coeficientes Qi sería NA. También las advertencias dicen que la función no produce valores enteros.

Una solución es retirar uno de los dummies de Qi, el que quieras como base de comparación (la función glm en realidad omite uno) y utilizar otra función de enlace. He probado con quasipoisson (ver aquí un debate al respecto) y obtener los resultados. Pero, por supuesto, depende de sus datos.

Aquí generé los mismos datos y pude replicar el mismo problema de AIC = Inf.

FWCI <- c(c(18,17,15,20,10,20,25,13,12)/1.2,c(18,17,15,20,10,20,25,13,12)/0.8)
#int_collab, Q1,Q2,Q3
no=length(FWCI)
int_collab=rep(c(0,1),length.out=no)
Qs <- gl(3,1,no,labels=c("Q1","Q2","Q3")) #factor

glmp <- glm(FWCI ~ int_collab + I(Qs=="Q1")+I(Qs=="Q2")+I(Qs=="Q3"), family = poisson(link="log"))
glmp

#Call:  glm(formula = FWCI ~ int_collab + I(Qs == "Q1") + I(Qs == "Q2") + 
#    I(Qs == "Q3"), family = poisson(link = "log"))
#
#Coefficients:
#      (Intercept)         int_collab  I(Qs == "Q1")TRUE  I(Qs == "Q2")TRUE  I(Qs == "Q3")TRUE  
#          2.77893            0.02667            0.29299           -0.16127                 NA  
#
#Degrees of Freedom: 17 Total (i.e. Null);  14 Residual
#Null Deviance:     34.63 
#Residual Deviance: 23.21   AIC: Inf

#summary(glmp)

glmr <- glm(FWCI ~ int_collab + Qs, family = quasipoisson())

glmr

#Call:  glm(formula = FWCI ~ int_collab + Qs, family = quasipoisson())
#
#Coefficients:
#(Intercept)   int_collab         QsQ2         QsQ3  
#    3.07192      0.02667     -0.45426     -0.29299  
#
#Degrees of Freedom: 17 Total (i.e. Null);  14 Residual
#Null Deviance:     34.63 
#Residual Deviance: 23.21   AIC: NA

#anova(glmr, test = "F")
#summary(glmr)

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