Prevediamo i tassi d'interesse
Ora userai le tecniche di forecasting che hai imparato nell'esercizio precedente e le applicherai a dati reali invece che simulati. Tornerai su un insieme di dati del primo capitolo: i dati annuali dei tassi d'interesse a 10 anni degli ultimi 56 anni, che si trovano in una Series chiamata interest_rate_data. Saper prevedere i tassi d'interesse è di enorme importanza, non solo per gli investitori in obbligazioni ma anche per persone come i nuovi proprietari di casa che devono scegliere tra mutui a tasso fisso o variabile.
Nel primo capitolo hai visto che esiste una certa mean reversion dei tassi d'interesse su orizzonti lunghi. In altre parole, quando i tassi sono alti tendono a scendere e quando sono bassi tendono a salire nel tempo. Al momento sono sotto i tassi di lungo periodo, quindi ci si aspetta che aumentino, ma un modello AR cerca di quantificare di quanto ci si aspetta che aumentino.
La classe ARIMA e la funzione plot_predict sono già state importate.
Questo esercizio fa parte del corso
Analisi delle serie temporali in Python
Istruzioni dell'esercizio
- Crea un'istanza della classe
ARIMAchiamatamodusando i dati annuali dei tassi d'interesse e scegli l'orderper un modello AR(1). - Stima il modello
modcon il metodo.fit()e salvalo in un oggetto dei risultati chiamatores. - Traccia i dati e le previsioni in-sample e out-of-sample usando la funzione
.plot_predict().- Il primo argomento di
plot_predict()deve essere il modello stimato. - Passa gli argomenti
start=0per iniziare la previsione in-sample dall'inizio e impostaenda '2027' per prevedere diversi anni nel futuro. - Nota che l'argomento
end2027 deve essere tra virgolette qui, poiché rappresenta una data e non una posizione intera.
- Il primo argomento di
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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()