Определение порядка модели: информационные критерии
Ещё один способ определить порядок модели — использовать информационный критерий Акаике (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()