Szacowanie rzędu modelu: kryteria informacyjne
Kolejnym narzędziem do określania rzędu modelu jest kryterium informacyjne Akaike'a (AIC) oraz bayesowskie kryterium informacyjne (BIC). Miary te oceniają dopasowanie modelu do danych z uwzględnieniem liczby szacowanych parametrów – im więcej parametrów, tym wyższa kara. Skorzystaj z danych symulowanych AR(2) z poprzedniego ćwiczenia, zapisanych jako simulated_data_2, i oblicz BIC, zmieniając rząd p w modelu AR(p) od 0 do 6.
To ćwiczenie jest częścią kursu
Analiza szeregów czasowych w Pythonie
Instrukcje do ćwiczenia
- Zaimportuj moduł ARIMA do szacowania parametrów i obliczania BIC.
- Zainicjalizuj tablicę numpy
BIC, w której będziesz przechowywać wartości BIC dla każdego modelu AR(p). - Iteruj po rzędzie p dla p = 0,…,6.
- Dla każdego p dopasuj dane do modelu AR rzędu p.
- Dla każdego p zapisz wartość BIC, korzystając z atrybutu
.bic(bez nawiasów) obiektures.
- Narysuj wykres BIC jako funkcję p (na wykresie pomiń p=0 i uwzględnij p=1,…,6).
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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()