Modelorde schatten: informatiecriteria
Een ander hulpmiddel om de orde van een model te bepalen is kijken naar het Akaike Information Criterion (AIC) en het Bayesian Information Criterion (BIC). Deze maten beoordelen de goodness-of-fit met de geschatte parameters, maar passen een strafterm toe op het aantal parameters in het model. Je gebruikt de in de vorige oefening gesimuleerde AR(2)-data, opgeslagen als simulated_data_2, en berekent de BIC terwijl je de orde, p, in een AR(p) varieert van 0 tot en met 6.
Deze oefening maakt deel uit van de cursus
Tijdreeksanalyse in Python
Oefeninstructies
- Importeer de ARIMA-module om de parameters te schatten en de BIC te berekenen.
- Initialiseer een numpy-array
BIC, die we gebruiken om de BIC voor elk AR(p)-model op te slaan. - Loop door de orde p voor p = 0,…,6.
- Fit voor elke p de data met een AR-model van orde p.
- Sla voor elke p de waarde van BIC op met het
.bic-attribuut (zonder haakjes) vanres.
- Plot BIC als functie van p (sla voor de plot p=0 over en plot voor p=1,…,6).
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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()