Laten we rentevoeten voorspellen
Je gaat nu de forecasting-technieken uit de vorige oefening toepassen op echte data in plaats van gesimuleerde data. Je pakt een gegevensset uit het eerste hoofdstuk erbij: jaarlijkse data van 10-jaarsrente over de afgelopen 56 jaar, opgeslagen in een Series met de naam interest_rate_data. Rentevoeten kunnen voorspellen is enorm belangrijk, niet alleen voor obligatiebeleggers, maar ook voor bijvoorbeeld nieuwe huiseigenaren die moeten kiezen tussen een vaste of variabele hypotheekrente.
In het eerste hoofdstuk zag je dat rentevoeten over lange perioden enige mean reversion vertonen. Met andere woorden: wanneer de rente hoog is, daalt die meestal, en wanneer de rente laag is, stijgt die doorgaans in de tijd. Op dit moment liggen ze onder de langetermijnrente, dus verwacht je een stijging, maar een AR-model probeert te kwantificeren hoeveel die stijging naar verwachting zal zijn.
De klasse ARIMA en de functie plot_predict zijn al geïmporteerd.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in Python
Oefeninstructies
- Maak een instantie van de klasse
ARIMAmet de naammodmet de jaarlijkse rentegegevens en kies deordervoor een AR(1)-model. - Fit het model
modmet de methode.fit()en sla het op in een resultatenobject met de naamres. - Plot de data en de in-sample- en out-of-sample-voorspellingen met de functie
.plot_predict().- Het eerste argument van
plot_predict()moet het gefitte model zijn. - Geef de argumenten
start=0mee om de in-sample-voorspelling vanaf het begin te starten, en kiesendals '2027' om meerdere jaren vooruit te voorspellen. - Let op: het
end-argument 2027 moet hier tussen aanhalingstekens staan, omdat het een datum is en geen geheelgetalpositie.
- Het eerste argument van
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()