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?)
Utilisez un ajustement linéaire robuste en utilisant la
rlm()
fonction duMASS
package, car il est apparemment robuste à l'hétéroscédasticité.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:
(version plus grande)
la source
gls
et l'une des structures de variance du paquet nlme.Réponses:
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
(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)
(oupoly(x,2,raw=TRUE)
ouy ~ x + I(x^2)
et voir si cela fait disparaître le problème.la source
J'énumère un certain nombre de méthodes pour traiter l'hétéroscédasticité (avec des
R
exemples) 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:
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 à . XX X
la source
Chargez le
sandwich package
et calculez la matrice var-cov de votre régression avecvar_cov<-vcovHC(regression_result, type = "HC4")
(lire le manuel desandwich
). Maintenant, avec l'lmtest package
utilisation de lacoeftest
fonction:la source
À 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)
la source