LoslegenKostenlos loslegen

Den Wintermantel noch nicht wegwerfen

Zum Schluss sagst du die Temperatur für die nächsten 30 Jahre mit einem ARMA(1,1)-Modell voraus – inklusive Konfidenzbändern um diese Schätzung. Bedenke, dass die Schätzung des Drifts einen viel größeren Einfluss auf langfristige Prognosen hat als die ARMA-Parameter.

Zuvor hast du festgestellt, dass die Temperaturdaten einer Random-Walk-Struktur folgen, und du hast dir das einmalige Differenzieren angesehen. In dieser Übung verwendest du das ARIMA-Modul auf den Temperaturdaten (vor dem Differenzieren). Das ist identisch damit, das ARMA-Modul auf die Änderungen der Temperatur anzuwenden und anschließend die kumulierten Summen dieser Änderungen zu bilden, um daraus die Temperaturvorhersage zu erhalten.

Da die Temperaturen im Zeitverlauf steigen, musst du beim Definieren des ARIMA-Modells auch eine Trendkomponente hinzufügen. In der Übung nutzt du einen linearen Trend über die Zeit, indem du das Argument trend='t' setzt. Du kannst auch andere Trendmodelle ausprobieren, um zu sehen, wie sich die Vorhersagen ändern. Für einen quadratischen Trend \(\small a+ bt + ct^2\) setzt du zum Beispiel trend=[0,1,1], um sowohl einen linearen Term, \(\small bt\), als auch einen quadratischen Term, \(\small ct^2\), im Modell zu berücksichtigen.

Die Daten sind in einem DataFrame namens temp_NY vorab geladen.

Diese Übung ist Teil des Kurses

Zeitreihenanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Instanz der Klasse ARIMA namens mod für ein integriertes ARMA(1,1)-Modell, also ein ARIMA(1,1,1)-Modell
    • Das d in order(p,d,q) ist eins, da wir einmal erstdifferenziert haben
    • Fitte mod mit der Methode .fit() und nenne die Ergebnisse res
  • Sage die Zeitreihe mit der Methode plot_predict() auf res voraus
    • Wähle als Startdatum 1872 und als Enddatum 2046

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Import the ARIMA module from statsmodels
from statsmodels.tsa.arima.model import ARIMA
from statsmodels.graphics.tsaplots import plot_predict

# Forecast temperatures using an ARIMA(1,1,1) model
mod = ARIMA(temp_NY, trend='t', order=(1,1,1))
___ = ___.fit()

# Plot the original series and the forecasted series
fig, ax = plt.subplots()
temp_NY.plot(ax=ax)
plot_predict(___, start='1872', end='2046', ax=ax)
plt.show()
Code bearbeiten und ausführen