Введение и реализация модели ARIMA в наборе данных AirPassengers

Прогнозирование временных рядов состоит из прогнозов, необходимых для принятия будущих стратегических решений в широком диапазоне приложений. Основываясь на некоторых терминах, введенных в этой предыдущей статье, таких как тренд и сезонность, в этой статье основное внимание уделяется реализации моделей на основе авторегрессии, интегрирования и скользящего среднего для прогнозирования временных рядов. В частности, структура разворачивается следующим образом:

  1. Введение в термины AR, I, MA
  2. Нахождение порядка моделей
  3. Реализация модели ARIMA
  4. Сообщения на дом

Для этой статьи я использовал открытую базу данных Авиапассажиры, которая предоставляет ежемесячные данные о пассажирах авиакомпаний США с 1949 по 1960 год. Этот набор данных включает в себя права без ограничений на сублицензирование работы и ее использование в коммерческих целях. Код можно найти в следующем репозитории GitHub.

1. Введение в термины AR, I, MA

1.1. Авторегрессия (AR)

Термин AR расшифровывается как авторегрессия, что указывает на то, что модель использует зависимую связь между текущими данными и их прошлыми значениями. Количество предыдущих входных данных, используемых для прогнозирования следующего значения, называется порядок и обычно обозначается как p.

Другими словами, текущее значение ряда можно объяснить как линейную комбинацию прошлых значений p :

где 𝜖𝑡 — процесс белого шума (среднее значение 0, постоянная дисперсия и некоррелированные ошибки), а 𝑎𝑖 — оценочные значения.

В зависимости от значения p возможны следующие сценарии:

  1. AR(0): если параметр p установлен равным нулю, авторегрессионные члены отсутствуют, поэтому этот временной ряд представляет собой просто белый шум.
  2. AR(1): если для параметра p установлено значение 1, мы учитываем предыдущую отметку времени, скорректированную с помощью множителя, а затем добавляем белый шум.
  3. AR(p): увеличение параметра p означает добавление большего количества меток времени, регулируемых их собственными множителями.

1.2. Интегрированный (I)

Термин I означает интегрированный и превращает ваш нестационарный временной ряд в стационарный.

В: Должны ли мои временные ряды быть стационарными, чтобы использовать модель ARIMA? [1]

A: Если вы хотите использовать ARMA(p, q) напрямую, тогда ваши временные ряды лучше быть стационарными. На практике всегда существует некоторая степень неопределенности в отношении «стационарности», поскольку вы только наблюдаете реализации и не знаете реальных случайных величин стохастического процесса. Эта неопределенность означает, что вы просто приблизительно видите, что он неподвижен, и пытаетесь применить модель ARMA или перебрать d-число, хотя это даст вам низкую производительность.

1.3. Скользящее среднее (МА)

Модель скользящего среднего использует зависимость между наблюдением и остаточной ошибкой скользящего среднего, примененного к запаздывающему наблюдению. Другими словами, MA моделирует значение прогноза как линейную комбинацию членов прошлых ошибок:

где 𝜖𝑡 — процесс белого шума (среднее значение 0, постоянная дисперсия и некоррелированные ошибки), b𝑖 — оценочные значения, а rt определяется как

где 𝑦̂𝑡 — значение прогноза, а 𝑦𝑡 — истинное значение.

2. Нахождение порядка моделей

2.1. Импорт данных

Во-первых, давайте импортируем библиотеки. Обратите внимание, что версия statsmodels — 0.13.2 (print(statsmodels.__version__)).

В оставшейся части статьи давайте рассмотрим набор данных Air Passengers, который предоставляет ежемесячные данные о пассажирах авиакомпаний США с 1949 по 1960 год.

2.2. Оценка стационарности временного ряда

Стационарный временной ряд определяется как временной ряд, свойства которого не зависят от времени, в которое этот ряд наблюдается. В более математическом смысле временной ряд является стационарным, когда ковариация не зависит от времени и имеет постоянное среднее значение и дисперсию во времени. Но почему так важна стационарность? Это важно, поскольку многие допущения модели предполагают, что временной ряд является стационарным.

Первый способ визуализации тренда и сезонности — это представление скользящего среднего и скользящего среднего.

Как видно из рисунка, с течением времени наблюдается тенденция к увеличению. Кроме того, присутствует годовая сезонная составляющая.

Кроме того, расширенный тест Дики-Фуллера используется для определения того, являются ли данные временного ряда стационарными. Подобно t-критерию, мы устанавливаем уровень значимости и делаем выводы на основе полученного p-значения.

  • Нулевая гипотеза: данные не являются стационарными.
  • Альтернативная гипотеза: данные стационарны.

Чтобы данные были стационарными (т. е. отвергли нулевую гипотезу), значение p для теста ADF должно быть ниже 0,05.

Results of Dickey-Fuller Test:
Test Statistic                   0.815369
p-value                          0.991880
Lags Used                       13.000000
Number of Observations Used    130.000000
Critical Value (1%)             -3.481682
Critical Value (5%)             -2.884042
Critical Value (10%)            -2.578770
dtype: float64

Результаты показывают, что p-значение равно 0,992, а это означает, что весьма вероятно, что данные не являются стационарными.

Следующая функция разлагает временной ряд на тренд, сезонный и остаточный компоненты, поэтому ее также можно использовать для изучения стационарности временного ряда.

На рисунке мы также можем наблюдать ежегодную сезонность и тенденцию к увеличению с течением времени.

Но что произойдет, если временной ряд является стационарным? В этом случае необходимо преобразовать данные в стационарный временной ряд.

Как правило, при прогнозировании временных рядов рекомендуется выполнять следующие шаги:

  • Шаг 1. Проверка стационарности. Если во временном ряду есть компонент тренда или сезонности, его необходимо сделать стационарным.
  • Шаг 2. Определите значение d.Если временной ряд не является стационарным, его необходимо стационаризировать с помощью разности.
  • Шаг 3. Выберите термины AR и MA.Используйте ACF и PACF, чтобы решить, включать ли термин AR, термин MA или (или) ARMA.
  • Шаг 4. Создайте модель

Шаги 3 и 4 описаны в разделах 2.4–2.7, а шаг 5 — в разделе 3.

2.3. Выбор обучающих и тестовых наборов

Прежде чем продолжить, давайте создадим обучающий и тестовый набор, чтобы избежать смещения в прогнозировании.

2.4. Нахождение значения параметра d (Integrated)

Если данные нестационарны, необходимо найти интегральный параметр, который превращает временной ряд в стационарный.

Поскольку не существует метода, который мог бы определить оптимальное значение d, давайте нанесем на график разность первого и второго порядка:

После внедрения разности временных рядов удалось уменьшить как тенденцию, так и сезонность.

Также можно оценить оптимальное значение d с помощью графиков автокорреляции. Когда в данных есть тенденция, автокорреляции для небольших задержек имеют тенденцию быть большими и положительными, медленно уменьшаясь с течением времени по мере увеличения задержек. Когда во временном ряду присутствует компонент сезонности, автокорреляции будут больше для сезонных задержек (кратных сезонной частоте), чем для других задержек.

Здесь мы видим, что при дифференциации второго порядка непосредственное отставание стало отрицательным, представляя, что при дифференциации второго порядка ряд становится выше разности. Следовательно, мы выберем разность первого порядка.

2.5. Нахождение значения параметра p (авторегрессия)

В предыдущем разделе мы определили оптимальное значение d. Теперь в этом разделе давайте найдем оптимальное количество членов авторегрессии, изучив график PACF.

График функции частичной автокорреляции можно использовать для построения корреляции между временным рядом и его запаздыванием. Значительная корреляция в стационарном временном ряду может быть представлена ​​добавлением членов авторегрессии. Используя график PACF, мы можем взять в качестве терминов AR значимые лаги.

Поскольку существует много значительных задержек, мы можем выбрать большое количество членов авторегрессии.

2.6. Нахождение значения параметра q (Скользящее среднее)

Чтобы узнать значение q, мы можем использовать график ACF, выраженный как:

где T — длина временного ряда, а k — запаздывание, применяемое к временному ряду.

Здесь мы видим, что второй лаг уже вышел за пределы значимости.

Для более глубокого понимания определений PACF и ACF настоятельно рекомендую прочитать следующую статью.

2.7. Использование auto_arima для поиска параметров

Наконец, только что упомянули, что есть функция, которая ищет наиболее оптимальные параметры для модели ARIMA, останавливаясь на модели ARIMA с одной подгонкой.

Однако эти выходные данные относятся к модели SARIMAX, которая не рассматривается в этой статье. Поэтому мы опустим полученные результаты и сосредоточимся на анализе, проведенном выше.

3. Реализация модели ARIMA

Наиболее подходящая модель будет зависеть от конкретных характеристик данных, таких как тенденция и сезонность. В этой статье мы сосредоточимся на реализации модели ARIMA.

Используя параметры (p=12, d=1, q=1), полученные из предыдущего анализа, давайте проверим вывод:

Вот результат, где оранжевая линия указывает на прогнозирование, а серая тень — интервалы прогнозирования, которые используются для предоставления диапазона, в котором прогноз может быть с определенной степенью достоверности [3].

4. Сообщения на вынос

В этой статье мы обсудили процесс нахождения значений параметров в моделировании ARIMA. Прежде чем завершить статью, вот основные советы, которые следует запомнить:

  • Авторегрессионная модель (AR) использует прошлые прогнозы для прогнозирования будущих значений.
  • Термин I означает интегрированный и превращает ваш нестационарный временной ряд в стационарный.
  • Модель скользящего среднего (MA) не использует прошлые прогнозы для прогнозирования будущих значений, тогда как она использует ошибки из прошлых прогнозов.
  • Используйте PACF для определения терминов, используемых в модели AR, и ACF для определения терминов, используемых в модели MA.
  • Мы можем вернуться так далеко назад, как мы хотим, для выбора члена AR (p), но по мере того, как мы продвигаемся дальше, более вероятно, что нам следует использовать дополнительные параметры, такие как скользящее среднее (MA (q)).

Если вам понравился этот пост, рассмотрите возможность подписаться. Вы получите доступ ко всему моему контенту и ко всем остальным статьям на Medium от замечательных авторов!

Рекомендации

[1] StackExchange, Должен ли мой временной ряд быть стационарным для использования модели ARIMA?

[2] Оттексты, Стационарность и дифференцирование

[3] Medium, Интервалы прогнозирования прогнозирования временных рядов

Важные ссылки

Другой: