Predictive Analytics
Der Einsatz von statistischen Modellen und Machine Learning, um aus historischen Daten Vorhersagen über zukünftige Ereignisse zu treffen – von Kundenabwanderung über Nachfrageprognosen bis zu Umsatzvorhersagen.
Daten, die über die Zeit geordnet sind – von Aktienkursen bis Sensordaten. Erfordert spezielle Methoden für Analyse und Vorhersage.
Time Series sind Daten mit Zeitstempel, bei denen die Reihenfolge wichtig ist.
Komponenten:
Beobachtung = Trend + Saisonalität + Residuum
Trend: Langfristige Richtung (steigend/fallend)
Saisonalität: Wiederkehrende Muster (täglich, wöchentlich)
Residuum: Zufälliges Rauschen
from statsmodels.tsa.seasonal import seasonal_decompose
result = seasonal_decompose(data, model='additive', period=7)
result.plot()
# Komponenten:
# result.trend
# result.seasonal
# result.resid
from prophet import Prophet
model = Prophet()
model.fit(df) # df mit 'ds' (date) und 'y' (value)
future = model.make_future_dataframe(periods=30)
forecast = model.predict(future)
Viele klassische Modelle (etwa ARIMA) setzen stationäre Zeitreihen voraus: Mittelwert, Varianz und Autokorrelationsstruktur ändern sich nicht über die Zeit. Reale Daten mit Trend oder Saisonalität sind selten stationär – Abhilfe schaffen Differenzierung (y[t] - y[t-1]) oder eine Log-Transformation bei wachsender Varianz. Ob eine Reihe stationär ist, prüft man z. B. mit dem Augmented-Dickey-Fuller-Test:
from statsmodels.tsa.stattools import adfuller
result = adfuller(data)
print(f"p-Wert: {result[1]:.4f}")
# Kleiner p-Wert spricht gegen die Nullhypothese "nicht stationär"
Wer klassische ML-Modelle (Gradient Boosting, lineare Modelle) auf Zeitreihen anwendet, muss die zeitliche Struktur in Features übersetzen:
| Feature-Typ | Beispiel | Nutzen |
|---|---|---|
| Lag-Features | Wert vor 1, 7, 28 Tagen | Autokorrelation nutzen |
| Rolling-Statistiken | Gleitender 7-Tage-Mittelwert | Kurzfristige Schwankungen glätten |
| Kalender-Features | Wochentag, Monat, Feiertag | Saisonalität abbilden |
| Differenzen | Veränderung zum Vortag | Trend entfernen |
TimeSeriesSplit in scikit-learn).Für kurze, gut verstandene Reihen mit klarer Saisonalität sind statistische Modelle wie ARIMA oder Exponential Smoothing oft schwer zu schlagen und leicht zu interpretieren. Prophet eignet sich für Business-Zeitreihen mit Feiertagseffekten und fehlenden Werten. Gradient-Boosting-Modelle mit Lag-Features spielen ihre Stärke aus, wenn viele externe Variablen (Preise, Wetter, Aktionen) einfließen sollen. Neuronale Ansätze wie LSTMs oder Transformer lohnen sich vor allem, wenn viele parallele Reihen und große Datenmengen vorliegen. Als Baseline sollte immer ein naives Modell dienen (z. B. “morgen wie heute” oder “wie vor einer Woche”) – ein komplexes Modell muss diese Baseline erst einmal schlagen.
Time Series sind wie ein Tagebuch: Einträge sind chronologisch geordnet, und der Kontext (was gestern passierte) ist wichtig für das Verständnis von heute.
Daten mit zeitlicher Ordnung und Abhängigkeit
Komponenten: Trend, Saisonalität, Noise
Spezielle Modelle: ARIMA, Prophet, LSTMs
Forecasting
Umsatz, Nachfrage, Aktienkurse vorhersagen
Anomalie-Erkennung
Ungewöhnliche Muster in Sensordaten
Trend-Analyse
Langfristige Entwicklungen erkennen
Time Series haben zeitliche Abhängigkeiten. Normale Modelle ignorieren die Reihenfolge. Spezielle Modelle nutzen diese Information.
Chronologisch! Nie zufällig. Trainiere auf Vergangenheit, teste auf Zukunft. Sonst Data Leakage.