Информационное письмо
Образец оформления статьи
Анкета автора
06.03.2017

Использование метода Бокса-Дженкинса для прогнозирования временных рядов

Демьянов Руслан Сергеевич
магистрант 2 курса, кафедра информатики, Санкт-Петербургский государственный экономический университет, г. Санкт-Петербург, Российская Федерация
Аннотация: Для формирования понимания о прогнозировании временных рядов, необходимо осознавать всю важность базовых моделей прогнозирования и методах, на которых эти модели строятся. Одним из таких основополагающим методов является метод Бокса-Дженкинса, который сформировал не только представление о структуре модели прогнозирования временных рядов, но и о процессах создания, идентификации, оценки и диагностики в целом.
Ключевые слова: метод Бокса-Дженкинса, временные ряды, ARIMA
Электронная версия
Скачать (1.19 Mb)

Введение

Интегрированная модель авторегрессии – скользящего среднего, или ARIMA (The Autoregressive Integrated Moving Average Model) – это стандартизированная статистическая модель для прогнозирования и анализа временных рядов. [1]

Вместе с разработкой данной модели, авторы Бокс и Дженкинс так же предлагают процесс идентификации, оценки и проверки модели на специфичных наборах данных. Данный процесс получил название метода Бокса-Дженкинса.

Интегрированная модель авторегрессии – скользящего среднего

Модель ARIMA относится к классу статистических моделей для анализа и прогнозирования временных рядов.

Название модели – это акроним, заглавные буквы которого буквально означают следующее:

  • AR: Авторегрессия – это использование связи между текущими и некоторыми запаздывающими наблюдениями.
  • I: Интегрированная – это процесс, который использует разницу между текущим и предыдущим наблюдением для того что бы временной ряд был неизменным.
  • MA: Скользящее-среднее – это такая модель, где используется зависимость между наблюдением и остаточными ошибками от скользящей средней модели применительно к запаздывающим наблюдениям.

Каждый из этих компонентов явно указан в качестве параметра модели.

Стандартные обозначения, используемые в ARIMA (p, d, q), где параметры заменяются числами для того, чтобы быстро указать конкретно используемую модель.

Параметры модели означают:

  • p – число запаздывающих наблюдений, содержащихся в модели, так же известное как порядок лаг;
  • – число порядка разности временного ряда;
  •  – размер скользящего-среднего окна (порядок скользящего-среднего).

Метод Бокса-Дженкинса

Метод Бокса-Дженкинса был предложен в далеком 1970 году. [2]

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

Сам процесс подразумевает под собой построение стохастической модели и имеет итерационный подход, который состоит из трех шагов:

  1. Идентификация – использование данных и всю сопутствующую информацию, чтобы помочь выбрать подкласс модели, которая лучше всего сможет суммировать данные.
  2. Оценка – использование данных для тренировки параметров модели.
  3. Диагностическая проверка – оценка подогнанной модели в контексте имеющихся данных и проверки областей, где модель может быть улучшена.

Итерационный подход позволяет информации дорасти до шага диагностики, циклически вернутся к первому шагу и включить ее в новые классы модели.

Идентификация

Идентификация делится на следующие шаги:

  1. Оценка временного ряда на стационарность. Если ряд не стационарный, то вычисляется количество сравнений необходимых, чтобы сделать его стационарным.
  2. Идентификация параметров ARMA модели для данных.

Необходимо учесть некоторые рекомендации относительно этого шага:

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

Таким образом, для конфигурации AR и MA использовались два диагностических графика, которые помогают выбрать и параметры для ARMA или ARIMA:

  • Функция автокорреляции (ACF): График показывает сумму корреляции наблюдений с значениями задержки (лагами).
  • Частичная функция автокорреляции (PACF): График показывает сумму корреляции для данных со значениями лагов, которые не учитываются за предыдущими запаздывающими значениями наблюдений.

Установлено, что оба графика изображаются в виде гистограммы, демонстрирующей 95% и 99% доверительные интервалы в виде горизонтальных линий. Бары, которые пересекают эти интервалы, соответственно, более значимы.

Проанализировав графикам можно сделать следующие выводы:

  • Модель – соединение AR и МА, если и ACF и PACF затихают.
  • Модель авторегрессионная если ACF затихает после задержки и имеет резкое сокращение на PACF после лага. Этот лаг и есть значение p.
  • Модель скользящая средняя если PACF затихает после задержки и имеет резкое сокращение на ACF после лага. Этот лаг и есть 
  • значение q.

Оценка

Шаг оценки включает в себя использование численных методов для того, чтобы минимизировать потери или ошибки. Данный шаг зависит от конкретной реализации, однако для более глубокого понимания проблемы оптимизации необходимо начать с рассмотрения алгоритма Бройдена – Флетчера – Гольдфарба – Шанно. [3]

Диагностическая проверка

Идея диагностической проверки заключается в том, что на данном шаге должен производится поиск доказательств несоответствия модели к данным.

Обычно принято использовать два способа проверки для произведения диагностики:

  • Переобучение
  • Остаточные ошибки

Переобучение

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

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

Остаточные ошибки

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

Для этого можно воспользоваться графиками плотности, гистограммами и Q-Q диаграммами, которые сравнивают распределение ошибок для ожидаемого распределения. Негауссовым распределением можно воспользоваться для предварительной обработки данных. Искажение в распределении или ненулевое среднее можно использовать для нахождения смещения в прогнозах, которые могут быть правильными.

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

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

Построена модель на примере реального набора данных, который описывает месячные продажи шампуня в течении трех лет. Так как данный набор данных не содержит привязку к какому-то определенному году, можно указать абсолютно любой год, для того что бы правильно отформатировать данные. На рисунке 1 указаны первые пять записей данных наблюдения и построен общий график.

Рисунок 1 – Первые пять записей данных наблюдения и график данных по ним

Рисунок 1 – Первые пять записей данных наблюдения и график данных по ним

Как видно, на графике набор данных имеет четкую тенденцию. Это значит, что временной ряд не стационарный и требует разностного дифференцирования. И для того, чтобы привести его к стационарному виду нужна разница порядка, как минимум в единицу. Для этого необходимо воспользоваться автокорреляцией и построить график временного ряда (рисунок 2).

Рисунок 2 – Пример графика автокорреляции
Рисунок 2 – Пример графика автокорреляции

На графике (рисунок 2) можно заметить, что автокорреляция является положительной на первых 10-12 лагах, из которых значимы первые 5. Поэтому хорошей стартовой точкой AR параметра модели может быть 5.

Библиотека statsmodels отлично подходит для реализации модели ARIMA. Для того что бы создать модель ARIMA необходимо:

  1. Определить модель, вызвав функцию ARIMA() и подставив параметры p, d, q.
  2. Подготовить модель к обучению данными вызовом функции fit().
  3. Прогноз можно сформировать вызовом функции predict() и определения индекса времени для которого делается прогноз.

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

После запуска программа выдаст суммарные данные о модели в отчет (рисунок 3), в котором представлены суммы значений используемых коэффициентов, а также их оценка сопоставления с данными. 

Рисунок 3 – Суммарные данные результатов модели ARIMA

Рисунок 3 – Суммарные данные результатов модели ARIMA

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

Рисунок 4 – График остаточных ошибок

Рисунок 4 – График остаточных ошибок

Далее сформирован график плотности остаточных ошибок, предполагая, что ошибки имеют Гауссово распределение, но не сосредоточены около нуля (рисунок 5).

Рисунок 5 – График плотности остаточных ошибок

Рисунок 5 – График плотности остаточных ошибок

На рисунке 6 представлено распределение остаточных ошибок. Результаты показали, что имеется уклон в прогнозировании (ненулевое среднее в ошибках).

Рисунок 6 – Распределение остаточных ошибок

Рисунок 6 – Распределение остаточных ошибок

Прогнозирование с помощью модели ARIMA

Используя функцию predict() из объекта ARIMAResults сформирован прогноз. Функция принимает индекс временных шагов, чтобы вывести прогноз как аргумент. Эти индексы используются для сравнения с началом набора данных для составления прогноза.

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

Рисунок 7 – Реализация модели прогнозирования ARIMA
Рисунок 7 – Реализация модели прогнозирования ARIMA

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

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

Рисунок 8 – График сравнения прогнозов и тестовых данных

Рисунок 8 – График сравнения прогнозов и тестовых данных

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

Выводы

Методология Бокса-Дженкинса дала огромный толчок в мире статистике и в особенности в сфере прогнозирования временных рядов. Разработанная методология послужила основой для формирования не только огромного количества моделей прогнозирования, но и дала понимание полного процесса создания, обучения и тестирования моделей прогнозирования временных рядов.

Была рассмотрена интегрированная модель авторегрессии – скользящего среднего (ARIMA), как базовая модель прогнозирования, с рассмотрением идентификации, оценки работы модели, и ее диагностики.

На основе реальных данных была реализована модель ARIMA для еще более глубокого понимания анализа временных рядов и реализации одной из основополагающей модели прогнозирования.

Список литературы:

1. Айвазян С.А. Прикладная статистика. Основы эконометрики. Том 2. // М.: Юнити-Дана, ISBN 5-238-00305-6. – 2001. – C. 432.

2. George E. P. Box, Gwilym M. Jenkins, Gregory C. Reinsel. Time Series Analysis: Forecasting and Control // Wiley Series in Probability and Statistics. ISBN 1118619064, 9781118619063. – 2013. – С. 92 – 161.

3. Nocedal, Jeorge; Wright, Stephen J. Numerical Optimization. – 2nd edition. // USA: Springer, ISBN 978-0-387-30303-1 – 2006. – C. 194 – 199.

4. Магнус Я.Р., Катышев П.К., Пересецкий А.А. Эконометрика. Начальный курс. // М.: Дело, ISBN 978-5-7749-0473-0. – 2007. – C. 504.

5. Эконометрика. Учебник / Под ред. Елисеевой И.И. – 2-е изд. // М.: Финансы и статистика, ISBN 5-279-02786-3. – 2006. — С. 576.

6. Hyndman Rob J., George Athanasopoulos. Forecasting: principles and practice // University of Western Australia. ISBN-13: 978-0987507105 – 2013. – С. 52 – 57.

7. Мишулина О.А. Статистический анализ и обработка временных рядов. // М.: МИФИ, 2004. – С. 180.

8. Shasha, D. High Performance Discovery in Time Series // Springer – 2004. – С. 114 – 116.

9. Cowpertwait P.S.P., Metcalfe A.V. Introductory Time Series with R // Springer – 2009. – С. 45 – 66.

10. Woodward, W.A., Gray, H. L. & Elliott, A. C. Applied Time Series Analysis // CRC Press. – 2012. – С. 197 – 230.

11. Griewank, Andreas and Walther, A. Principles and Techniques of Algorithmic Differentiation, Second Edition. // SIAM, – 2008. – C. 31 – 59.