En
Проекты Вакансии Блог
25 октября 2024

Прогнозирование спроса: кейс для FMCG-компаний

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

Вопросы и задачи прогнозирования спроса

К нам обратилась компания из сегмента FMCG, которая продаёт товары более чем 10 000 клиентов (B2B) по всей России и странам СНГ. Задача была разработать систему прогнозирования спроса на весь перечень товаров для клиентов. Сложность — в том, что в этой сфере бизнеса распределение спроса является непостоянным и всегда зависит (формируется и изменяется) от множества факторов:

  • сезонность
  • промоакции
  • экономические условия
  • погодные условия
  • региональные особенности спроса

Эти факторы — причины регулярного некорректного расчёта и оценки спроса для заказа товаров. А это, в свою очередь, влияло на заполняемость складов, полученную прибыль и даже лишние издержки для организации. 

В рамках общей цели заказчик очень хотел решить следующие две задачи: 

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

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

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

Стандартное решение прогнозирования спроса в FMCG

Компания обычно использовала стандартные методы прогнозирования. При этом  специалист прогнозирования спроса тратил 60-70% рабочего времени только на расчёт и внесение корректировок в базовый прогноз стандартными методами, без учёта новых вводных от клиентов. Итоговые показатели отклонялись от предполагаемых более чем на 10% в ту или иную сторону. 

В обязанности специалиста входили:

  • анализ исторических данных о продажах и формирования спроса
  • обработка вводных от клиентов (запросы, уточнения) 
  • принятие решений относительно прогноза, методов сбора информации, 
  • расчёт спроса, выявление причин изменения спроса и другие обязанности

Работа специалиста велась в специально программных средствах, например, в MS Excel. Для такого процесса прогнозирования спроса нужны концентрация внимания и сил, а также контроль ошибок из-за человеческого фактора. Стандартный метод негативно влиял на точность KPI (отклонения более чем на 10% при «ручном» прогнозировании) и оперативность прогнозов. Кроме того, в этом случае не учитывались скачки спроса на товары.


Наше решение для прогнозирования потребительского спроса

Мы поняли, что для решения поставленных задач стандартные методы не подходят. Для прогнозирования спроса необходимо использовать новые технологии, а именно искусственный интеллект (ИИ). Он предлагает множество подходов, методов и инструментов, которые можно использовать для обучения модели прогнозированию.
Использование ИИ в перспективе может помогать планировать закупки и прогнозировать объёмы продаж. Но некоторые методы не подошли из-за специфики задачи и характера данных. В частности:

  • простые модели прогнозирования временных рядов. Часто используют статические способы прогнозирования спроса. Статистические методы показывают себя плохо в условиях частого отсутствия продаж при агрегации данных для необходимого периода прогнозирования. Из-за этого временные ряды прерывисты и, как следствие, не стационарны. А ведь от качества и полноты временных рядов зависит и итоговый результат всего проекта. 
  • нейронные сети. Они требовали высоких трудозатрат и не подходили под сроки исполнения.

Ранее для данного канала продаж использовали прогнозирование статистическими методами. Несмотря на то, что они не совсем подходили и результаты были не впечатляющие: средняя точность первой недели за последний год равнялась порядка 50% и отклонение — от 10 до 15% в течение года от недели к неделе.

snippet


Существуют разные методы прогнозирования потребительского спроса. Мы рассмотрели несколько альтернативных подходов и выбрали метод градиентного бустинга (LightGBM). Он умеет работать с большими объёмами данных и множеством категорий для анализа, например, классификацией по географии региона, где продажи зависят от поведения покупателей, но не для всех товаров. Поэтому применять методы прогнозирования спроса для определения прогноза продаж нельзя.


У нас есть множество временных рядов, где каждый отдельный товар у некоторой сети в конкретном регионе продаж — это отдельный временной ряд. В основе метода градиентного бустинга лежат деревья решений, которые хорошо справляются с разделением данных на категории (Регионы продаж → торговые сети → конкретный товар). Поэтому мы их и используем.

snippet


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

Как происходила разработка решения для FMCG

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

В процессе анализа данных мы использовали следующие методы и инструменты:

  • Восстановление нулевых продаж. Для более точного результата важна качественная выборка данных . Это основа обучения нейронной модели. Качество данных определяется их непрерывностью. Значит, надо учесть те периоды, когда не было продажи товаров, и это не отметили в программах учёта. В этом случае целостность временных рядов не будет нарушена. Поэтому мы восстановили данные, которых не было в базе данных. 
  • Создание кастомного сплитовщика. Он нужен для корректного деления данных для последующего обучения и тестирования работы модели.
  • Прогнозирование погодных условий. Одна из важных задач заключалась в прогнозировании погодных условий на определённый «горизонт» времени. Прогноз погоды — ключевой фактор, влияющий на спрос, но точность прогноза на долгий срок оставляет желать лучшего. Поэтому прогнозирование спроса основано на средних значениях за последние три года. Логика проста: вряд ли зимой в Сибири будет значительно холоднее или теплее, чем в прошлые годы.
  • Проверка стационарности временных рядов. Важной задачей стало проверить, являются ли временные ряды — стационарными. От этого зависел выбор подходящей модели для прогнозирования будущего спроса. Стационарные временные ряды в отличие от нестационарных имеют постоянные средние значения и дисперсию, что значительно упрощает задачу прогнозирования спроса.

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


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

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

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

Чтобы достичь максимальной точности модели, мы использовали пакет Optuna для оптимизации гиперпараметров. Это позволило нам быстрее находить оптимальные параметры, что значительно ускорило процесс разработки.

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

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

 

Стоит отметить, что разработка велась итеративно с применением технологии SHAP* для выявления весомых признаков. Шаг приведения прогноза к историческим значениям — надстройка над baseline, которая дала значительный прирост к точности в 2-3%.

*SHAP (SHapley Additive exPlanations) — это метод объяснения для глубоких нейронных сетей, который предоставляет аналитические сведения о вкладе каждой входной функции в заданный прогноз.

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

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

В результате внедрения разработанной системы прогнозирования спроса компании удалось:

  • Повысить точность прогнозирования первой недели на 10% и четвёртой недели на 8%.
  • Увеличить точность прогнозирования первого месяца на 5-7% в зависимости от ряда.
  • Снизить отклонение до стабильных целевых значений (+/- 10%).
  • Снизить временные затраты специалистов по прогнозированию спроса на формирование аналитики на 15-20%. Это позволило им уделять больше времени на обработку вводных данных для корректировки прогноза.

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

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

Остались вопросы или хотите заказать разработку IT-продукта, обращайтесь по телефону 8-800-200-99-24, на request@simbirsoft.com или в telegram.



Другие статьи

Конфигурации продуктов 1С: обзор, рекомендации по выбору, советы по внедрению
31 марта 2025
Интеграция интернет-магазина с 1С
27 марта 2025
CRM-системы для торговли: понятие, функциональные возможности, обзор сервисов
21 марта 2025
Понравилась статья?
Подпишитесь на рассылку SimbirSoft! Пришлём письма о лайфхаках в разработке, поделимся опытом управления командами и компанией, а также расскажем о новых ивентах SimbirSoft.
Написать нам
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Оставьте свои контакты
SimbirSoft регулярно расширяет штат сотрудников.
Отправьте контакты, чтобы обсудить условия сотрудничества.
Прикрепить резюме, до 10 Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Написать нам
Расскажите, какие задачи сейчас на вашем проекте.
Проконсультируем и предложим подходящих специалистов, а также сориентируем по ставкам на аутстаф.
Направление
Количество специалистов
Middle
TeamLead
Senior
TechLead
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Экспресс-консультация
Заполните все поля формы.
Эксперт свяжется с вами в течение рабочего дня.
Тематика
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Порекомендуйте друга — получите вознаграждение!
  • Project-менеджер
  • Системный аналитик
  • iOS-разработчик
  • React-разработчик
  • Android-разработчик
  • DevOps-инженер
  • 1С-разработчик
  • 1С-архитектор
  • Менеджер по продажам IT
  • Менеджер по обучению и развитию персонала
  • DBA
  • QA Engineer Fullstack (Java/Kotlin)
  • 1C-Разработчик (Внутренний проект)
  • Java-разработчик
Прикрепить резюме, до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Заказать демонстрацию
Оставьте контакты, чтобы обсудить проект и условия
сотрудничества, или позвоните: 8 800 200-99-24
Прикрепить файл до 10Мб
Файл выбран
Можно прикрепить один файл в формате: txt, doc, docx, odt, xls, xlsx, pdf, jpg, jpeg, png.

Размер файла до 10 Мб.
Будь в курсе новостей SimbirSoft