Datos de recuento de modelado donde la variable de desplazamiento es 0 para algunas observaciones

9

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 ).log(0)=infy-Infoffset(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.fitse usa internamente hurdle()para ajustar la parte del modelo de conteo) está comprobando -Infaunque 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.

Gavin Simpson
fuente
2
En este caso, parece que su modelo está tratando de adaptarse a una tautología: si se observan 0 pájaros, también escuchará 0 llamadas de pájaros. No estoy convencido de que ajustar un modelo a filas con desplazamiento 0 sea apropiado en este caso.
Sycorax dice Reinstate Monica
Gracias, como mencioné a continuación, esa es mi reacción intestinal también. He ampliado un poco mi respuesta a la respuesta de Barry (Spacedman) a continuación.
Gavin Simpson
2
Estoy de acuerdo con los comentarios que implican que el modelo de tasa de Poisson (es decir, con el término de compensación) es inapropiado para esos casos (y tiene razón al decir que quizás se deba aplicar un modelo separado, como binomial, para incorporar esos casos) . La tasa no puede basarse en el denominador cero.
ttnphns

Respuestas:

5

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.

Hombre espacial
fuente
Esa es mi reacción intestinal también; probablemente piense demasiado en esto, pero puedo imaginar una situación en la que los pájaros observaron pero no se hicieron llamadas. De ahí el modelo de obstáculo, pero internamente todavía se está utilizando lo glm.fitque 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.
Gavin Simpson
3
Si tiene muchas llamadas cero hechas de aves observadas que no son cero, es posible que desee hacer un modelo de poisson inflado con cero (o similar), pero eso es muy diferente de las aves observadas cero cuando está interesado en la cantidad de llamadas por ave .
Spacedman
En este caso, no creo que tengamos muchos de esos; descartar los datos de 0 aves observadas y ajustar con un binomio negativo parece ser un primer paso razonable.
Gavin Simpson
2

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!

Squidge Bulbous
fuente
0

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. ;-)

Ivan Kshnyasev
fuente