J'essaie d'aider un étudiant d'un collègue. L'élève a observé et compté le comportement des oiseaux (nombre d'appels) dans une configuration expérimentale. Le nombre d'appels attribuables à un oiseau observé spécifique au cours de chaque expérience n'a pas pu être déterminé, mais il était possible de compter le nombre d'oiseaux ayant contribué au nombre d'appels enregistrés. Par conséquent, ma suggestion initiale était d'inclure le nombre d'oiseaux en tant que terme de décalage dans un modèle GLM de Poisson, donc nous ajusterions le nombre attendu d'appels par oiseau .
Le problème avec cela est que pendant de nombreuses occasions d'observation, aucun oiseau (et donc aucun cri) n'a été observé. Le logiciel (R dans ce cas) se plaint parce que (R se plaint de contenir des données mais c'est purement le résultat de l' être ).y
-Inf
offset(log(nbirds))
-Inf
Je soupçonne en fait que nous avons besoin d'un modèle d'obstacle (ou similaire) où nous avons un modèle binomial séparé pour les "appels observés?" (ou non) et un modèle de comptage tronqué pour le nombre d'appels (par oiseau) dans les situations où il y a eu des appels, où nous n'incluons le terme de décalage que dans la partie comptage du modèle.
Après avoir essayé cela en utilisant le package pscl dans R, mais je reçois toujours la même erreur:
mod1 <- hurdle(NumberCallsCOPO ~ Condition * MoonVis +
offset(log(NumberCOPO)) | 1, data = Data,
dist = "poisson")
parce que le même code R ( glm.fit
utilisé en interne par hurdle()
pour ajuster la partie du modèle de comptage) vérifie -Inf
même si je ne pense pas que cela affecterait l'ajustement du modèle pour ces observations. (Est-ce une hypothèse correcte?)
Je peux adapter le modèle en ajoutant un petit nombre à NumberCOPO
(par exemple 0.0001
), mais c'est au mieux un fudge.
Est-ce que l'ajout de cette petite correction de continuité serait OK en pratique? Sinon, quelles autres approches devrions-nous envisager lors de la manipulation de données où nous pourrions vouloir utiliser un décalage dans un modèle de Poisson où la variable de décalage peut prendre la valeur 0? Tous les exemples que j'ai rencontrés concernent des situations où un 0 ne serait pas possible pour la variable de décalage.
la source
Réponses:
La réponse que vous souhaitez modéliser est donc "Nombre d'appels par oiseau" et les lignes gênantes sont celles où vous n'avez observé aucun oiseau? Déposez simplement ces rangées. Ils n'ajoutent aucune information à la chose que vous essayez de modéliser.
la source
glm.fit
ce qui lance une oscillation même si ces valeurs ne comptent pas dans la partie comptage du modèle. Je suppose que je pourrais faire le modèle d'obstacle à la main mais je ne veux pas le faire, conseille simplement l'élève.Dans un GLM de Poisson, un décalage est simplement une mise à l'échelle multiplicative du taux de Poisson en cours de modélisation - et un Poisson avec un taux de zéro n'est ni utile ni significatif ...
C'est pourquoi Spacedman a raison!
la source
Essayez simplement de le faire (Hurdle) "à la main (pour l'achat" didactique / gymnastique "): divisez en partie binomiale et partie cout et anjoy ajustez logit et régression cout séparément! Ou utilisez des modèles Standart Hurdle (+ test Vuong) Poisson / negBin / Gamma ..., GAM. Vous n'avez pas besoin du var "offset" ici, me semble-t-il. ;-)
la source