Представьте сеть из 200 кофеен, которая ежемесячно теряет 12% выручки из-за нехватки свежей выпечки в пиковые часы и одновременно тратит 8% бюджета на утилизацию непроданных изделий. Точное прогнозирование спроса могло бы сохранить компании 2.8 млн рублей в год только на одной категории товаров, не считая увеличения лояльности клиентов и оптимизации закупок. Именно такие бизнес-кейсы делают прогнозирование спроса не академическим упражнением, а инструментом прямой финансовой выгоды.
Что такое прогнозирование спроса?
Прогнозирование спроса — это процесс оценки будущего потребительского спроса на продукт или услугу за определенный период времени. Это краеугольный камень эффективного управления цепочками поставок, логистики и ценовой стратегии. Точный прогноз позволяет оптимизировать запасы (снижая затраты на хранение на 15-30%), увеличить оборачиваемость товаров на 20-40% и улучшить клиентский опыт. Однако путь от сырых данных до работающего прогнозного решения усыпан методологическими ошибками и практическими сложностями.
Данные — основа всего: Качество определяет результат
Наилучший прогноз получается при комбинации внутренних исторических данных и релевантных внешних факторов. Не существует одного "идеального" источника. Чем полнее и качественнее ваши данные, и чем точнее вы определите драйверы спроса для вашего бизнеса, тем надежнее будет ваш прогноз.
Внутренние исторические данные
Данные о продажах: Детализированные по дням, часам, неделям, месяцам.
- Что именно собирать: Количество проданных единиц, выручка, отмены и возвраты.
- Важность: Прямой индикатор исторического спроса.
- Атрибуты товара: Категория, бренд, цвет, размер, цена, себестоимость.
- Иерархия товаров: Взаимосвязь между товарами, товарной группой и категорией.
- Жизненный цикл товара: Дата выхода на рынок, этап жизненного цикла (запуск, рост, зрелость, спад).
- Остатки на складах: Уровень запасов на конец дня.
- Периоды "нулевых" остатков (stock-out): Когда спрос был, но товара не было. Эти данные нужно "очищать", так как они искажают реальный спрос.
- Участие в акциях: Был ли товар в акции (да/нет), тип акции (скидка, "2 по цене 1", распродажа).
- Размер скидки: Процент или абсолютное значение.
- Рекламные каналы: Рассылки, баннеры на сайте, контекстная реклама.
- Конечная цена продажи: Цена, по которой фактически купили товар.
- Точка продаж: Физический магазин (и его местоположение), интернет-магазин, маркетплейс.
- География: Регион, город (для анализа регионального спроса).
Источники: ERP-системы (например, SAP, 1C), CRM-системы, системы учета (складские, финансовые), базы данных интернет-магазинов.
Внешние данные и данные о рыночной среде
Эти данные помогают понять контекст, в котором действует ваш спрос.
Экономические индикаторы:
- Макроуровень: ВВП, уровень инфляции, курс валют, ключевая ставка, индекс потребительских цен, уровень безработицы.
- Микроуровень: Средняя заработная плата в регионе, потребительская уверенность.
- Для локаций магазинов: Половозрастной состав населения, плотность населения, социальный статус района.
- Цены конкурентов: Можно собирать через различные парсеры.
- Их акции и промо: Мониторинг рекламных активностей.
- Появление новых продуктов/брендов на рынке.
- Общая сезонность: Лето/зима, праздники (Новый год, 8 марта, Чёрная пятница).
- Локальные события: Городские праздники, фестивали, спортивные мероприятия.
- Календарные особенности: Выходные/будни, количество рабочих дней в месяце.
- Для многих товаров критически важны: температура, осадки, солнечные дни.
- Примеры: Мороженое, напитки, зонты, одежда, энергопотребление.
- Данные из соцсетей: Упоминаемость бренда, тональность отзывов.
- Отзывы на сайтах-отзовиках и маркетплейсах.
- Статистика Яндекс.Wordstat и Google Trends: Популярность поисковых запросов, связанных с вашим продуктом или категорией.
Источники: Статистические службы (Росстат), открытые API погодных сервисов, платные и бесплатные сервисы парсинга цен, Google Trends, Яндекс.Wordstat, инструменты для мониторинга соцсетей (Brand Analytics, IQBuzz).
Качественные данные и экспертные оценки
Используются когда мало исторических данных (например, для нового продукта или рынка) или для корректировки моделей.
- Мнение отдела продаж и маркетинга: их оценка будущего спроса на основе планов по запуску рекламы, выхода на новые рынки и т.д.
- Оценки менеджеров по продукту: понимание будущих трендов, планов по обновлению ассортимента.
- Опросы потребителей: выявление намерений совершить покупку.
Как это всё использовать?
- Сбор и очистка данных: Объединение данных из разных источников в единый датасет. Очистка от аномалий (всплесков из-за ошибок), заполнение пропусков, учет периодов "stock-out".
- Анализ и feature engineering: Понимание, какие факторы (фичи) больше всего влияют на спрос. Создание новых признаков: "праздничный день", "день после праздника", "средняя цена конкурента", "температура выше 25°C".
- Выбор модели прогнозирования: Статистические модели, машинное обучение или гибридный подход.
- Валидация и оценка точности: Разделение данных на обучающую и тестовую выборки. Оценка по метрикам: MAPE (средняя абсолютная процентная ошибка), WAPE, RMSE.
- Внедрение и мониторинг: Прогноз интегрируется в бизнес-процессы (планирование закупок, формирование бюджета). Постоянно отслеживается его точность и корректируется при необходимости.
Эволюция методов: От простого к сложному
Простые методы (базовые бенчмарки)
Перед тем, как переходить к построению сложных моделей машинного обучения, важно определить baseline — минимальный уровень точности, который модель должна превосходить. Для этого используют простые методы: они задают планку, ниже которой недопустимо опускаться.
1. Наивный прогноз (Naive forecast):
Самый простой вариант — прогнозировать, что следующее значение будет таким же, как и последнее наблюденное. Например, продажи на завтра равны продажам сегодня. Этот метод особенно актуален для данных без выраженного тренда или сезонности.
2. Скользящее среднее (Moving average):
Значение прогноза рассчитывают как среднее за последние N периодов (например, дней или недель). Такой подход сглаживает разовые колебания и быстро реагирует на смену тенденций, но не всегда ловит долгосрочные тренды.
3. Сезонный наивный (Seasonal naive):
Если в данных присутствует сезонность, прогнозируют, что значение в следующем периоде будет таким же, как и в аналогичном периоде прошлого сезона (например, продажи в этот понедельник будут такими же, как в прошлый понедельник).
Эти методы просты в реализации и интерпретации. Они позволяют быстро оценить, насколько построенная ML-модель действительно дает добавленную стоимость по сравнению с минимальной “разумной” точностью.
Самый простой вариант — прогнозировать, что следующее значение будет таким же, как и последнее наблюденное. Например, продажи на завтра равны продажам сегодня. Этот метод особенно актуален для данных без выраженного тренда или сезонности.
2. Скользящее среднее (Moving average):
Значение прогноза рассчитывают как среднее за последние N периодов (например, дней или недель). Такой подход сглаживает разовые колебания и быстро реагирует на смену тенденций, но не всегда ловит долгосрочные тренды.
3. Сезонный наивный (Seasonal naive):
Если в данных присутствует сезонность, прогнозируют, что значение в следующем периоде будет таким же, как и в аналогичном периоде прошлого сезона (например, продажи в этот понедельник будут такими же, как в прошлый понедельник).
Эти методы просты в реализации и интерпретации. Они позволяют быстро оценить, насколько построенная ML-модель действительно дает добавленную стоимость по сравнению с минимальной “разумной” точностью.
Классические статистические модели
Для прогнозирования спроса данные модели опираются на математическое описание зависимости значений временного ряда от его предыдущих состояний, трендов и сезонных колебаний. Они хорошо зарекомендовали себя там, где важно объяснять структуру данных, понимать, как формируется прогноз, и работать с относительно небольшими датасетами.
ETS (Error, Trend, Seasonality): моделирует три компонента ряда — ошибку, тренд и сезонность. Эффективна для рядов с выраженной сезонностью.
Варианты:
Когда использовать:
Варианты:
- Простое сглаживание (нет тренда, нет сезонности).
- Двойное сглаживание (с трендом).
- Тройное Хольта-Винтерса (с трендом и сезонностью).
Когда использовать:
- Когда в данных заметны стабильные тенденции или повторяющиеся сезонные паттерны.
ARIMA (AutoRegressive Integrated Moving Average): моделирует зависимости между текущим значением временного ряда и его прошлыми значениями (авторегрессия), а также моделирует структуру ошибок (скользящее среднее) и умеет устранять нестационарность за счёт взятия разностей (интегрирование).
Обозначение:
Когда использовать:
Обозначение:
- AR (p): число лагов авторегрессии.
- I (d): порядок дифференцирования (сколько раз берём разность, чтобы сделать ряд стационарным).
- MA (q): порядок скользящего среднего.
Когда использовать:
- Для рядов без ярко выраженной сезонности, но с заметными автокорреляциями или трендами.
SARIMA (Seasonal ARIMA): расширяет ARIMA за счёт учета сезонных компонент (например, недельная или годовая повторяемость).
Когда использовать:
Когда использовать:
- Когда значения спроса меняются по годам, сезонам или неделям — регулярные пики и спады.
Машинное обучение: Нелинейность и взаимодействия
Это следующий этап развития методов прогнозирования спроса, позволяющий учитывать сложные нелинейные зависимости, взаимодействия между множеством факторов и автоматизировать обработку больших объёмов разнородных данных.
Градиентный бустинг (XGBoost, LightGBM, CatBoost) - это ансамбли деревьев решений, которые обучаются последовательно: каждый следующий “дерево” пытается скорректировать ошибки предыдущих. В результате модель отлично находит сложные связи между признаками и результатом.
Главные плюсы:
Когда использовать:
Главные плюсы:
- Справляется с нелинейностями, взаимодействиями факторов (например, влияние цены на продажи зависит от погоды или дня недели).
- Умеет работать с большими и разнородными фичами: промо, цены, календарные переменные, внешние индексы.
Когда использовать:
- Когда много исторических и внешних факторов, сложная динамика спроса, или классические методы “перестают тянуть”.
Случайный лес (Random Forest): Ансамбль независимых деревьев, использующих разные подвыборки данных и признаков. Лучше работает на стабильных паттернах, чем на временных рядах, но полезен для базового сравнения.
Нейронные сети (LSTM, GRU): хорошо захватывают сложные длинные зависимости во времени за счёт специальной архитектуры памяти. Применяются в очень крупных или высокочастотных рядах, например, прогнозирование трафика.
Гибридные подходы
Такие подходы объединяют лучшие стороны классических статистических моделей и методов машинного обучения. Они особенно эффективны там, где одни и те же данные содержат как регулярные (тренд, сезонность), так и сложные, внешне обусловленные компоненты (акции, маркетинг, погодные аномалии).
Пример архитектуры:
- Модель сезонности/тренда (например, SARIMA) – строит базовый прогноз.
- Вычитаем из фактических значений полученный прогноз — получаем остатки (неожиданные отклонения).
- ML-модель (XGBoost, LightGBM) учится предсказывать, когда и почему возникают эти отклонения — на основе промо, цены, внешних данных.
- Финальный прогноз = прогноз статистической модели + прогноз ML по остаткам.
Сравнение точности методов (MAPE, %)
MAPE (Mean Absolute Percentage Error) — это средний процент отклонения прогноза от фактических значений.
Таблица по сравнению:
Как интерпретировать значения MAPE?
< 10% — отличная точность, почти всегда коммерчески оправдана (например, для стабильных товаров или крупного агрегированного спроса).
10–20% — хорошее качество для большинства направлений ритейла, e-commerce, FMCG.
20–30% — приемлемо для категорий с высокой волатильностью, промо-зависимых или новых товаров.
> 30% — сигнал к пересмотру данных, методов или гипотез; часто обоснован только для очень нестабильных сегментов.
10–20% — хорошее качество для большинства направлений ритейла, e-commerce, FMCG.
20–30% — приемлемо для категорий с высокой волатильностью, промо-зависимых или новых товаров.
> 30% — сигнал к пересмотру данных, методов или гипотез; часто обоснован только для очень нестабильных сегментов.
Чем ниже MAPE, тем точнее планы закупок, меньше “зависших” остатков и избыточных запасов, выше оборачиваемость. Важно, чтобы MAPE считался на независимом тестовом периоде, иначе его "красота" обманчива.
Совет: Сравнивайте MAPE моделей не только между собой, но и с бизнес-целями: иногда быстрее и дешевле доработать процессы, чем пытаться загнать ошибку ниже 10% любой ценой.
Главные ошибки в реализации
Data Leakage и переобучение
Data leakage — использование в обучении информации, которая недоступна на момент прогноза:
- Признаки из будущего (например, средняя цена следующей недели)
- Агрегаты по всему периоду (глобальная средняя вместо скользящей)
Переобучение (overfitting) — модель запоминает шум вместо закономерностей:
- Слишком сложная модель на малом объеме данных
- Отсутствие регуляризации в tree-based models
Защита: Строгое соблюдение временных границ при кросс-валидации (TimeSeriesSplit)
Выбор метрики качества
Это критически важно для оценки прогноза спроса: именно метрика определяет, насколько хорошо модель решает бизнес-задачу. Ниже перечислены основные метрики, их особенности и рекомендации по выбору.
MAE (Mean Absolute Error, Средняя абсолютная ошибка) - среднее значение абсолютных ошибок между прогнозом и фактом.
Формула:
Формула:
MAE = (1/n) * Σ |Факт - Прогноз|Плюсы:
Когда использовать:
- Легко интерпретируется в "штуках" или деньгах.
- Устойчива к выбросам (в сравнении с MSE).
Когда использовать:
- Когда все ошибки одинаково важны и не критична масштабная интерпретация (например, коробочные остатки).
MSE/RMSE (Mean Squared Error / Root Mean Squared Error) - средний квадрат ошибки (или его корень). Большие промахи штрафуются сильно больше маленьких, потому что ошибка возводится в квадрат.
Формула:
Формула:
MSE = (1/n) * Σ (Факт - Прогноз)^2
RMSE = √MSEПлюсы:
Когда использовать:
- Чувствительна к крупным ошибкам — хорошо подходит, если "провалы" особенно опасны.
Когда использовать:
- Если бизнес страдает от сильных провалов прогноза (например, out-of-stock критичен).
MAPE (Mean Absolute Percentage Error, Средняя абсолютная процентная ошибка) - это средний процент отклонения.
Формула:
Формула:
MAPE = (1/n) * Σ (|Факт - Прогноз| / Факт) * 100%Плюсы:
Минусы:
Когда использовать:
- Ясная интерпретация для бизнеса ("Мы ошибаемся на 9%").
Минусы:
- Неустойчива при малых фактических значениях (ошибка может "улететь" в 1000% при продаже 0 единиц).
Когда использовать:
- Для агрегированных, масштабных продаж без большого числа нулевых значений.
WAPE (Weighted Absolute Percentage Error) - суммирует абсолютные ошибки и делит на сумму фактических значений, измеряет %-ошибку для всего покрытия.
Формула:
Формула:
WAPE = Σ |Факт - Прогноз| / Σ Факт * 100%Плюсы:
Когда использовать:
- Сглаживает влияние малых продаж, удобно использовать для отчетности и сравнения разных периодов.
Когда использовать:
- При анализе большого ассортимента, где есть низко- и высокооборотные позиции.
Как выбрать?
- Для рублей, долларов, штук — используйте MAE, RMSE.
- Для сравнения моделей и объяснения бизнесу — удобнее MAPE, WAPE.
- Если важно избегать крупных "промахов" — MSE/RMSE.
- Для сложносоставного ассортимента по категориям — WAPE.
Совет: используйте несколько метрик одновременно — это даст честную картину качества прогноза в разных разрезах.
Неопределенность прогноза
Точечный прогноз без доверительных интервалов бесполезен для принятия решений:
Построение интервалов:
- Верхняя граница интервала определяет страховой запас
- Нижняя граница — риск излишков
Построение интервалов:
- Статистические модели: аналитически из распределения ошибок
- ML-модели: бутстреп, jackknife или квантильная регрессия
Практика: Прогноз продаж на уровне 1000 единиц с 95% интервалом [800, 1200] позволяет планировать запас в 1200 единиц для покрытия спроса с вероятностью 97.5%.
Интеграция в бизнес-процессы
Успешное внедрение системы прогнозирования требует:
- Непрерывного мониторинга: Автоматизированный трекинг метрик качества с алертами при деградации качества
- A/B-тестирования моделей: Сравнение новой модели со старой на изолированной группе товаров/регионов перед полным развёртыванием
- Интеграции с системами управления запасами: Прогнозы должны автоматически преобразовываться в планы заказов
- Регулярного ретренинга: Модели должны переобучаться на новых данных с частотой от 1 недели до 1 месяца
- Человеческого надзора: Экспертная коррекция прогнозов для учета форс-мажоров и маркетинговых активностей
Лучшая модель — не обязательно самая сложная с точки зрения ML, а та, которая устойчиво работает и подходит для бизнеса. Инвестируйте в качество данных и feature engineering — это дает 80% результата против 20% от выбора алгоритма.
Готовы перестать терять прибыль на неоптимальных запасах?
Мы помогаем бизнесу перейти от реактивного управления к проактивному на основе данных.
→ Изучите наши кейсы и возможности на странице https://serdyukov.in/datalens
P.S. В статье мы разобрали типичные ошибки. Наша работа — не допустить их в вашем проекте и построить систему, которая будет приносить деньги, а не пылиться на полке.
Мы помогаем бизнесу перейти от реактивного управления к проактивному на основе данных.
→ Изучите наши кейсы и возможности на странице https://serdyukov.in/datalens
P.S. В статье мы разобрали типичные ошибки. Наша работа — не допустить их в вашем проекте и построить систему, которая будет приносить деньги, а не пылиться на полке.