Modelando dados de contagem em que a variável de deslocamento é 0 para algumas observações

9

Estou tentando ajudar um aluno de um colega. O aluno observou e contou o comportamento das aves (número de chamadas) em uma configuração experimental. O número de chamadas atribuíveis a uma ave observada específica durante cada experimento não pôde ser determinado, mas foi possível contar o número de aves que contribuíram para o número de chamadas gravadas. Portanto, minha sugestão inicial foi incluir o número de aves como termo de compensação em um modelo de Poisson GLM, portanto, estaríamos ajustando o número esperado de chamadas por ave .

O problema disso é que, durante muitas ocasiões de observação, nenhum pássaro (e, portanto, nenhum canto) foi observado. O software (R neste caso) reclama porque (R reclama por conter dados, mas isso é puramente o resultado de ser ).log(0)=infy-Infoffset(log(nbirds))-Inf

Na verdade, suspeito que precisamos de um modelo de barreira (ou similar) em que tenhamos um modelo binomial separado para "chamadas observadas?" (ou não) e um modelo de contagem truncado para o número de chamadas (por ave) em situações em que houve chamadas, nas quais incluímos o termo de compensação apenas na parte de contagem do modelo.

Tendo tentado isso usando o pacote pscl no R, mas ainda estou recebendo o mesmo erro:

mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
               offset(log(NumberCOPO)) | 1, data = Data,
               dist = "poisson")

porque o mesmo código R ( glm.fitusado internamente hurdle()para ajustar a parte do modelo de contagem) está sendo verificado -Inf, embora eu não ache que isso afetaria o ajuste do modelo para essas observações. (Isso é uma suposição correta?)

Posso ajustar o modelo adicionando um número pequeno a NumberCOPO(digamos 0.0001), mas isso é uma farsa, na melhor das hipóteses.

Adicionar esta pequena correção de continuidade seria bom na prática? Caso contrário, que outras abordagens deveríamos considerar ao lidar com dados em que podemos usar um deslocamento em um modelo de Poisson em que a variável de deslocamento pode assumir o valor 0? Todos os exemplos que encontrei são para situações em que um 0 não seria possível para a variável de deslocamento.

Gavin Simpson
fonte
2
Nesse caso, parece que seu modelo está tentando ajustar uma tautologia: se houver 0 pássaro observado, você também ouvirá 0 gritos de pássaro. Não estou convencido de que o ajuste de um modelo para linhas com deslocamento 0 seja apropriado neste caso.
Sycorax diz Restabelecer Monica
Obrigado, como mencionei abaixo, essa é minha reação também. Expandi um pouco na minha resposta à resposta de Barry (Spacedman) abaixo.
Gavin Simpson
2
Concordo com os comentários que implicam que o modelo de taxa de Poisson (isto é, com o termo de compensação) é inadequado para esses casos (e você está certo ao dizer que talvez um modelo separado, como o binomial, deva ser aplicado para incorporar esses casos) . A taxa não pode ser baseada no denominador zero.
ttnphns

Respostas:

5

Portanto, a resposta que você deseja modelar é "Número de chamadas por pássaro" e as linhas problemáticas são onde você não observou nenhum pássaro? Apenas largue essas linhas. Eles não adicionam informações à coisa que você está tentando modelar.

Spacedman
fonte
Essa é a minha reação intestinal também; provavelmente pensando demais, mas posso imaginar uma situação em que os pássaros observaram, mas nenhuma ligação foi feita. Daí o modelo de obstáculo, mas internamente ele ainda está usando o glm.fitque lança uma oscilação, mesmo que esses valores não sejam contados na parte de contagem do modelo. Acho que eu poderia fazer o modelo obstáculo à mão, mas eu não quero fazer isso, basta informar o estudante.
Gavin Simpson
3
Se você tem muitas chamadas zero feitas a partir de aves observadas diferentes de zero, convém fazer um modelo de poisson com inflação zero (ou similar), mas isso é muito diferente de zero aves observadas quando você estiver interessado no número de chamadas por ave .
Spacedman 02/02
Nesse caso, acho que não temos muitos; jogar fora os dados das aves 0 observadas e ajustar-se a um binômio negativo parece ser um primeiro passo razoável.
Gavin Simpson
2

Em um Poisson GLM, um deslocamento é simplesmente uma escala multiplicativa na taxa de Poisson que está sendo modelada - e um Poisson com uma taxa de zero não é útil nem significativo ...

É por isso que Spacedman está correto!

Bulbous Squidge
fonte
0

Apenas tente fazê-lo (Hurdle) "manualmente (para bolsa" didática / ginástica "): divida em parte binomial e parte cout e anjoy ajustando logit e cout regressão separadamente! Ou use modelos Hurdle padrão (+ teste de Vuong) Poisson / negBin / Gamma ..., GAM. Você não precisa do "offset" var aqui, me parece. ;-)

Ivan Kshnyasev
fonte