Stima dell'ordine del modello: criteri informativi
Un altro strumento per identificare l'ordine di un modello è osservare l'Akaike Information Criterion (AIC) e il Bayesian Information Criterion (BIC). Queste misure calcolano la bontà dell'adattamento con i parametri stimati, ma applicano una funzione di penalizzazione al numero di parametri nel modello. Utilizzerai i dati simulati AR(2) dell'esercizio precedente, salvati come simulated_data_2, e calcolerai il BIC variando l'ordine, p, in un AR(p) da 0 a 6.
Questo esercizio fa parte del corso
Analisi delle serie temporali in Python
Istruzioni dell'esercizio
- Importa il modulo ARIMA per stimare i parametri e calcolare il BIC.
- Inizializza un array numpy
BIC, che useremo per memorizzare il BIC per ciascun modello AR(p). - Fai un ciclo sull'ordine p per p = 0,…,6.
- Per ogni p, adatta i dati a un modello AR di ordine p.
- Per ogni p, salva il valore del BIC usando l'attributo
.bic(senza parentesi) dires.
- Traccia il BIC in funzione di p (per il grafico, salta p=0 e traccia per p=1,…,6).
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(p) for p = 0,...,6 , and save the BIC
BIC = np.zeros(7)
for p in range(7):
mod = ARIMA(simulated_data_2, order=(___,___,___))
res = mod.fit()
# Save BIC for AR(p)
BIC[p] = res.___
# Plot the BIC as a function of p
plt.plot(range(1,7), BIC[1:7], marker='o')
plt.xlabel('Order of AR Model')
plt.ylabel('Bayesian Information Criterion')
plt.show()