Estoy tratando de ayudar a un estudiante de un colega. El estudiante observó y contó el comportamiento de las aves (número de llamadas) en una configuración experimental. No se pudo determinar el número de llamadas atribuibles a un ave observada específica durante cada experimento, pero fue posible contar el número de pájaros que contribuyeron al número de llamadas registradas. Por lo tanto, mi sugerencia inicial fue incluir el número de aves como un término de compensación en un modelo Poisson GLM, por lo tanto, estaríamos ajustando el número esperado de llamadas por ave .
El problema con esto es que durante muchas ocasiones de observación no se observaron aves (y, por lo tanto, no hubo llamadas). El software (R en este caso) se queja porque (R se queja de contener datos pero eso es puramente el resultado de ser ).y
-Inf
offset(log(nbirds))
-Inf
En realidad sospecho que necesitamos un modelo de obstáculo (o similar) donde tengamos un modelo binomial separado para "llamadas observadas". (o no) y un modelo de recuento truncado para el número de llamadas (por ave) en situaciones donde hubo llamadas, donde incluimos el término de compensación solo en la parte de conteo del modelo.
Después de haber intentado esto usando el paquete pscl en R, pero sigo recibiendo el mismo error:
mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
offset(log(NumberCOPO)) | 1, data = Data,
dist = "poisson")
porque el mismo código R ( glm.fit
se usa internamente hurdle()
para ajustar la parte del modelo de conteo) está comprobando -Inf
aunque no creo que afecte el ajuste del modelo para esas observaciones. (¿Es una suposición correcta?)
Puedo hacer que el modelo se ajuste agregando un pequeño número a NumberCOPO
(digamos 0.0001
), pero esto es un fraude en el mejor de los casos.
¿Agregar esta pequeña corrección de continuidad estaría bien en la práctica? Si no es así, ¿qué otros enfoques deberíamos considerar al manejar datos en los que podríamos querer usar un desplazamiento en un modelo de Poisson donde la variable de desplazamiento puede tomar el valor 0? Todos los ejemplos que he encontrado son para situaciones en las que un 0 no sería posible para la variable de desplazamiento.
fuente
Respuestas:
Entonces, ¿la respuesta que desea modelar es "Número de llamadas por ave" y las líneas problemáticas son donde no observó ninguna ave? Solo suelta esas filas. No agregan información a lo que está tratando de modelar.
fuente
glm.fit
que arroja un bamboleo incluso si esos valores no cuentan en la parte de conteo del modelo. Supongo que podría hacer el modelo obstáculo a mano, pero yo no quiero hacer esto, simplemente asesorar al estudiante.En un Poisson GLM, un desplazamiento es simplemente una escala multiplicativa en la tasa de Poisson que se está modelando, y un Poisson con una tasa de cero no es útil o incluso significativo ...
¡Es por eso que Spacedman está en lo correcto!
fuente
Simplemente trate de hacerlo (obstáculo) "a mano (para el propósito" didáctico / gimnástico "): divídalo en la parte binomial y la parte inferior y disfrute de la regresión de ajuste y la regresión de la separación por separado! O utilice modelos estándar de obstáculos (+ prueba de Vuong) Poisson / negBin / Gamma ..., GAM. No necesitas la var "offset" aquí, me parece. ;-)
fuente