Zeitreihen unterscheiden sich von klassischen Datensätzen, weil Beobachtungen nicht unabhängig sind.
Der Wert zum Zeitpunkt t hängt häufig von vorherigen Werten ab.
Diese zeitliche Abhängigkeit untersuchen wir mit:
Lags
Autokorrelation
Merke
Zeitliche Abhängigkeit ist eine zentrale Eigenschaft von Zeitreihen. Ohne sie gäbe es keine sinnvolle Prognose.
7.1 6.1 Beispielsignal
import numpy as npimport pandas as pdimport matplotlib.pyplot as pltrng = np.random.default_rng(21)t = pd.date_range("2025-01-01", periods=24*14, freq="H")trend = np.linspace(0, 2, len(t))season =0.8* np.sin(2*np.pi*(t.hour)/24)noise =0.4* rng.normal(size=len(t))s = pd.Series(15+ trend + season + noise, index=t, name="signal")s.plot(title="Beispielsignal")plt.show()
/var/folders/p_/ks3trxjx0jd839_g4g0vm4nc0000gn/T/ipykernel_19379/1570465617.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*14, freq="H")
lags =range(1, 49)ac = [s.corr(s.shift(k)) for k in lags]plt.stem(list(lags), ac)plt.title("Autokorrelation (1–48 Stunden)")plt.xlabel("Lag (h)")plt.ylabel("Korrelation")plt.show()
import numpy as npy = s.to_numpy()y = y - np.nanmean(y)def autocorr(y, k):return np.corrcoef(y[:-k], y[k:])[0,1]lags =range(1, 49)ac_np = [autocorr(y, k) for k in lags]plt.stem(list(lags), ac_np)plt.title("Autokorrelation (NumPy)")plt.xlabel("Lag")plt.ylabel("Korrelation")plt.show()
7.4 6.4 Interpretation der Autokorrelation
Typische Muster:
Langsam abfallende Kurve → starker Trend
Periodische Peaks (z. B. bei 24, 48, 72) → Saison
Schneller Abfall gegen 0 → schwache Abhängigkeit
Achtung
Trend kann Autokorrelation künstlich erhöhen. Gegebenenfalls zuerst detrenden oder differenzieren.
7.5 6.5 Mini-Aufgaben
Entfernen Sie den Trend (z. B. durch Rolling Mean).