Der beste Weg, um mit Heteroskedastizität umzugehen?

19

Ich habe eine Darstellung der Restwerte eines linearen Modells in Abhängigkeit von den angepassten Werten, wobei die Heteroskedastizität sehr klar ist. Ich bin mir jedoch nicht sicher, wie ich jetzt vorgehen soll, da diese Heteroskedastizität meines Wissens mein lineares Modell ungültig macht. (Ist das richtig?)

  1. Verwenden Sie eine robuste lineare Anpassung, indem Sie die rlm()Funktion der MASSPackung nutzen, da sie offenbar robust gegen Heteroskedastizität ist.

  2. Da die Standardfehler meiner Koeffizienten wegen der Heteroskedastizität falsch sind, kann ich einfach die Standardfehler so einstellen, dass sie robust gegenüber der Heteroskedastizität sind. Verwenden Sie die hier auf Stack Overflow angegebene Methode: Regression mit Heteroskedastizität Korrigierte Standardfehler

Welches wäre die beste Methode, um mein Problem zu lösen? Wenn ich Lösung 2 verwende, ist meine Vorhersagefähigkeit meines Modells dann völlig unbrauchbar?

Der Breusch-Pagan-Test bestätigte, dass die Varianz nicht konstant ist.

Meine Residuen in Funktion der angepassten Werte sehen folgendermaßen aus:

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

(größere Version)

TristanDM
quelle
Meinen Sie "stackoverflow" anstatt "stackexchange"? (Sie sind hier immer noch auf stackexchange.) Wenn es SO war, ist es im Allgemeinen besser, die Frage zu migrieren, als eine zweite Kopie zu veröffentlichen (die Hilfe bittet, nicht dasselbe Q mehrmals zu posten, sondern einen besten Ort zu wählen).
Glen_b -Reinstate Monica
Die Streuungsunterschiede sind nicht so groß, dass die Auswirkung schwerwiegend ist (das heißt, während die Standardfehler und die Auswirkungsinferenz verzerrt werden, wird dies wahrscheinlich keinen großen Unterschied bewirken). Ich würde gerne überlegen, ob Spread mit Mean zusammenhängt, und mir vielleicht eine GLM oder möglicherweise eine Transformation anschauen (sie scheint mit Fitted zu tun zu haben). Was ist die y-Variable?
Glen_b -Reinstate Monica
2
Eine andere Möglichkeit besteht darin, die Heteroskedastizität z. B. unter Verwendung glseiner der Varianzstrukturen aus Paket nlme zu modellieren.
Roland

Antworten:

18

Es ist eine gute Frage, aber ich denke, es ist die falsche Frage. Ihre Zahl macht deutlich, dass Sie ein grundlegenderes Problem als die Heteroskedastizität haben, dh Ihr Modell weist eine Nichtlinearität auf, die Sie nicht berücksichtigt haben. Viele der potenziellen Probleme, die ein Modell haben kann (Nichtlinearität, Interaktionen, Ausreißer, Heteroskedastizität, Nicht-Normalität), können sich gegenseitig maskieren. Ich glaube nicht, dass es eine feste Regel gibt, aber im Allgemeinen würde ich vorschlagen, Probleme in der Reihenfolge zu behandeln

outliers > nonlinearity > heteroscedasticity > non-normality

(Machen Sie sich beispielsweise keine Sorgen über die Nichtlinearität, bevor Sie prüfen, ob es merkwürdige Beobachtungen gibt, die die Anpassung verzerren. Machen Sie sich keine Sorgen über die Normalität, bevor Sie sich um die Heteroskedastizität sorgen.)

In diesem speziellen Fall würde ich ein quadratisches Modell anpassen y ~ poly(x,2)(oder poly(x,2,raw=TRUE)oder y ~ x + I(x^2)und sehen, ob das Problem dadurch behoben wird.

Ben Bolker
quelle
Die Darstellung ist klein und die Achsen sind nicht beschriftet. Ich weiß nicht, ob es sich um einen Residuen-gegen-Fit-Plot handelt. Ich nahm an, dass das OP einen quadratischen Ausdruck enthielt, z. Wenn nicht, haben Sie eindeutig recht.
gung - Reinstate Monica
1
In meinem Browser kann ich sehen, dass der Bereich der y-Achse von -4 bis 3 reicht, was darauf schließen lässt, dass es sich um eine Residuen- oder
Anpassungskurve handelt.
1
Hallo Ben, liebe was du tust. Können Sie die Idee, dass "Ausreißer" das größte Problem sind, erweitern? Fügen Sie einzelne High-Leverage-Punkte als "Ausreißer" ein, auch wenn sie einen kleinen Rest haben? In meiner Arbeit beschäftige ich mich ständig mit Extremwertbeobachtungen (Umweltstatistik), und ich stelle fest, dass einige Leute (insbesondere die EPA) dazu neigen, Ausreißer überproportional in die Luft zu jagen (entschuldigen Sie ein unbeabsichtigtes Wortspiel) und zu eifrig sind um sie auszuschließen. Ich neige zu einer toleranten Haltung gegenüber Ausreißern, wenn ich keine guten Beweise dafür finde, dass sie eindeutig das Ergebnis von Datenfehlern (Erfassung, Eingabe) sind.
Dalton Hance
1
@DaltonHance: Wir sind wahrscheinlich ziemlich auf derselben Seite. Mein Punkt ist nur, dass, wenn Sie Ausreißer haben (nach welcher Definition auch immer) und diese von dem von Ihnen verwendeten statistischen Modell / Ansatz (Mischungsmodelle, robuste Statistiken, Fettverteilungen usw.) nicht berücksichtigt werden, dies der Fall ist wird dazu neigen, den Rest Ihrer Diagnostik zu vermasseln - es wird Residuen nichtlinear / heteroskedastisch / nicht normal aussehen lassen. Ich stimme dir mit Sicherheit zu, dass du sie nicht einfach nachdenklich / reflexartig rausschmeißen solltest.
Ben Bolker
8

Ich führe hier eine Reihe von Methoden zum Umgang mit Heteroskedastizität (mit RBeispielen) auf: Alternativen zur Einweg-ANOVA für heteroskedastische Daten . Viele dieser Empfehlungen wären weniger ideal, weil Sie eine einzige kontinuierliche Variable anstelle einer mehrstufigen kategorialen Variablen haben, aber es könnte trotzdem hilfreich sein, sie als Übersicht durchzulesen.

Für Ihre Situation wären gewichtete kleinste Quadrate (möglicherweise kombiniert mit einer robusten Regression, wenn Sie vermuten, dass es einige Ausreißer gibt) eine vernünftige Wahl. Die Verwendung der Huber-White-Sandwich-Fehler wäre ebenfalls gut.

Hier sind einige Antworten auf Ihre spezifischen Fragen:

  1. Eine robuste Regression ist eine praktikable Option, wäre aber meiner Meinung nach besser, wenn sie mit Gewichten kombiniert würde. Wenn Sie nicht befürchten, dass die Heteroskedastizität auf Ausreißer zurückzuführen ist, können Sie einfach eine regelmäßige lineare Regression mit Gewichten verwenden. Beachten Sie, dass die Varianz sehr empfindlich auf Ausreißer und Ihre Ergebnisse auf unangemessene Gewichte reagieren können. Was also wichtiger sein könnte als die Verwendung einer robusten Regression für das endgültige Modell, wäre die Verwendung eines robusten Streumaßes zur Schätzung der Gewichte. Im verlinkten Thread verwende ich zum Beispiel 1 / IQR.
  2. Die Standardfehler sind wegen der Heteroskedastizität falsch. Sie können die Standardfehler mit dem Huber-White-Sandwich-Schätzer korrigieren. Das macht @GavinSimpson im verknüpften SO-Thread.

XX

gung - Wiedereinsetzung von Monica
quelle
1
Wenn Sie eine robuste Regression aus dem lmrob-Paket verwenden, werden automatisch einige Gewichte abgeleitet. Verwenden Sie diese stattdessen in # 1.
tool.ish
1

Laden Sie die sandwich packageund berechnen Sie die var-cov-Matrix Ihrer Regression mit var_cov<-vcovHC(regression_result, type = "HC4")(lesen Sie das Handbuch von sandwich). Jetzt mit lmtest packageder coeftestFunktion:

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

Wie sieht die Verteilung Ihrer Daten aus? Sieht es überhaupt aus wie eine Glockenkurve? Kann es vom Gegenstand her überhaupt normal verteilt werden? Die Dauer eines Telefonanrufs darf beispielsweise nicht negativ sein. In diesem speziellen Fall von Aufrufen beschreibt eine Gammaverteilung dies gut. Und mit Gamma können Sie verallgemeinertes lineares Modell verwenden (glm in R)

Diego
quelle