НачатьНачать бесплатно

Какая модель 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: ", ___)
Редактировать и запускать код