Datenanalyse mit Python: Muster in Zeitreihen erkennen

Die Python-Bibliothek sktime untersucht Zeitreihen mit den Methoden ARIMA, SARIMA und SARIMAX. Die Bibliothek TBATS prozessiert sogar multisaisonale Zeitreihen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 5 Kommentare lesen
Lesezeit: 16 Min.
Von
  • Dr. Roland Pleger
Inhaltsverzeichnis

Daten, die in bestimmten zeitlichen Abständen gemessen werden, bilden Zeitreihen. Sie sind überall: In Börsenkursen, Verkaufszahlen, Wetterdaten, Protokollen von IT-Systemen. Die Zeitreihenanalyse trennt in diesen Daten Vorhersagbares von Zufälligem. Ist in den Daten ein Trend zu erkennen, der sich in der Zukunft fortsetzen wird, oder wiederholen sich bestimmte Muster periodisch, oder ist gar beides kombiniert? Dafür gibt es mehrere statistische Verfahren. Sie schätzen den zufälligen Anteil am beobachteten Wert und leiten aus den verbleibenden Anteilen ein Muster für die Zukunft ab. Zu den erfolgreichsten Verfahren gehören solche, die die statistischen Methoden Autoregression (AR) und gleitender Mittelwert (Moving Average, AR) kombinieren. Das Grundverfahren heißt folgerichtig ARMA. Es kann aber nur Daten vorhersagen, wenn die Zeitreihe weder einem Trend noch periodischen Änderungen unterliegt. Um diese in die Vorhersage einzubeziehen, gibt es abgeleitete Verfahren.

ARIMA analysiert den Trend, indem es zusätzlich die Differenz der Zeitschritte betrachtet. Das I steht für integrated, also den Rechenschritt, der die Differenzbildung am Ende wieder zurückrechnet. SARIMA berücksichtigt saisonale (S) Anteile. Da die Periode in vielen Fällen offensichtlich ist, etwa Verkaufszahlen mit täglichen, wöchentlichen oder jährlichen Einflüssen, erwartet SARIMA dies explizit als Eingabe. Fließen auch Informationen exogener (X) Anteile, wie eine Liste von Feiertagen, mit ein, korreliert SARIMAX die Vorhersagedaten. Modernere Verfahren wie TBATS berücksichtigen auch mehr als eine Periode: Ein Tages- und ein Wochenrhythmus wäre ein Beispiel für ein multisaisonales Ereignis mit den Perioden 24 Stunden und 24 × 7 Stunden. Die Abkürzung steht für Trigonometric Seasonality, Box-Cox Transformation, ARMA Errors, Trend and Seasonal Components.

Mehr zu Data Science / Datenanalyse
Dr. Roland Pleger

Dr. Roland Pleger arbeitet beim Institut für Softwaretechnologie des Deutschen Zentrums für Luft- und Raumfahrt (DLR). Er ist begeistert von den Möglichkeiten, die Python für das Prototyping von Software bietet.

Dieser Artikel zeigt den praktischen Einsatz dieser Verfahren mit Python und der Bibliothek sktime. Sie ist nicht so mächtig wie die im letzten Beitrag zur Demonstration der Holt-Winters-Methode eingesetzte Bibliothek statsmodels. Aber der Aufbau ihrer Klassen orientiert sich am Schema von SciPy und scikit-learn, was die praktische Arbeit deutlich erleichtert. Alle Arbeitsschritte sind in einem begleitenden Jupyter-Notebook dokumentiert und lassen sich unmittelbar nachvollziehen.