Ich habe viele Zeitreihen in diesem Format 1 Spalte, in der ich Datumsformat (d / m / Jahr) habe, und viele Spalten, die verschiedene Zeitreihen darstellen, wie hier:
DATE TS1 TS2 TS3 ...
24/03/2003 0.00 0.00 ...
17/04/2003 -0.05 1.46
11/05/2003 0.46 -3.86
04/06/2003 -2.21 -1.08
28/06/2003 -1.18 -2.16
22/07/2003 0.00 0.23
Wie kann ich mit R die Zeitreihen gruppieren, die ähnliche Trends zeigen?
r
time-series
clustering
daveal81
quelle
quelle
code
ist sehr ähnlich zu dem, was ich tun möchteAntworten:
Schritt 1
Führen Sie eine schnelle Fourier-Transformation für die Zeitreihendaten durch. Dadurch werden Ihre Zeitreihendaten in Mittelwert- und Frequenzkomponenten zerlegt, und Sie können Variablen für das Clustering verwenden, die keine starke Autokorrelation aufweisen, wie dies bei vielen rohen Zeitreihen der Fall ist.
Schritt 2
Wenn Zeitreihen einen reellen Wert haben, verwerfen Sie die zweite Hälfte der schnellen Fourier-Transformationselemente, da diese redundant sind.
Schritt 3
Trennen Sie den Real- und Imaginärteil jedes schnellen Fourier-Transformationselements.
Schritt 4
Führen Sie ein modellbasiertes Clustering für den Real- und Imaginärteil jedes Frequenzelements durch.
Schritt 5
Zeichnen Sie die Perzentile der Zeitreihen nach Cluster, um ihre Form zu untersuchen.
Alternativ können Sie die DC-Komponenten der schnellen Fourier-Transformation weglassen, um zu vermeiden, dass Ihre Cluster auf dem Mittelwert und stattdessen auf der durch die Fourier-Transformation definierten Reihe basieren, die die Form der Zeitreihe darstellt.
Sie möchten auch die Amplituden und Phasenwinkel aus der schnellen Fourier-Transformation berechnen, um die Verteilung von Zeitreihenspektren innerhalb von Clustern zu untersuchen. In dieser StackOverflow-Antwort erfahren Sie, wie Sie dies für Daten mit echtem Wert tun.
Sie können die Perzentile der Zeitreihenform auch nach Clustern darstellen, indem Sie die Fourier-Reihen aus den Amplituden und Phasenwinkeln berechnen (die resultierende Zeitreihenschätzung stimmt nicht perfekt mit der ursprünglichen Zeitreihe überein). Sie können die Perzentile der rohen Zeitreihendaten auch nach Cluster darstellen. Hier ist ein Beispiel für eine solche Darstellung, die aus einer harmonischen Analyse von NDVI-Daten hervorgegangen ist, die ich gerade heute durchgeführt habe:
Wenn Ihre Zeitreihen nicht stationär sind (dh Mittelwert und Varianzverschiebung über die Zeit), ist es möglicherweise besser, eine Wavelet-Transformation anstelle einer Fourier-Transformation zu verwenden. Sie würden dies auf Kosten von Informationen über Frequenzen tun, während Sie Informationen über den Standort erhalten.
quelle