Оцінювання порядку моделі: інформаційні критерії
Ще один інструмент для визначення порядку моделі — це перегляд критерія Акаіке (AIC) та байєсівського інформаційного критерію (BIC). Ці міри оцінюють якість припасування з урахуванням оцінених параметрів, але застосовують штраф за кількість параметрів у моделі. Ви візьмете згенеровані дані AR(2) з попередньої вправи, збережені як simulated_data_2, і обчислите BIC, змінюючи порядок p в AR(p) від 0 до 6.
Ця вправа є частиною курсу
Аналіз часових рядів у Python
Інструкції до вправи
- Імпортуйте модуль ARIMA для оцінювання параметрів і обчислення BIC.
- Ініціалізуйте масив numpy
BIC, у якому ми зберігатимемо значення BIC для кожної моделі AR(p). - Пройдіться циклом за порядком p для p = 0,…,6.
- Для кожного p навчіть модель AR порядку p на цих даних.
- Для кожного p збережіть значення BIC, використавши атрибут
.bic(без дужок) обʼєктаres.
- Побудуйте графік BIC як функції p (для графіка пропустіть p=0 і побудуйте для p=1,…,6).
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()