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 ).y
-Inf
offset(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.fit
usado 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.
fonte
Respostas:
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.
fonte
glm.fit
que 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.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!
fonte
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. ;-)
fonte