Wie teste ich die Autokorrelation der Residuen?

23

Ich habe eine Matrix mit zwei Spalten, die viele Preise haben (750). Im Bild unten habe ich die Residuen der folgenden linearen Regression aufgetragen:

lm(prices[,1] ~ prices[,2])

Betrachtet man das Bild, scheint dies eine sehr starke Autokorrelation der Residuen zu sein.

Wie kann ich jedoch testen, ob die Autokorrelation dieser Residuen stark ist? Welche Methode soll ich anwenden?

Residuen der linearen Regression

Vielen Dank!

Dail
quelle
8
Sie müssen nicht auf Autokorrelation testen. Es ist dort. Die Handlung zeigt das. Sie könnten die Autokorrelationsfunktion dieser Residuen (Funktion acf()) betrachten, aber dies wird einfach bestätigen, was für ein einfaches Auge sichtbar ist: Die Korrelationen zwischen verzögerten Residuen sind sehr hoch.
Wolfgang
@Wolfgang, ja, richtig, aber ich muss es programmatisch überprüfen. Ich werde mir die acf-Funktion ansehen. Vielen Dank!
Dail
@Wolfgang, ich sehe acf (), aber ich sehe keine Art p-Wert, um zu verstehen, ob es eine starke Korrelation gibt oder nicht. Wie ist das Ergebnis zu interpretieren? Vielen Dank
Dail
Mit H0: Korrelation (r) = 0 folgt r einer Normalen / t dist mit dem Mittelwert 0 und der Varianz von sqrt (Anzahl der Beobachtungen). So können Sie das 95% -Konfidenzintervall mit +/-qt(0.75, numberofobs)/sqrt(numberofobs)
Jim
@Jim Die Varianz der Korrelation ist nicht . Die Standardabweichung ist auch nicht . Aber es hat ein drin. n nnn
Glen_b

Antworten:

17

Es gibt wahrscheinlich viele Möglichkeiten, dies zu tun, aber die erste, die mir in den Sinn kommt, basiert auf linearer Regression. Sie können die aufeinanderfolgenden Residuen gegeneinander regressieren und auf eine signifikante Steigung testen. Wenn es eine Autokorrelation gibt, sollte es eine lineare Beziehung zwischen aufeinanderfolgenden Residuen geben. Um den Code zu vervollständigen, den Sie geschrieben haben, können Sie Folgendes tun:

mod = lm(prices[,1] ~ prices[,2])
res = mod$res 
n = length(res) 
mod2 = lm(res[-n] ~ res[-1]) 
summary(mod2)

mod2 ist eine lineare Regression der Zeit error, & epsi ; t , gegen die Zeit t - 1 error, & epsi ; t - 1 . Wenn der Koeffizient für res [-1] signifikant ist, haben Sie Hinweise auf eine Autokorrelation in den Residuen.tεtt-1εt-1

Hinweis: Dies setzt implizit voraus, dass die Residuen in dem Sinne autoregressiv sind, dass nur für die Vorhersage von ε t wichtig ist . In der Realität kann es zu Abhängigkeiten mit größerer Reichweite kommen. In diesem Fall sollte diese von mir beschriebene Methode als die autoregressive Näherung mit einer Verzögerung an die wahre Autokorrelationsstruktur in ε interpretiert werden .εt-1εtε

Makro
quelle
Vielen Dank für das Beispiel. Nur ein Zweifel: Wie kann ich testen, ob res [-1] signifikant ist?
Dail
tp
mache einen schnellen Test mit: lm (rnorm (1000) ~ jitter (1: 1000)) Ich erhalte: Reststandardfehler: 1.006 bei 997 Freiheitsgraden Mehrfaches R-Quadrat: 0.0003463, Bereinigtes R-Quadrat: -0.0006564 F-Statistik : 0,3454 auf 1 und 997 DF, p-Wert: 0,5569 der p-Wert kann die Nullhypothese nicht ablehnen
Dail
Makro, ich habe die Residuen des Diagramms getestet, das ich oben gezeichnet habe, und das Ergebnis ist: Reststandardfehler: 0,04514 bei 747 Freiheitsgraden Mehrfaches R-Quadrat: 0,9241, angepasstes R-Quadrat: 0,924 F-Statistik: 9093 bei 1 und 747 DF, p-Wert: <2.2e-16, Es scheint nicht sehr gut zu sein. Es ist sehr seltsam, weil es eine starke Autokorrelation gibt. Was könnte ich tun?
Dail
3
Dies wird als Breusch-Godfrey-Test für die Autokorrelation bezeichnet.
Charlie
16

Verwenden Sie den im lmtest- Paket implementierten Durbin-Watson-Test .

dwtest(prices[,1] ~ prices[,2])
Rob Hyndman
quelle
sehr seltsam bekomme ich: p-wert <2.2e-16, wie ist das möglich? Die Daten scheinen sehr korreliert zu sein!
Dail
4
Der p-Wert ist der Wert, bei dem wahrscheinlich so viel Korrelation erhalten wird, wie beobachtet wird, wenn keine echte Korrelation vorliegt. Wenn also das p so klein ist wie es ist, deutet dies darauf hin, dass in der Stichprobe eine große Korrelation vorliegt.
Rob Hyndman
Meinen Sie damit, dass ein p-Wert wie dieser anzeigt, dass die Residuen sehr autokorreliert sind?
Dail
hmm seltsam, schau mal bei: imageshack.us/f/59/17671620.png wie ist es möglich, dass das richtige bild nicht automatisch korreliert ?
Dail
: dail Es scheint, dass das linke Bild eine strukturelle Änderung der Varianz aufweist (siehe Ruey Tsays Artikel "Ausreißer, Pegelverschiebungen und Varianzänderungen in Zeitreihen", Journal of Forecasting, VOl 7, 1-20 (1988) für Details). was in diesem Fall die DW nicht "verwirrt", möglicherweise aufgrund der Tatsache, dass die gesamte Verteilung noch normal ist, während das rechte Bild einige visuell offensichtliche (und empirisch identifizierbare) Anomalien (Impulse) aufweist, die eine nicht normale (leptokurtotische) Verteilung erzeugen (siehe Wikopedia: Eine Verteilung) bei positiver überschüssiger Kurtosis spricht man von einer leptokurtischen Verteilung, die beim DW
IrishStat
11

Der DW-Test oder der lineare Regressionstest sind nicht robust gegenüber Anomalien in den Daten. Wenn Sie Impulse, saisonale Impulse, Pegelverschiebungen oder lokale Zeittrends haben, sind diese Tests unbrauchbar, da diese unbehandelten Komponenten die Varianz der Fehler aufblähen und so die Tests nach unten drängen, was Sie (wie Sie herausgefunden haben) dazu veranlasst, die Nullhypothese von Nr Autokorrelation. Bevor diese beiden Tests oder ein anderer parametrischer Test, von dem ich weiß, dass er verwendet werden kann, muss "nachgewiesen" werden, dass der Mittelwert der Residuen statistisch nicht signifikant von 0,0 abweicht, ansonsten sind die zugrunde liegenden Annahmen ungültig. Es ist bekannt, dass eine der Einschränkungen des DW-Tests die Annahme ist, dass die Regressionsfehler normalverteilt sind. Beachten Sie normalverteilte Mittel unter anderem: Keine Anomalien (vglhttp://homepage.newschool.edu/~canjels/permdw12.pdf ). Darüber hinaus wird beim DW-Test nur die Autokorrelation von Verzögerung 1 geprüft. Ihre Daten haben möglicherweise einen wöchentlichen / saisonalen Effekt, und dies würde nicht diagnostiziert und außerdem den DW-Test unbehandelt nach unten verzerren.

IrishStat
quelle
Was sind die Tests, um zu testen, ob Residuen signifikant von Null abweichen? Wenn die Regression den Achsenabschnitt einschließt, ist der Restmittelwert algebraisch null, und ich bin gespannt, wie dieses Problem umgangen werden kann.
mpiktas
: mpkitas Wie Sie sagten, wenn Sie eine Konstante einbeziehen, ist der Mittelwert der Fehler garantiert 0,0, aber das garantiert nicht, dass der Mittelwert der Fehler überall Null ist. Wenn sich beispielsweise der Mittelwert einer Reihe ändert, ist der Gesamtmittelwert eine Konstante, ergibt jedoch zwei "Klumpen" von Residuen mit jeweils unterschiedlichen Mittelwerten. Weitere Informationen finden Sie in Ruey Tsays Artikel "Ausreißer, Pegelverschiebungen und Varianzänderungen in Zeitreihen", Journal of Forecasting, VOl 7, 1-20 (1988). ODER faculty.chicagobooth.edu/ruey.tsay/teaching/uts/lec10-08.pdf ODER Google "automatische Interventionserkennung"
IrishStat
1
Dies ist nur die Standardannahme "keine ausgelassenen Variablen", die in jeder Regressionsanalyse impliziert ist.
Charlie