La meilleure façon de gérer l'hétéroscédasticité?

19

J'ai un tracé des valeurs résiduelles d'un modèle linéaire en fonction des valeurs ajustées où l'hétéroscédasticité est très claire. Cependant, je ne sais pas comment je dois procéder maintenant, car pour autant que je sache, cette hétéroscédasticité rend mon modèle linéaire invalide. (Est-ce correct?)

  1. Utilisez un ajustement linéaire robuste en utilisant la rlm()fonction du MASSpackage, car il est apparemment robuste à l'hétéroscédasticité.

  2. Comme les erreurs standard de mes coefficients sont erronées en raison de l'hétéroscédasticité, je peux simplement ajuster les erreurs standard pour qu'elles soient robustes à l'hétéroscédasticité? Utilisation de la méthode publiée sur Stack Overflow ici: régression avec erreurs standard corrigées par hétéroskédasticité

Quelle serait la meilleure méthode à utiliser pour régler mon problème? Si j'utilise la solution 2, ma capacité de prédiction de mon modèle est-elle complètement inutile?

Le test de Breusch-Pagan a confirmé que la variance n'est pas constante.

Mes résidus en fonction des valeurs ajustées ressemblent à ceci:

https://i.gyazo.com/9407a829a168492b31dfa3d1dd33a21d.png

(version plus grande)

TristanDM
la source
Voulez-vous dire «stackoverflow» plutôt que «stackexchange»? (vous êtes toujours sur stackexchange ici.) Si c'était le cas, il est généralement préférable de migrer la question plutôt que d'en publier une deuxième copie (l'aide demande de ne pas publier le même Q plusieurs fois mais de choisir le meilleur endroit).
Glen_b -Reinstate Monica
La variation de la propagation n'est pas tant que l'impact sera sévère (c'est-à-dire, même si cela biaisera vos erreurs standard et impactera donc l'inférence, cela ne fera probablement pas une énorme différence). Je serais enclin à considérer si la propagation était liée à la moyenne, et peut-être regarder un GLM ou éventuellement une transformation (il semble certainement lié à l'ajustement). Quelle est la variable y?
Glen_b -Reinstate Monica
2
Une autre possibilité est de modéliser l'hétéroscédasticité, par exemple en utilisant glset l'une des structures de variance du paquet nlme.
Roland

Réponses:

18

C'est une bonne question, mais je pense que ce n'est pas la bonne question. Votre figure montre clairement que vous avez un problème plus fondamental que l'hétéroscédasticité, c'est-à-dire que votre modèle présente une non-linéarité que vous n'avez pas prise en compte. De nombreux problèmes potentiels qu'un modèle peut avoir (non-linéarité, interactions, valeurs aberrantes, hétéroscédasticité, non-normalité) peuvent se masquer les uns les autres. Je ne pense pas qu'il existe une règle stricte et rapide, mais en général, je suggère de traiter les problèmes dans l'ordre

outliers > nonlinearity > heteroscedasticity > non-normality

(par exemple, ne vous inquiétez pas de la non-linéarité avant de vérifier s'il y a des observations étranges qui faussent l'ajustement; ne vous inquiétez pas de la normalité avant de vous soucier de l'hétéroscédasticité).

Dans ce cas particulier, j'adapterais un modèle quadratique y ~ poly(x,2)(ou poly(x,2,raw=TRUE)ou y ~ x + I(x^2)et voir si cela fait disparaître le problème.

Ben Bolker
la source
L'intrigue est petite et les axes ne sont pas étiquetés. Je ne sais pas si c'est une parcelle résiduelle vs ajustée. J'ai supposé que le PO comprenait un terme carré, par exemple. Sinon, vous avez clairement raison.
gung - Réintégrer Monica
1
dans mon navigateur, je peux voir que la plage de l'axe des y va de -4 à 3, ce qui semble suggérer un tracé résiduel par rapport au tracé ajusté / exclure un tracé à l'échelle de l'emplacement ...
Ben Bolker
1
Salut Ben, aime ce que tu fais. Pouvez-vous développer l'idée que les «valeurs aberrantes» sont le plus gros problème? Incluez-vous des points uniques à fort effet de levier comme «valeurs aberrantes» même s'ils ont un petit résidu? Je traite constamment des observations de valeur extrême dans mon domaine de travail (statistiques environnementales), et je trouve que certaines personnes (l'EPA en particulier) ont tendance à souffler les valeurs aberrantes de manière disproportionnée (pardonnez tout jeu de mots involontaire) et sont très désireuses pour les exclure. J'ai tendance à adopter une attitude tolérante envers les valeurs aberrantes si je ne trouve pas de bonnes preuves qu'elles sont clairement le résultat d'une erreur de données (collecte, saisie).
Dalton Hance
1
@DaltonHance: nous sommes probablement à peu près sur la même page. Mon point est juste que si vous avez des valeurs aberrantes (quelle que soit la définition) et qu'elles ne sont pas prises en compte par le modèle / l'approche statistique que vous utilisez (modèles de mélange, statistiques robustes, distributions à queue épaisse, etc.), alors cela aura tendance à bousiller tout le reste de vos diagnostics - cela rendra les résidus non linéaires / hétéroscédastiques / non normaux. Je suis certainement d'accord que vous ne devriez pas simplement les jeter sans réfléchir / par réflexe.
Ben Bolker
8

J'énumère un certain nombre de méthodes pour traiter l'hétéroscédasticité (avec des Rexemples) ici: Alternatives à l'ANOVA unidirectionnelle pour les données hétéroscédastiques . Beaucoup de ces recommandations seraient moins idéales car vous avez une seule variable continue, plutôt qu'une variable catégorielle à plusieurs niveaux, mais il pourrait être agréable de lire comme un aperçu de toute façon.

Pour votre situation, les moindres carrés pondérés (peut-être combinés à une régression robuste si vous pensez qu'il peut y avoir des valeurs aberrantes) seraient un choix raisonnable. L'utilisation des erreurs du sandwich Huber-White serait également une bonne chose.

Voici quelques réponses à vos questions spécifiques:

  1. Une régression robuste est une option viable, mais ce serait mieux si elle était associée à des poids à mon avis. Si vous n'êtes pas inquiet que l'hétéroscédasticité soit due à des valeurs aberrantes, vous pouvez simplement utiliser une régression linéaire régulière avec des poids. Sachez que la variance peut être très sensible aux valeurs aberrantes et que vos résultats peuvent être sensibles aux poids inappropriés, donc ce qui pourrait être plus important que d'utiliser une régression robuste pour le modèle final serait d'utiliser une mesure de dispersion robuste pour estimer les poids. Dans le thread lié, j'utilise 1 / IQR, par exemple.
  2. Les erreurs standard sont erronées en raison de l'hétéroscédasticité. Vous pouvez ajuster les erreurs standard avec l'estimateur sandwich Huber-White. C'est ce que fait @GavinSimpson dans le thread SO lié.

L'hétéroscédasticité ne rend pas votre modèle linéaire totalement invalide. Il affecte principalement les erreurs standard. Si vous n'avez pas de valeurs aberrantes, les méthodes des moindres carrés doivent rester impartiales. Par conséquent, la précision prédictive des prévisions ponctuelles ne devrait pas être affectée. La couverture des intervalles prédictions serait affectée si vous ne l' avez pas modéliser la variance en fonction de et l' utiliser pour régler la largeur de vos intervalles de prédiction conditionnelle à . XXX

gung - Réintégrer Monica
la source
1
l'utilisation d'une régression robuste à partir du package lmrob inférerait automatiquement certains poids, pourquoi ne pas les utiliser à la place dans # 1?
tool.ish
1

Chargez le sandwich packageet calculez la matrice var-cov de votre régression avec var_cov<-vcovHC(regression_result, type = "HC4")(lire le manuel de sandwich). Maintenant, avec l' lmtest packageutilisation de la coeftestfonction:

coeftest(regression_result, df = Inf, var_cov)
Giacomo Rosaspina
la source
0

À quoi ressemble la distribution de vos données? Cela ressemble-t-il à une courbe en cloche? À partir du sujet, peut-il être distribué normalement? La durée d'un appel téléphonique peut ne pas être négative, par exemple. Donc, dans ce cas précis d'appels, une distribution gamma le décrit bien. Et avec gamma, vous pouvez utiliser un modèle linéaire généralisé (glm dans R)

Diego
la source