Hintergrund
Ich arbeite an einem Zeitreihendatensatz von Energiezählerständen. Die Länge der Serie variiert je nach Meter - für einige habe ich mehrere Jahre, für andere nur einige Monate usw. Viele zeigen eine signifikante Saisonalität und oft mehrere Schichten - innerhalb eines Tages, einer Woche oder eines Jahres.
Eines der Dinge, an denen ich gearbeitet habe, ist das Clustering dieser Zeitreihen. Meine Arbeit ist im Moment akademisch und während ich andere Analysen der Daten durchführe, habe ich ein spezifisches Ziel, ein Clustering durchzuführen.
Ich habe einige anfängliche Arbeiten durchgeführt, bei denen ich verschiedene Funktionen berechnet habe (Prozentsatz an Wochenenden im Vergleich zum Wochentag, Prozentsatz in verschiedenen Zeitblöcken usw.). Anschließend beschäftigte ich mich mit der Verwendung von Dynamic Time Warping (DTW), um den Abstand zwischen verschiedenen Serien und die Clusterbildung basierend auf den Unterschiedswerten zu ermitteln, und ich habe mehrere diesbezügliche Artikel gefunden.
Frage
Wird die Saisonalität in einer bestimmten Serie dazu führen, dass mein Clustering falsch ist? Und wenn ja, wie gehe ich damit um?
Ich befürchte, dass die von DTW erhaltenen Entfernungen in den Fällen, in denen sich das Muster in einer Zeitreihe geändert hat, irreführend sein könnten. Dies kann zu fehlerhaften Clustern führen.
Wenn das oben Genannte unklar ist, betrachten Sie diese Beispiele:
Beispiel 1
Ein Messgerät zeigt von Mitternacht bis 8 Uhr morgens niedrige Messwerte an. Die Messwerte steigen dann für die nächste Stunde stark an und bleiben von 9 Uhr morgens bis 17 Uhr morgens hoch. In der nächsten Stunde fallen sie dann stark ab und bleiben von 18 Uhr morgens bis Mitternacht niedrig. Das Messgerät setzt dieses Muster mehrere Monate lang jeden Tag fort, wechselt dann jedoch zu einem Muster, bei dem die Messwerte den ganzen Tag über konstant bleiben.
Beispiel 2
Ein Zähler zeigt ungefähr die gleiche Menge an Energie an, die jeden Monat verbraucht wird. Nach einigen Jahren ändert sich ein Muster, bei dem der Energieverbrauch in den Sommermonaten höher ist, bevor wieder die übliche Menge erreicht wird.
Mögliche Richtungen
- Ich habe mich gefragt, ob ich weiterhin ganze Zeitreihen vergleichen kann, aber sie aufteilen und als separate Reihe betrachten kann, wenn sich das Muster erheblich ändert. Dazu müsste ich jedoch in der Lage sein, solche Änderungen zu erkennen. Außerdem weiß ich einfach nicht, ob dies ein geeigneter Weg ist oder ob ich mit den Daten arbeite.
- Ich habe auch darüber nachgedacht, die Daten zu teilen und sie als mehrere separate Zeitreihen zu betrachten. Zum Beispiel könnte ich jede Tag / Meter-Kombination als separate Serie betrachten. Allerdings müsste ich dann ähnlich vorgehen, wenn ich die wöchentlichen / monatlichen / jährlichen Muster berücksichtigen möchte. Ich denke, das würde funktionieren, aber es ist möglicherweise ziemlich beschwerlich und ich würde es hassen, diesen Weg zu gehen, wenn es einen besseren Weg gibt, den ich vermisse.
Weitere Hinweise
Dies sind Dinge, die in Kommentaren auftauchen, oder Dinge, an die ich aufgrund von Kommentaren gedacht habe, die relevant sein könnten. Ich stelle sie hierher, damit die Leute nicht alles durchlesen müssen, um relevante Informationen zu erhalten.
- Ich arbeite in Python, habe aber Probleme mit den Stellen, an denen R besser geeignet ist. Ich bin jedoch nicht unbedingt auf der Suche nach einer Python-Antwort - wenn jemand eine praktische Antwort darauf hat, was zu tun ist, finde ich die Implementierungsdetails gerne selbst heraus.
- Ich arbeite viel an "grobem Entwurfscode" - ich habe einige DTW-Läufe durchgeführt, ich habe ein paar verschiedene Arten von Clustering durchgeführt usw. Ich glaube, ich verstehe weitgehend, in welche Richtung ich gehe und was ich tue. Die Frage, nach der ich wirklich suche, hängt davon ab, wie ich meine Daten verarbeite, bevor ich Entfernungen finde, Clustering durchführe usw. Angesichts dessen vermute ich, dass die Antwort dieselbe ist, unabhängig davon, ob die Entfernungen zwischen Serien über DTW oder eine einfachere euklidische Entfernung (ED) berechnet werden.
- Ich fand diese Artikel besonders informativ zu Zeitreihen und DTW und sie können hilfreich sein, wenn Hintergrundinformationen zum Themenbereich benötigt werden: http://www.cs.ucr.edu/~eamonn/selected_publications.htm
quelle
Antworten:
Nachdem ich Ihre Frage gelesen hatte, wurde ich neugierig auf das Thema Zeitreihen-Clustering und Dynamic Time Warping (DTW) . Daher habe ich eine eingeschränkte Suche durchgeführt und (für mich) Grundkenntnisse und die folgenden IMHO- relevanten Referenzen (für Sie) gefunden. Ich hoffe, dass Sie dies nützlich finden, aber denken Sie daran, dass ich absichtlich Forschungsarbeiten übersprungen habe, da ich mich mehr für praktische Aspekte des Themas interessiert habe .
Ressourcen:
quelle
Wenn Sie nur nach saisonalen Mustern suchen möchten, untersuchen Sie die Autokorrelation . Wenn Sie nach einem Modell suchen, das saisonale Muster lernt und daraus Prognosen erstellt, ist Holt-Winters ein guter Anfang, und ARIMA ist eine gute Lösung . Hier [pdf] ist das Tutorial, das mich auf den Weg gebracht hat.
quelle