Zeitreihenzerlegung (Decomposition) in Python: Eine leistungsstarke Methode zur Analyse von Trends und Saisonalität
Die Methode der Zeitreihenzerlegung (Decomposition) ist ein leistungsstarkes Werkzeug, um eine Zeitreihe in ihre wesentlichen Komponenten zu zerlegen und so besser zu verstehen, welche Einflüsse die Daten prägen. Diese Technik hilft, langfristige Trends, saisonale Muster und zufällige Schwankungen in den Daten zu isolieren und ist besonders nützlich in Bereichen wie der Finanz- und Wirtschaftsanalyse.
Additives Modell
Im additiven Modell wird die Zeitreihe Y(t) in drei Komponenten zerlegt:
- Trendkomponente T(t): Zeigt den langfristigen Verlauf der Zeitreihe. Dies kann ein kontinuierlicher Anstieg, ein Rückgang oder eine stabile Entwicklung sein.
- Saisonkomponente S(t): Stellt wiederkehrende, regelmäßige Schwankungen dar, die auf Jahreszeiten, Monate oder Wochen zurückzuführen sind.
- Restkomponente R(t): Repräsentiert zufälliges Rauschen oder unvorhergesehene Ereignisse, die nicht durch Trend oder Saisonalität erklärt werden können.
Multiplikatives Modell
Das multiplikative Modell wird verwendet, wenn die Komponenten miteinander interagieren und die Saisonalität proportional zur Höhe der Werte ist:
Hauptkomponenten der Decomposition
- Trend T(t): Eine langfristige Richtung oder Bewegung in den Daten.
- Saison S(t): Regelmäßige Schwankungen, die sich in festen Intervallen wiederholen.
- Rest R(t): Die verbleibende zufällige Komponente, nachdem Trend und Saisonalität isoliert wurden.
Warum Zeitreihenzerlegung?
- Analyse: Durch das Zerlegen der Zeitreihe kann man den Einfluss des Trends und der Saisonalität separat analysieren.
- Prognose: In Vorhersagemodellen wird oft die saisonale Komponente entfernt, um die Prognosegenauigkeit zu verbessern.
- Bereinigung: Das Entfernen von Saisonalität hilft, sich auf den Trend zu konzentrieren, besonders in wirtschaftlichen Daten.
Umsetzung in Python
Mit Python ist die Zeitreihenzerlegung einfach zu implementieren, beispielsweise mit der Funktion seasonal_decompose
aus der Bibliothek statsmodels. Dabei werden die saisonalen Effekte von den Originaldaten subtrahiert, um den Rest zu erhalten, und so die einzelnen Komponenten sichtbar zu machen.
from statsmodels.tsa.seasonal import seasonal_decompose
# Zerlegung der Zeitreihe
decomposition = seasonal_decompose(df['Value'], model='additive', period=12)
# Trend, Saisonalität und Rest extrahieren
trend = decomposition.trend
seasonal = decomposition.seasonal
resid = decomposition.resid
Diese einfache Technik bietet dir tiefere Einblicke in deine Daten und macht es einfacher, Trends und saisonale Muster zu erkennen und zu analysieren.
Insbesondere die saisonalen Muster und die Restkomponente können im Rahmen der steuerlichen Betriebsprüfung einen tieferen Einblick in eine Zeitreihe geben.
Ein komplettes Beispiel dieser Technik ist als Web-App unter https://majo2000.pyscriptapps.com/zeitreihe/latest/ verfügbar.