Lass uns Zinsen prognostizieren
Jetzt wendest du die Prognosetechniken aus der letzten Übung auf echte statt simulierte Daten an. Du greifst erneut auf einen Datensatz aus dem ersten Kapitel zurück: jährliche Daten der 10-jährigen Zinssätze über 56 Jahre, gespeichert in einer Series namens interest_rate_data. Zinsen prognostizieren zu können, ist enorm wichtig – nicht nur für Anleiheinvestoren, sondern auch für Privatpersonen wie neue Hauskäufer, die zwischen Festzins- und variablen Hypotheken entscheiden müssen.
Im ersten Kapitel hast du gesehen, dass Zinssätze über lange Zeiträume zur Mitte zurückkehren (Mean Reversion). Anders gesagt: Sind die Zinsen hoch, tendieren sie dazu zu fallen, und sind sie niedrig, steigen sie im Zeitverlauf eher. Aktuell liegen sie unter den langfristigen Werten, daher werden steigende Zinsen erwartet; ein AR-Modell versucht zu quantifizieren, um wie viel sie voraussichtlich steigen.
Die Klasse ARIMA und die Funktion plot_predict wurden bereits importiert.
Diese Übung ist Teil des Kurses
Zeitreihenanalyse in Python
Anleitung zur Übung
- Erzeuge eine Instanz der Klasse
ARIMAnamensmodmit den jährlichen Zinsdaten und wähle dieorderfür ein AR(1)-Modell. - Fitte das Modell
modmit der Methode.fit()und speichere es in einem Ergebnisobjekt namensres. - Plotte die Daten sowie die In-Sample- und Out-of-Sample-Prognosen mit der Funktion
.plot_predict().- Das erste Argument von
plot_predict()sollte das angepasste Modell sein. - Übergebe die Argumente
start=0, um die In-Sample-Prognose von Beginn an zu starten, und setzeendauf '2027', um mehrere Jahre in die Zukunft zu prognostizieren. - Beachte, dass das
end-Argument 2027 hier in Anführungszeichen stehen muss, da es ein Datum und keine Integer-Position darstellt.
- Das erste Argument von
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Forecast interst rates using an AR(1) model
mod = ARIMA(interest_rate_data, order=___)
res = mod.fit()
# Plot the data and the forecast
fig, ax = plt.subplots()
interest_rate_data.plot(ax=ax)
plot_predict(___, start=___, end=___, alpha=None, ax=ax)
plt.show()