Korrelation zwischen zwei Zeitreihen

24

Was ist der einfachste Weg / die einfachste Methode, um die Korrelation zwischen zwei genau gleich großen Zeitreihen zu berechnen? Ich überlegte, und ( y [ t ] - μ y ) zu multiplizieren und die Multiplikation zu addieren. Wenn diese einzelne Zahl also positiv war, können wir dann sagen, dass diese beiden Reihen korreliert sind? Ich kann mir jedoch einige Beispiele vorstellen, bei denen eine linear andere exponentiell wachsende Zeitreihe keine Beziehung zueinander hat, aber die obige Berechnung berichtet, dass sie korreliert sind.(x[t]μx)(y[t]μy)

Irgendwelche Gedanken?

BBDynSys
quelle
3
Haben Sie schon einmal von der Kreuzkorrelationsfunktion gehört - en.wikipedia.org/wiki/Cross-correlation#Time_series_analysis ?
Makro
Ihre beiden Zeitreihen haben genau die gleiche Größe. Siehe stats.stackexchange.com/questions/3463/…, da es ähnlich ist, nicht ganz identisch mit Ihrer Frage, mit zwei Serien gleicher Größe und Häufigkeit, obwohl sie nicht stationär sind.
Ellie Kesselman

Antworten:

11

Makros Punkt ist richtig. Der richtige Vergleich für Beziehungen zwischen Zeitreihen erfolgt durch die Kreuzkorrelationsfunktion (unter der Annahme von Stationarität). Die gleiche Länge ist nicht unbedingt erforderlich. Die Kreuzkorrelation bei Verzögerung 0 berechnet nur eine Korrelation wie bei der Pearson-Korrelationsschätzung, bei der die Daten zu identischen Zeitpunkten gepaart werden. Wenn sie dieselbe Länge haben, wie Sie annehmen, haben Sie genaue T-Paare, wobei T die Anzahl der Zeitpunkte für jede Reihe ist. Die Kreuzkorrelation für Verzögerung 1 stimmt mit der Zeit t aus Serie 1 mit der Zeit t + 1 in Serie 2 überein. Beachten Sie, dass hier, obwohl die Serien dieselbe Länge haben, Sie nur ein T-2-Paar haben, da ein Punkt in der ersten Serie keine Übereinstimmung in der zweiten hat und ein anderer Punkt in der zweiten Reihe hat keine Übereinstimmung mit dem ersten. Mit diesen beiden Reihen können Sie die Kreuzkorrelation bei mehreren Verzögerungen abschätzen. Wenn sich eine der Kreuzkorrelationen statistisch signifikant von 0 unterscheidet, deutet dies auf eine Korrelation zwischen den beiden Reihen hin.

Michael R. Chernick
quelle
Hallo Michael, ist es möglich, "signifikant anders" zu quantifizieren - kann ich 1 oder 2 Standardabweichungen von Null als signifikant verwenden?
BBDynSys
@ user423805 Ich habe es so geändert, dass es statistisch signifikant von 0 abweicht. Formal bedeutet dies, dass Sie die Nullhypothese testen, dass die Korrelation Null ist, im Gegensatz zu der Alternative, dass sie nicht 0 ist. Berechnen Sie dann den zweiseitigen p-Wert für die Teststatistik . Im Allgemeinen bedeutet statistische Signifikanz p-Wert <= 0,05. Manchmal werden andere Werte verwendet, um die statistische Signifikanz zu definieren (z. B. 0,01). Die meisten Zeitreihen-Softwarepakete, die mehrere Zeitreihen enthalten, können diese Tests für Sie durchführen. Unser Freund IrishStat kann dies in Bezug auf Autobox ansprechen.
Michael R. Chernick
Gibt es Fälle, in denen sich die Kreuzkorrelation bei Lag Null und Pearson unterscheidet?
Bakaburg
4

Vielleicht möchten Sie sich eine ähnliche Frage und meine Antwort ansehen. Korrelieren von Volumen-Zeitreihen, die darauf hindeuten, dass Sie Kreuzkorrelationen berechnen können, ABER wenn Sie sie testen, handelt es sich um ein Pferd mit einer anderen Farbe (ein Pferd mit einem anderen Farbton) aufgrund einer autoregressiven oder deterministischen Struktur innerhalb von Serie.

IrishStat
quelle
Wenn ich das richtig verstehe, sagen Sie in dieser Antwort, dass eine Kreuzkorrelation zwischen Zeitreihen nutzlos ist.
BBDynSys
user423805 KANN unbrauchbar sein, es sei denn, die Daten werden entsprechend vorgefiltert, um eine IID zu erhalten. Dies spricht direkt für die wirklichen Bedenken des OP bezüglich falscher Schlussfolgerungen wie "Störche, die Babys bringen" von J. Neyman 1938 en.wikipedia.org/wiki/… und amstat.org/about / statisticiansinhistory /… "etc (Ich kann mir jedoch einige Beispiele vorstellen, bei denen eine linear andere exponentiell wachsende Zeitreihe keine Beziehung zueinander hat, die Berechnung oben jedoch besagt, dass sie korreliert sind.)
IrishStat
Ich denke, der Punkt ist, dass die Serie stationär sein muss, damit Kreuzkorrelationen Sinn machen. Wenn eine Filterung erforderlich ist, muss die Reihe stationär sein (wie Differenzierung oder saisonale Differenzierung). Aber es nutzlos zu nennen, ist falsch.
Michael R. Chernick
@ Michael Ich sagte, kann nutzlos sein.
IrishStat
@IrishStat Es war ein guter Kommentar und führte mich zu meiner Ausbildung in den 1970er Jahren zurück. Zu dieser Zeit lernte ich Zeitreihen / Prognosemethoden für meine zivile Arbeit in der US-Armee. Wir haben die exponentielle Glättung verwendet, um anhand von historischen Daten Vorhersagen über subjektive Schätzungen zu treffen, die in den Versorgungslagern verwendet wurden. Jemand machte mir den großen Vorschlag, mir die allgemeineren ARIMA-Modelle und den Text von Box und Jenkins von 1970 anzuschauen, und so begann mein Interesse an Zeitreihen, die Teil meiner Karriere wurden.
Michael R. Chernick
-1

Hier gibt es einige interessante Sachen

/programming/3949226/calculating-pearson-correlation-and-significance-in-python

Das war eigentlich das, was ich brauchte. Einfach zu implementieren und zu erklären.

BBDynSys
quelle
2
-1 Soweit ich weiß, beziehen sich diese Antworten nur auf die Standard-Produkt-Moment-Korrelation von Pearson. Bei Anwendung auf zwei Zeitreihen ergibt die Standard-Pearson-Korrelation unsinnige Ergebnisse! Wenn Sie diesen Vorschlägen folgen, produzieren Sie lediglich statistische Artefakte. Siehe zB math.mcgill.ca/dstephens/OldCourses/204-2007/Handouts/…
Momo