Modélisation de la régression avec variance inégale

22

Je voudrais adapter un modèle linéaire (lm) où la variance des résidus dépend clairement de la variable explicative.

Pour ce faire, je sais utiliser glm avec la famille Gamma pour modéliser la variance, puis mettre son inverse dans les poids de la fonction lm (exemple: http://nitro.biosci.arizona.edu/r/chapter31 .pdf )

Je me demandais:

  • Est-ce la seule technique?
  • Quelles autres approches sont pertinentes?
  • Quels packages / fonctions R sont pertinents pour ce type de modélisation? (autre que glm, lm)
Tal Galili
la source
4
Où utilisent-ils glm()alors lm()dans le chapitre que vous liez. Il me semble que glm()c'est tout ce qui est nécessaire et utilisé là-bas, mais j'ai peut-être manqué quelque chose. Vous pouvez essayer les moindres carrés généralisés ( gls()en nlme ) qui permettent d'estimer les poids pour contrôler le type d'hétéroscédasticité que vous mentionnez; voir ?varFuncet suivre les liens à partir de là. L'IIRC varFixed()fera ce que vous voulez.
Rétablir Monica - G. Simpson
Dans 'proc mixed', 'subject = option' produit une structure bloc-diagonale dans la matrice variance-covariance des résidus. Avez-vous donc envisagé un modèle mixte linéaire général pour modifier l'hypothèse d'homoscédasticité?
ocram
Merci Gavin, j'ai regardé un peu ces fonctions. Deux questions: 1) Recommandez-vous des tutoriels? (Je soupçonne que le livre MASS peut être un bon début, mais je me demandais si vous aviez une idée à ce sujet). 2) Étant donné que le modèle que je suis en train d'adapter est un OLS simple, dans quelle mesure l'estimation sera-t-elle différente lors de l'utilisation de la fonction gls? (Si je me souviens bien - pas beaucoup, car cela devrait fonctionner sur une approximation itérative du premier degré, mais je n'en suis pas du tout sûr). Ocram - merci, mais je n'utilise pas SAS.
Tal Galili
Ici, dans la section 2, il est expliqué comment procéder dans STATA pour la régression quasipoisson : stata.com/meeting/fnasug08/gutierrez.pdf . Si quelqu'un pouvait suggérer un moyen de recoder cela dans R, je serais très reconnaissant.
a11msp

Réponses:

17

Les pilules contre «l'effet mégaphone» comprennent (entre autres):

  1. Oui
  2. Utilisez la régression des moindres carrés pondérés . Dans cette approche, chaque observation reçoit son propre facteur de variance. Cette réponse montre comment utiliser WLSR dans R (par exemple, si la variance des résidus est proportionnelle aux moyennes, vous pouvez fournir en poids l'inverse de la valeur ajustée dans le modèle non pondéré).
  3. Utilisez une régression robuste. La fonction rlm()dans le MASSpackage de R fait une estimation M, qui est censée être robuste à l'inégalité des variances.

Édition de juillet 2017: Il semble que les moindres carrés généralisés, comme suggéré dans la réponse de Greg Snow, soit l'une des meilleures options.

gui11aume
la source
2
J'ai construit sur cette réponse pour une question de débordement de pile .
Peter Ellis
1
Cela pourrait valoir la peine de souligner également l'option des moindres carrés généralisés, en utilisant gls avec l'option weights définie sur varFixed () - pour moi, cela semblerait être l'une des options les plus élégantes ...
Tom Wenseleers
@ TomWenseleers Je suis d'accord. Notez que c'est la réponse de Greg Snow.
gui11aume
9

Avec le package gamlss , vous pouvez modéliser la distribution des erreurs de la réponse comme une fonction linéaire, non linéaire ou fluide des variables explicatives. Cela semble être une approche assez puissante (j'ai beaucoup appris sur toutes les possibilités qui pourraient survenir au cours du processus de sélection de modèle) et tout est bien expliqué dans plusieurs publications (y compris des livres) qui sont référencées au lien ci-dessus.

ils
la source
8

La glsfonction dans le nlmepackage pour R peut estimer la régression et la relation avec la variance en même temps. Voir l' weightsargument et le 2ème exemple sur la page d'aide.

Greg Snow
la source