Résolution de l'hétéroscédasticité dans le GLMM de Poisson


8

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):

Résidus vs valeurs ajustées - Modèle principal

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)

Résidus vs valeurs ajustées - Modèle avec contrôle OD

  • 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.

entrez la description de l'image ici

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

entrez la description de l'image ici

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):

Weather-PC et succès d'échantillonnage

MISE À JOUR II.

Figures montrant les valeurs des prédicteurs par rapport aux résidus:

Prédicteurs vs résiduels


Avez-vous envisagé d'utiliser un estimateur non paramétrique? Ou comparer un ol à une régression médiane? Je me rends compte que poisson est le modèle dominant en bio, mais les GLM ne sont pas cohérents sous hétéroscédasticité et OLS ne l'est pas.
Superpronker

1
Parfois, la surdispersion est causée par une inflation zéro. Dans ce cas, vous pouvez essayer un modèle de poisson avec un paramètre d'inflation nulle ou un modèle d'obstacle. Le paquet glmmADMB a de grandes fonctionnalités pour y faire face: glmmadmb.r-forge.r-project.org/glmmADMB.html
Niek

Cher @Superpronker merci pour la suggestion, je n'ai pas vérifié OLS, je ne savais pas que cette approche serait suffisamment flexible pour gérer mes données. Je vais m'en
occuper

Cher @Niek dans mes données, il n'y a aucune observation de zéro - sinon j'ai pensé aux modèles de zeroinfl et de haies (dans le package 'pscl') en raison de leur bonne gestion de la surdispersion, mais ils ne sont utilisables que sur les données avec des zéros dans la réponse . Il y a quelques mois, j'ai essayé glmmADMB, mais cela n'a pas donné de meilleurs résultats. Cheers, ZR
Z. Radai

1
@mdewey, la raison derrière cela est que la relation entre les effets météorologiques et le succès de l'échantillonnage suit un optimum: la probabilité et l'étendue du succès de l'échantillonnage sont les plus élevées dans une plage donnée (dans ce cas, zéro et son voisinage) du prédicteur. Lorsque la valeur du prédicteur est plus éloignée de cet optimum, le succès de l'échantillonnage sera plus faible, correspondant à un sous-optimal. J'utilise le terme quadratique, car (1) les prédicteurs sont redimensionnés et recentrés à zéro, et (2) cela donne une meilleure approximation d'une connexion linéaire. Cheers, ZR
Z. Radai

Réponses:


9

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.

library(DHARMa)
library(lme4)

testData = createData(sampleSize = 200, overdispersion = 1, randomEffectVariance = 1, family = poisson())

fittedModel <- glmer(observedResponse ~ Environment1 + (1|group) + (1|ID), family = "poisson", data = testData, control=glmerControl(optCtrl=list(maxfun=20000) ))

# standard Pearson residuals
plot(fittedModel, resid(., type = "pearson") ~ fitted(.) , abline = 0)

# DHARMa residuals
plot(simulateResiduals(fittedModel))

entrez la description de l'image ici

entrez la description de l'image ici


Cher @FlorianHartig! Merci pour vos idées, j'ai essayé de comploter avec DHARMa. Sur la base de l'intrigue, il y a encore quelque chose de haut, ce qui fait que le quantile inférieur a la forme d'une courbe réciproque plutôt que d'une ligne droite. Vous avez mentionné que dans ce cas, une solution pourrait être de modéliser la dispersion en fonction de quelque chose - pourriez-vous aider exactement comment puis-je évaluer une telle fonction? Cheers, ZR
Z. Radai

Pouvez-vous m'envoyer ou poster l'intrigue? Une variabilité mineure est attendue lorsque votre N est petit
Florian Hartig

Cher @FlorianHartig, la question a été modifiée, affichant également les tracés DHARMa!
Z. Radai

@ Z.Radai - ce que je vois dans les graphiques, c'est que vos résidus sont systématiquement trop élevés pour de faibles prévisions de modèle. Cela ressemble plus à un problème de structure du modèle (prédicteurs manquants?) Qu'à un problème de distribution - j'essaierais de tracer les résidus par rapport à des prédicteurs possibles et potentiellement manquants.
Florian Hartig

1
Je ne m'inquiéterais pas de l'hétéroscédasticité, dans votre cas, elle est modérée et l'effet sur l'inférence devrait être modéré - le seul problème que je vois est la sous-prédiction systématique pour les petites valeurs, qui ne sera pas résolue en modélisant la variance. Mais si vous devez savoir voir ici stats.stackexchange.com/questions/247183/…
Florian Hartig
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.