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

31 октября 2022
2 комментария

ARIMA — модель авторегрессии скользящего среднего, которая применяется для построения краткосрочных прогнозов величины на основании её предыдущих значений. Разбираем построение модели в Loginom для прогноза объема продаж сезонных товаров зимнего спорта по месяцам.

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

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

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

Важно учитывать и ограничения — такой метод подходит только для планирования стохастических (стационарных) процессов, в которых не изменяется распределение вероятности при смещении времени. Например, для расчета объема продаж.

Существует класс моделей, в которых реализуется этот метод:

  • ARIMA. Авторегрессионная модель скользящего среднего с интеграцией.
  • ARIMAX. Отличается от ARIMA тем, что дополнительно учитывается воздействие внешних (eXtended) факторов, влияющих на изменение исходного показателя.

Данные аббревиатуры можно расшифровать следующим образом:

  • AR – модель авторегрессии. Вычисление значения прогнозируемой величины в заданный момент времени на основе её предыдущих значений.
  • I – интеграция. Изучение не самих значений процесса, а изменений его показателей друг относительно друга.
  • MA – модель скользящего среднего. Фильтр, сглаживающий выбросы временного ряда посредством замены исходного значения средним арифметическим значением нескольких ближайших к нему членов.
  • X – расширения. Добавление в модель внешних факторов, влияние которых будет учитываться в прогнозе.

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

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

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

Оставим за скобками процессы предобработки и дальнейшего использования данных и разберемся, как работает обработчик ARIMAX.

Исходные данные

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

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

Ниже представлена таблица 1, которая состоит из следующих столбцов:

  • Дата. Первое число каждого месяца, т.к. временной интервал взят помесячно.
  • Продажи (руб.). Суммарные объемы продаж товаров для зимнего спорта за месяц.

Таблица 1. Исходные данные:

ДатаПродажи (руб.)
01.05.2015250 127.68
01.06.2015225 127.56
01.07.2015184 265.77
01.08.2015200 792.53
01.09.2015265 275.44
01.10.2015339 285.82
01.11.2015390 677.54
01.12.2015417 945.20
......

Построение модели

В Loginom есть специальный обработчик ARIMAX, который включает в себя математическую модель ARIMA с расширениями, влияние которых будет учитываться при построении прогноза. Если внешних данных не поступает на вход, то он превращается в ARIMA.

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

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

  • Не задано. Автоматически устанавливается для всех полей.
  • Входное. Нужно задать для полей, которые соответствуют внешнему фактору, в нашем примере их нет.
  • Прогнозируемое. Может быть установлено только для одного поля, в нашем случае «Продажи (руб.)».

Настройка входных столбцов обработчика ARIMAX

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

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

По умолчанию значение горизонта прогноза устанавливается равным 1, это значит, что мы получим прогноз на один период вперед. Чтобы нагляднее увидеть работу узла, изменим это значение на 5.

Автоматическая настройка обработчика ARIMAX

Сразу после сохранения настроек элемента запускать на исполнение его нельзя. Сначала нужно обучить данный узел.

Для этого в контекстном меню выберем «Переобучить узел».

Переобучение узла

Результаты прогнозирования

В узле ARIMAX три выходных порта:

  • Выход модели
  • Коэффициенты модели
  • Сводка

После запуска обработчика ARIMAX можно открыть «Быстрый просмотр» на первом выходном порту и увидеть, что исходные данные дополнились следующими выходными столбцами:

  • Продажи (руб.)ǀПрогноз. Прогноз объема продаж на основе предыдущих периодов.
  • Продажи (руб.)ǀНижняя граница. Нижняя граница прогноза объема продаж на основе предыдущих периодов.
  • Продажи (руб.)ǀВерхняя граница. Верхняя граница прогноза объема продаж на основе предыдущих периодов.
  • Продажи (руб.)ǀОшибка аппроксимации. Среднее отклонение расчетных значений от фактических, будет отображаться, если установлена отметка в «Рассчитать ошибку аппроксимации».

Выход модели ARIMAX

Причем прогнозные данные будут рассчитаны и для тех месяцев, по которым уже известен объем продаж, и для новых периодов. Стоит отметить, что в самом начале таблицы новые столбцы с прогнозами будут пустыми, их количество зависит от установленного значения в поле «Порядок AR части».

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

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

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

В настройках узла создадим переменную AllDates, которая будет содержать все значения временного ряда. Расчет будет строиться с помощью функции условия If. Если поле даты пустое, то функция AddMonth добавляет необходимое количество месяцев к последнему известному значению, в противном случае вносит ту дату, которая указана в поле.

Для того, чтобы вычислить количество месяцев, необходимо сначала найти разность между номером текущей строки (функция RowNum()) и количеством уникальных значений поля Date (функция Stat("Date", "UniqueCount")), а затем добавить к полученному результату 2. Важно учитывать, что нумерация строк начинается с 0, а в количестве уникальных значений присутствуют не только исходные даты, но и пустое значение в появившихся после прогноза строках, именно поэтому вводится цифра 2.

Калькулятор Loginom

После выполнения узла «Калькулятор» в таблице на его выходном порту появится столбец «Все даты».

Построение графика

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

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

График прогноза продаж

Анализ полученных результатов

На графике отчетливо выделяются 3 временных периода:

  1. Обучение модели. На этом временном отрезке возможно построение только кривой фактических данных.
  2. Построение прогноза при наличии фактических значений величины. На графике присутствуют сразу две кривые, что позволяет визуально оценить, насколько близки полученные в результате работы модуля ARIMA прогнозные значения к фактическим.
  3. Горизонт прогноза — отображается кривая прогноза.

В качестве этапа обучения модели обработчик ARIMAX задал временной промежуток 29 месяцев (около 2 лет). На втором интервале видно, что графики объема продаж и его прогноза имеют одинаковую форму, но при этом значения величин в некоторых точках значительно отличаются. Линия прогноза на 3 временном промежутке визуально повторяет форму кривой исходных значений продаж.

Увеличение точности прогноза

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

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

Изменим показатели в окне настройки ARIMAX, как это показано на рисунке ниже.

Настройка обработчика ARIMAX

Далее необходимо будет произвести переобучение данного узла.

Значения прогноза будут пересчитаны, и в визуализаторе мы сможем увидеть, что графики кривых на 2 временном периоде приняли почти одинаковый вид. Это говорит о том, что точность прогноза увеличилась.

График прогноза продаж

Чтобы убедиться в том, что прогноз стал точнее, откроем вкладку «Сводка» на третьем выходном порте модели. Значение средней относительной ошибки на обучающем множестве сократились в несколько раз по сравнению с предыдущими.

Ошибки сводки ARIMAX

Автоматизация прогнозирования в Loginom

В данном примере мы построили прогноз объема продаж сезонных товаров для зимнего спорта с помощью модели ARIMA.

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

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

 

Другие материалы по теме:

Автоматизация прогнозирования розничных продаж. Кейс Estee Lauder Companies Inc.

Прогнозирование аварий и обнаружение потерь на объектах газоснабжения

Прогнозирование в разрезе SKU. Новые возможности повышения адекватности прогнозов

#loginom#прогнозирование

Смотрите также

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться