Qual è il modello ARMA migliore?
Ricorda dal Capitolo 3 che l’Akaike Information Criterion (AIC) può essere usato per confrontare modelli con numeri diversi di parametri. Misura la bontà dell’adattamento, ma penalizza i modelli con più parametri per evitare l’overfitting. Un AIC più basso è migliore.
Esegui il fitting dei dati di temperatura con un AR(1), un AR(2) e un ARMA(1,1) e verifica quale modello si adatta meglio, usando il criterio AIC. I modelli AR(2) e ARMA(1,1) hanno un parametro in più rispetto all’AR(1).
La variazione annua della temperatura si trova in un DataFrame chg_temp.
Questo esercizio fa parte del corso
Analisi delle serie temporali in Python
Istruzioni dell'esercizio
- Per ciascun modello ARMA, crea un’istanza della classe
ARIMA, passando i dati eorder=(p,d,q).pè l’ordine autoregressivo;qè l’ordine della media mobile;dè il numero di differenziazioni applicate alla serie. - Esegui il fitting del modello usando il metodo
.fit(). - Stampa il valore AIC, disponibile nell’elemento
.aicdei risultati.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import the module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA
# Fit the data to an AR(1) model and print AIC:
mod_ar1 = ARIMA(chg_temp, order=(___, 0, 0))
res_ar1 = mod_ar1.fit()
print("The AIC for an AR(1) is: ", res_ar1.aic)
# Fit the data to an AR(2) model and print AIC:
mod_ar2 = ARIMA(chg_temp, order=(___, ___, ___))
res_ar2 = mod_ar2.___
print("The AIC for an AR(2) is: ", res_ar2.aic)
# Fit the data to an ARMA(1,1) model and print AIC:
mod_arma11 = ___
res_arma11 = ___
print("The AIC for an ARMA(1,1) is: ", ___)