Wie vergleiche ich zwei Zeitreihen statistisch?


43

Ich habe zwei Zeitreihen, die in der folgenden Darstellung gezeigt werden:

Zeitreihen-Plot

Der Plot zeigt die vollständigen Details beider Zeitreihen, aber ich kann ihn bei Bedarf leicht auf die zufälligen Beobachtungen reduzieren.

Meine Frage ist: Mit welchen statistischen Methoden kann ich die Unterschiede zwischen den Zeitreihen bewerten?

Ich weiß, dass dies eine ziemlich breite und vage Frage ist, aber ich kann anscheinend nirgendwo viel einführendes Material dazu finden. Aus meiner Sicht sind zwei Dinge zu bewerten:

1. Sind die Werte gleich?

2. Sind die Trends gleich?

Welche Art von statistischen Tests würden Sie vorschlagen, um diese Fragen zu bewerten? Zu Frage 1 kann ich natürlich die Mittelwerte der verschiedenen Datensätze beurteilen und nach signifikanten Unterschieden bei den Verteilungen suchen. Gibt es dafür eine Möglichkeit, die den Zeitreihencharakter der Daten berücksichtigt?

Zu Frage 2 - Gibt es so etwas wie die Mann-Kendall-Tests, bei denen nach Ähnlichkeiten zwischen zwei Trends gesucht wird? Ich könnte den Mann-Kendall-Test für beide Datensätze durchführen und vergleichen, aber ich weiß nicht, ob dies eine gültige Methode ist oder ob es eine bessere Methode gibt.

Ich mache das alles in R, wenn Sie also vorschlagen, ein R-Paket zu haben, lassen Sie es mich bitte wissen.


9
Die Darstellung scheint den entscheidenden Unterschied zwischen diesen Serien zu verdecken: Sie können mit unterschiedlichen Frequenzen abgetastet werden. Die schwarze Linie (Aeronet) scheint nur etwa 20-mal und die rote Linie (Sichtbarkeit) hunderte Male oder öfter abgetastet worden zu sein. Ein weiterer kritischer Faktor kann die Regelmäßigkeit oder das Fehlen von Stichproben sein: Die Zeiträume zwischen Aeronet-Beobachtungen scheinen ein wenig zu variieren. Im Allgemeinen ist es hilfreich, die Verbindungslinien zu löschen und nur die Punkte anzuzeigen, die den tatsächlichen Daten entsprechen, damit der Betrachter diese Dinge visuell bestimmen kann.
whuber

Hier ist eine Python-Bibliothek für die Analyse von Zeitreihen mit ungleichmäßigen Abständen.
kjetil b halvorsen

Antworten:


27

Wie andere angegeben haben, müssen Sie eine gemeinsame Messfrequenz haben (dh die Zeit zwischen den Beobachtungen). Damit würde ich ein gemeinsames Modell identifizieren, das jede Serie angemessenerweise separat beschreibt. Dies kann ein ARIMA-Modell oder ein Regressionsmodell mit multiplizierten Trends und möglichen Pegelverschiebungen sein oder ein zusammengesetztes Modell, das sowohl Speicher- (ARIMA) als auch Dummy-Variablen integriert. Dieses gemeinsame Modell könnte global und separat für jede der beiden Reihen geschätzt werden, und dann könnte man einen F-Test erstellen, um die Hypothese eines gemeinsamen Parametersatzes zu testen.


1
Nun, Sie brauchen nicht wirklich die gleiche Frequenz für beide Serien. Es ist nur so, dass es wenig Software für andere Fälle gibt, aber siehe trace.readthedocs.io/en/latest . Es scheint , wie viel über andere Fälle in der Astronomie Zeitschriften pubslihed ist und in den Bereichen Finanzen und Geophysik ... siehe Lit. in en.wikipedia.org/wiki/Unevenly_spaced_time_series
kjetil b Halvorsen

12

Betrachten Sie die grangertest()in der lmtest- Bibliothek.

Es ist ein Test, um festzustellen, ob eine Zeitreihe für die Vorhersage einer anderen Zeitreihe hilfreich ist.

Ein paar Hinweise zum Einstieg:

https://spia.uga.edu/faculty_pages/monogan/teaching/ts/

https://spia.uga.edu/faculty_pages/monogan/teaching/ts/Kgranger.pdf

http://en.wikipedia.org/wiki/Granger_causality


1
Seine Stichprobengröße wäre mit <10 Datenpunkten im Vergleich zu der Menge an Parametern, die Sie für Granger benötigen, zu klein.
Jase

1
@fionn, die Links in deiner Antwort sind tot. Können Sie Ihre Antwort aktualisieren?
Davor Josipovic

0

Bin gerade darauf gestoßen. Ihre erste Antwort: Zeichnen Sie die beiden Sätze auf den gleichen Maßstab (zeitlich), um die Unterschiede visuell zu erkennen. Sie haben dies getan und sehen leicht, dass es einige offensichtliche Unterschiede gibt. Der nächste Schritt ist die Verwendung einer einfachen Korrelationsanalyse ... und zu sehen, wie gut sie mit dem Korrelationskoeffizienten (r) zusammenhängen. Wenn das r klein ist, wäre Ihre Schlussfolgerung, dass sie schwach verwandt sind und daher keine wünschenswerten Vergleiche und ein größerer Wert, wenn r gute Vergleiche s zwischen den beiden Reihen nahelegen würde. Der dritte Schritt, bei dem eine gute Korrelation besteht, besteht darin, die statistische Signifikanz von r zu testen. Hier können Sie den Shapiro-Welch-Test verwenden, bei dem davon ausgegangen wird, dass die beiden Reihen normalverteilt sind (Nullhypothese) oder nicht (Alternativhypothese). Es gibt andere Tests, die Sie durchführen können, aber ich hoffe, dass meine Antwort hilft.


1
Beim Vergleich von Zeitreihen handelt es sich um Autokorrelation und möglicherweise passende Zeitreihenmodelle. wie z. B. ARIMA-Modelle, mit deren Hilfe festgestellt werden kann, wie ähnlich sie sind. Zwei Realisierungen desselben stochastischen Prozesses sehen beim Zeichnen nicht unbedingt gleich aus.
Michael Chernick

-2

Passen Sie mit polyfit eine gerade Linie an beide Zeitreihensignale an. Berechnen Sie dann den quadratischen Mittelwertfehler (RMSE) für beide Linien. Der erhaltene Wert für die rote Linie wäre wesentlich geringer als der für die graue Linie.

Machen Sie auch die Messwerte auf einer gemeinsamen Frequenz.


2
Willkommen bei Cross Validated und vielen Dank für Ihre erste Antwort! Ich bin jedoch besorgt, dass Sie die Frage nicht direkt beantworten - wie genau würde der vorgeschlagene Ansatz dem Fragesteller helfen, zu beurteilen, ob die Werte und / oder Trends ähnlich sind?
Martin Modrák
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.