Какая модель ARMA лучше?
Напомним из главы 3: информационный критерий Акаике (AIC) позволяет сравнивать модели с разным числом параметров. Он измеряет качество подгонки, но штрафует модели с большим количеством параметров, чтобы избежать переобучения. Чем ниже значение AIC, тем лучше модель.
Подберите к данным о температуре модели AR(1), AR(2) и ARMA(1,1) и определите, какая из них лучше всего соответствует данным по критерию AIC. Модели AR(2) и ARMA(1,1) имеют на один параметр больше, чем AR(1).
Годовое изменение температуры хранится в DataFrame 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: ", ___)