ARIMA — модель авторегрессии скользящего среднего, которая применяется для построения краткосрочных прогнозов величины на основании её предыдущих значений. Разбираем построение модели в Loginom для прогноза объема продаж сезонных товаров зимнего спорта по месяцам.
Для большинства бизнесов процесс принятия решений напрямую связан с результатами прогнозирования, которые используются при планировании производства, оптимизации запасов и прочее.
Для этого часто применяются методы анализа временных рядов — математических моделей, в которых определяется зависимость будущего значения от прошлых внутри самого процесса. На основе выявленных зависимостей построится прогноз.
Анализ временных рядов лучше использовать для краткосрочного прогнозирования, т.к. при увеличении горизонта прогноза модель начинает рассчитывать новые значения на основании своих же предсказаний. Это допустимо на определенном временном интервале, но по мере увеличения горизонта прогнозы становятся гораздо менее точными из-за накапливающейся погрешности.
Важно учитывать и ограничения — такой метод подходит только для планирования стохастических (стационарных) процессов, в которых не изменяется распределение вероятности при смещении времени. Например, для расчета объема продаж.
Существует класс моделей, в которых реализуется этот метод:
Данные аббревиатуры можно расшифровать следующим образом:
Учет внешнего фактора важен для построения прогнозов высокой точности, но сбор и обработка таких данных как правило занимают время, а в некоторых случаях вообще сложно предсказать их поведение.
Например, при анализе объема продаж товаров для зимнего спорта важным параметром становится температура воздуха, но каждый знает, что метеорологи регулярно ошибаются с прогнозами на день вперед. Поэтому при планировании на несколько месяцев, точность данных о погоде будет настолько низкой, то нет смысла её учитывать.
В данной статье рассмотрим пример прогнозирования значений величины на основе модели ARIMA. В этом случае никаких дополнительных данных, кроме самого прогнозируемого показателя для построения прогноза не требуется.
Оставим за скобками процессы предобработки и дальнейшего использования данных и разберемся, как работает обработчик ARIMAX.
Для получения корректного прогноза необходимо достаточное количество данных о предыдущих значениях продаж. Важно учитывать, что совсем старые данные не могут быть использованы, иначе прогноз будет недостоверным.
Кроме того, чем больший интервал прогноза будет рассматриваться, тем больше данных потребуется. В нашем случае для прогнозирования потребления на 5 месяцев вперед потребуется информация как минимум о нескольких годовых периодах в прошлом.
Ниже представлена таблица 1, которая состоит из следующих столбцов:
Таблица 1. Исходные данные:
Дата | Продажи (руб.) |
---|---|
01.05.2015 | 250 127.68 |
01.06.2015 | 225 127.56 |
01.07.2015 | 184 265.77 |
01.08.2015 | 200 792.53 |
01.09.2015 | 265 275.44 |
01.10.2015 | 339 285.82 |
01.11.2015 | 390 677.54 |
01.12.2015 | 417 945.20 |
... | ... |
В Loginom есть специальный обработчик ARIMAX, который включает в себя математическую модель ARIMA с расширениями, влияние которых будет учитываться при построении прогноза. Если внешних данных не поступает на вход, то он превращается в ARIMA.
Перенесем этот элемент на область построения сценария, подав на вход узла исходные данные.
Настроим обработчик ARIMAX для получения прогнозных данных. Первое окно — «Настройка входных столбцов», здесь каждому столбцу исходных данных нужно задать одно из трех возможных значений:
После настройки входных столбцов доступна нормализация входных и выходных полей. В подавляющем большинстве случаев её не нужно применять ни к данным временного поля, ни к внешним параметрам.
Основные настройки задаются в окне «Настройки ARIMAX», причем при отсутствии конкретных критериев прогноза можно установить отметку в поле «Определить структуру автоматически», и обработчик рассчитает необходимые параметры для ваших данных.
По умолчанию значение горизонта прогноза устанавливается равным 1, это значит, что мы получим прогноз на один период вперед. Чтобы нагляднее увидеть работу узла, изменим это значение на 5.
Автоматическая настройка обработчика ARIMAX
Сразу после сохранения настроек элемента запускать на исполнение его нельзя. Сначала нужно обучить данный узел.
Для этого в контекстном меню выберем «Переобучить узел».
Переобучение узла
В узле ARIMAX три выходных порта:
После запуска обработчика ARIMAX можно открыть «Быстрый просмотр» на первом выходном порту и увидеть, что исходные данные дополнились следующими выходными столбцами:
Выход модели ARIMAX
Причем прогнозные данные будут рассчитаны и для тех месяцев, по которым уже известен объем продаж, и для новых периодов. Стоит отметить, что в самом начале таблицы новые столбцы с прогнозами будут пустыми, их количество зависит от установленного значения в поле «Порядок AR части».
Если мы обратимся ко второму выходному порту, то увидим таблицу с коэффициентами модели, а к третьему - сводку значений переменных, показывающих количество примеров, ошибки на обучающем множестве, информационные критерии, коэффициенты детерминации, числа степеней свободы.
Данные выходных портов дают исчерпывающую информацию о выполненном прогнозе, но табличное представление сложно воспринимать, поэтому в большинстве случаев потребуются визуализаторы.
Прежде, чем переходить к построению графиков, необходимо заполнить значения временного ряда для появившихся строк, иначе график прогноза будет отображаться только на исходном временном периоде, а значения на горизонте прогноза не будут отражены. Для этого добавим узел «Калькулятор».
В настройках узла создадим переменную AllDates, которая будет содержать все значения временного ряда. Расчет будет строиться с помощью функции условия If. Если поле даты пустое, то функция AddMonth добавляет необходимое количество месяцев к последнему известному значению, в противном случае вносит ту дату, которая указана в поле.
Для того, чтобы вычислить количество месяцев, необходимо сначала найти разность между номером текущей строки (функция RowNum()) и количеством уникальных значений поля Date (функция Stat("Date", "UniqueCount")), а затем добавить к полученному результату 2. Важно учитывать, что нумерация строк начинается с 0, а в количестве уникальных значений присутствуют не только исходные даты, но и пустое значение в появившихся после прогноза строках, именно поэтому вводится цифра 2.
Калькулятор Loginom
После выполнения узла «Калькулятор» в таблице на его выходном порту появится столбец «Все даты».
Для того, чтобы визуально оценить прогнозные значения и их корреляцию с фактическими показателями, построим графики исходных значений объема продаж и прогноза этой величины, полученного в результате использования модели ARIMA.
В результате получим график, на котором отображаются кривые прогноза и исходных значений объема продаж в рублях.
График прогноза продаж
На графике отчетливо выделяются 3 временных периода:
В качестве этапа обучения модели обработчик ARIMAX задал временной промежуток 29 месяцев (около 2 лет). На втором интервале видно, что графики объема продаж и его прогноза имеют одинаковую форму, но при этом значения величин в некоторых точках значительно отличаются. Линия прогноза на 3 временном промежутке визуально повторяет форму кривой исходных значений продаж.
В случае, когда точность прогноза с автоматически заданными параметрами оказалась недостаточной, можно задать эти значения вручную.
Важно понимать, что нет универсальных правил, которые могут быть применимы ко всем задачам прогнозирования, поэтому для каждого набора данных они будут свои. В документации можно подробно ознакомиться с описанием структуры ARIMAX и определениями каждого из настраиваемых параметров.
Изменим показатели в окне настройки ARIMAX, как это показано на рисунке ниже.
Настройка обработчика ARIMAX
Далее необходимо будет произвести переобучение данного узла.
Значения прогноза будут пересчитаны, и в визуализаторе мы сможем увидеть, что графики кривых на 2 временном периоде приняли почти одинаковый вид. Это говорит о том, что точность прогноза увеличилась.
График прогноза продаж
Чтобы убедиться в том, что прогноз стал точнее, откроем вкладку «Сводка» на третьем выходном порте модели. Значение средней относительной ошибки на обучающем множестве сократились в несколько раз по сравнению с предыдущими.
Ошибки сводки ARIMAX
В данном примере мы построили прогноз объема продаж сезонных товаров для зимнего спорта с помощью модели ARIMA.
При автоматически заданных параметрах обработчика ARIMAX был получен корректный прогноз с минимальным количеством входных данных. Кроме того, удалось добиться увеличения точности прогноза с помощью ручного подбора параметров модели ARIMAX.
Сам обработчик ARIMAX характеризуется простотой использования и быстрой работой, достаточно подать на вход данные и ввести показатели прогнозирования (а можно и не вводить вовсе), и уже через несколько секунд получить корректный прогноз. Кроме того, в Loginom можно построить графики с кривыми фактических и прогнозных значений, что в полной мере позволяет визуально оценить полученный результат.
Другие материалы по теме:
Автоматизация прогнозирования розничных продаж. Кейс Estee Lauder Companies Inc.
Прогнозирование аварий и обнаружение потерь на объектах газоснабжения
Прогнозирование в разрезе SKU. Новые возможности повышения адекватности прогнозов