IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Per ciascun modello ARMA, crea un’istanza della classe ARIMA, passando i dati e order=(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 .aic dei 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: ", ___)
Modifica ed esegui il codice