Låt oss prognostisera räntor
Nu ska du använda de prognostekniker du lärde dig i föregående övning och tillämpa dem på verkliga data i stället för simulerade data. Du återvänder till ett dataset från det första kapitlet: årsdata för 10-åriga räntor som sträcker sig 56 år bakåt i tiden, lagrad i en Series kallad interest_rate_data. Förmågan att prognostisera räntor är enormt viktig – inte bara för obligationsinvesterare, utan också för privatpersoner som nyligen köpt bostad och behöver välja mellan bunden och rörlig ränta.
I det första kapitlet såg du att det förekommer en viss återgång till medelvärdet i räntor över långa tidshorisonter. Med andra ord: när räntorna är höga tenderar de att sjunka, och när de är låga tenderar de att stiga med tiden. För närvarande ligger de under de långsiktiga nivåerna, vilket innebär att de förväntas stiga – men en AR-modell försöker kvantifiera hur mycket de förväntas stiga.
Klassen ARIMA och funktionen plot_predict har redan importerats.
Den här övningen är en del av kursen
Tidsserieanalys i Python
Övningsinstruktioner
- Skapa en instans av klassen
ARIMAkalladmodmed hjälp av den årliga ränteserien och väljorderför en AR(1)-modell. - Anpassa modellen
modmed metoden.fit()och spara resultatet i ett resultatobjekt kallatres. - Rita data samt in-sample- och out-of-sample-prognoserna med funktionen
plot_predict().- Det första argumentet till
plot_predict()ska vara den anpassade modellen. - Skicka in argumenten
start=0för att starta in-sample-prognosen från början, och sättendtill '2027' för att prognostisera flera år framåt. - Observera att argumentet 2027 måste anges inom citationstecken här, eftersom det representerar ett datum och inte en heltalsposition.
- Det första argumentet till
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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()