J'ai des données de collecte à long terme et j'aimerais tester si le nombre d'animaux collectés est influencé par les effets météorologiques. Mon modèle ressemble à ci-dessous:
glmer(SumOfCatch ~ I(pc.act.1^2) +I(pc.act.2^2) + I(pc.may.1^2) + I(pc.may.2^2) +
SampSize + as.factor(samp.prog) + (1|year/month),
control=glmerControl(optimizer="bobyqa", optCtrl=list(maxfun=1e9,npt=5)),
family="poisson", data=a2)
Explication des variables utilisées:
- SumOfCatch: nombre d'animaux collectés
- pc.act.1, pc.act.2: axes d'une composante principale représentant les conditions météorologiques lors de l'échantillonnage
- pc.may.1, pc.may.2: axes d'un PC représentant les conditions météorologiques en mai
- SampSize: nombre de pièges à pièges, ou collecte de transects de longueurs standard
- samp.prog: méthode d'échantillonnage
- année: année d'échantillonnage (de 1993 à 2002)
- mois: mois d'échantillonnage (d'août à novembre)
Les résidus du modèle ajusté présentent une inhomogénéité considérable (hétéroscédasticité?) Lorsqu'ils sont tracés en fonction des valeurs ajustées (voir Fig.1):
Ma question principale est: est-ce un problème qui rend la fiabilité de mon modèle douteuse? Si oui, que puis-je faire pour le résoudre?
Jusqu'à présent, j'ai essayé les éléments suivants:
- contrôler la surdispersion en définissant des effets aléatoires au niveau de l'observation, c'est-à-dire en utilisant un ID unique pour chaque observation, et en appliquant cette variable ID comme effet aléatoire; bien que mes données montrent une surdispersion considérable, cela n'a pas aidé car les résidus sont devenus encore plus laids (voir Fig.2)
- J'ai ajusté des modèles sans effets aléatoires, avec glm quasi-Poisson et glm.nb; a également produit des parcelles résiduelles et ajustées similaires au modèle d'origine
Pour autant que je sache, il pourrait y avoir des moyens d'estimer les erreurs standard cohérentes à l'hétéroscédasticité, mais je n'ai trouvé aucune méthode de ce type pour les GLMM de Poisson (ou tout autre type) de GLMM dans R.
En réponse à @FlorianHartig: le nombre d'observations dans mon jeu de données est N = 554, je pense que c'est une obs équitable. nombre pour un tel modèle, mais bien sûr, plus on est de fous. Je poste deux chiffres, dont le premier est le tracé résiduel à l'échelle DHARMa (suggéré par Florian) du modèle principal.
Le deuxième chiffre provient d'un deuxième modèle, dans lequel la seule différence est qu'il contient l'effet aléatoire au niveau de l'observation (le premier n'en contient pas).
MISE À JOUR
Figure de la relation entre une variable météorologique (comme prédicteur, c'est-à-dire l'axe des x) et le succès de l'échantillonnage (réponse):
MISE À JOUR II.
Figures montrant les valeurs des prédicteurs par rapport aux résidus:
la source
Réponses:
Il est difficile d'évaluer l'ajustement du Poisson (ou de tout autre GLM à valeur entière d'ailleurs) avec des résidus de Pearson ou de déviance, car un GLMM de Poisson parfaitement ajusté présentera également des résidus de déviance non homogènes.
Cela est particulièrement vrai si vous effectuez des GLMM avec des ER de niveau observation, car la dispersion créée par les OL-RE n'est pas prise en compte par les résidus Pearson.
Pour illustrer le problème, le code suivant crée des données de Poisson sur-dispersées, qui sont ensuite équipées d'un modèle parfait. Les résidus Pearson ressemblent beaucoup à votre intrigue - il se peut donc qu'il n'y ait aucun problème.
Ce problème est résolu par le package DHARMa R , qui simule à partir du modèle ajusté pour transformer les résidus de tout GL (M) M en un espace normalisé. Une fois cela fait, vous pouvez visuellement évaluer / tester les problèmes résiduels, tels que les écarts par rapport à la distribution, la dépendance résiduelle à un prédicteur, l'hétéroskédasticité ou l'autocorrélation de la manière normale. Voir la vignette du package pour des exemples élaborés. Vous pouvez voir dans le graphique inférieur que le même modèle semble maintenant bien, comme il se doit.
Si vous voyez toujours de l'hétéroscédasticité après avoir tracé avec DHARMa, vous devrez modéliser la dispersion en fonction de quelque chose, ce qui n'est pas un gros problème, mais vous obligerait probablement à passer aux JAG ou à un autre logiciel bayésien.
la source