Anomalien sind Beobachtungen, die deutlich vom erwarteten Verhalten abweichen.
In Zeitreihen bedeutet das:
starke Abweichung vom Trend
starke Abweichung von saisonalem Muster
plötzliche Strukturbrüche
Wichtig ist: Anomalien sind kontextabhängig.
Merke
Eine Anomalie ist keine rein statistische Eigenschaft. Sie ist eine Abweichung vom erwarteten Prozessverhalten.
8.1 7.1 Beispielsignal mit Ausreißern
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltrng = np.random.default_rng(99)t = pd.date_range("2025-01-01", periods=24*10, freq="H")trend = np.linspace(0, 2, len(t))season =0.8* np.sin(2*np.pi*(t.hour)/24)noise =0.3* rng.normal(size=len(t))s = pd.Series(10+ trend + season + noise, index=t, name="signal")# künstliche Anomaliens.iloc[40] +=4s.iloc[120] -=3s.plot(title="Signal mit Anomalien")plt.show()
/var/folders/p_/ks3trxjx0jd839_g4g0vm4nc0000gn/T/ipykernel_19396/2246874237.py:7: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.
t = pd.date_range("2025-01-01", periods=24*10, freq="H")
/var/folders/p_/ks3trxjx0jd839_g4g0vm4nc0000gn/T/ipykernel_19396/2083333883.py:1: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.
rolling_std = s.rolling("24H").std()
/var/folders/p_/ks3trxjx0jd839_g4g0vm4nc0000gn/T/ipykernel_19396/2083333883.py:2: FutureWarning: 'H' is deprecated and will be removed in a future version, please use 'h' instead.
rolling_mean = s.rolling("24H").mean()
8.5 7.5 Strukturbruch vs Ausreißer
Ein einzelner Peak → Ausreißer
Dauerhafte Niveauänderung → Strukturbruch
Beide erfordern unterschiedliche Interpretation.
Methodischer Hinweis
Bevor Sie Anomalien markieren:
Trend prüfen
Saison prüfen
Baseline definieren
Schwellenwert begründen
8.6 7.6 Mini-Aufgaben
Entfernen Sie den Trend vor Anwendung des Z-Scores.