Яка модель ARMA найкраща?
Пригадайте з Розділу 3, що інформаційний критерій Акаіке (AIC) можна використовувати для порівняння моделей з різною кількістю параметрів. Він оцінює якість підгонки, але накладає штраф на моделі з більшою кількістю параметрів, щоб уникати перенавчання. Нижчі значення AIC — кращі.
Підготуйте модель для температурних даних: AR(1), AR(2) і ARMA(1,1), і визначте, яка з них найкраще підходить за критерієм AIC. Моделі AR(2) та ARMA(1,1) мають на один параметр більше, ніж AR(1).
Річна зміна температури міститься в датафреймі chg_temp.
Ця вправа є частиною курсу
Аналіз часових рядів у Python
Інструкції до вправи
- Для кожної моделі ARMA створіть екземпляр класу
ARIMA, передавши дані таorder=(p,d,q).p— порядок авторегресії;q— порядок ковзного середнього;d— кількість разів, які ряд було продиференційовано. - Навчіть модель методом
.fit(). - Виведіть значення AIC, яке міститься в елементі результатів
.aic.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Import the module for estimating an ARIMA model
from statsmodels.tsa.arima.model import ARIMA
# Fit the data to an AR(1) model and print AIC:
mod_ar1 = ARIMA(chg_temp, order=(___, 0, 0))
res_ar1 = mod_ar1.fit()
print("The AIC for an AR(1) is: ", res_ar1.aic)
# Fit the data to an AR(2) model and print AIC:
mod_ar2 = ARIMA(chg_temp, order=(___, ___, ___))
res_ar2 = mod_ar2.___
print("The AIC for an AR(2) is: ", res_ar2.aic)
# Fit the data to an ARMA(1,1) model and print AIC:
mod_arma11 = ___
res_arma11 = ___
print("The AIC for an ARMA(1,1) is: ", ___)