Прогнозирование спроса помогает оценить будущие продажи и заранее планировать запасы, закупки и персонал. Начните с наивной модели и скользящего среднего, сравните их с ETS или машинным обучением, проверяйте качество временной валидацией по MAE, MAPE и RMSE, а перед запуском исключите утечки данных и настройте мониторинг.
Быстрая проверка перед запуском прогноза
- Определены объект прогноза, горизонт, периодичность и бизнес-решение, которое будет зависеть от результата.
- История продаж очищена от дублей, пропусков, возвратов и ошибок в датах.
- Отмечены промоакции, изменения цены, дефицит товара, праздники и другие причины аномалий.
- Обучающая и проверочная выборки разделены по времени, без случайного перемешивания.
- Есть базовый ориентир: наивный прогноз или скользящее среднее.
- Перед деплоем проверены качество, задержка обновления данных, план отката и ответственный за контроль.
Зачем прогнозировать спрос: цели, предположения и KPI
Прогнозирование спроса подходит компаниям с регулярными продажами и накопленной историей наблюдений. Оно полезно для планирования закупок, складских остатков, производства, логистики и бюджета. Прогнозирование продаж не заменяет управленческое решение: оно показывает ожидаемый сценарий при заданных условиях.
Сначала зафиксируйте постановку задачи
- Выберите объект. Определите товар, категорию, магазин, регион или клиентский сегмент.
- Задайте горизонт. Выберите следующий день, неделю или месяц; горизонт должен соответствовать циклу закупки или производства.
- Определите KPI. Подойдут ошибка прогноза, доля дефицита, списания, оборачиваемость и точность выполнения плана.
- Опишите ограничения. Укажите минимальный запас, срок поставки, бюджет и доступность товара.
Когда отдельная модель преждевременна
- История слишком короткая или содержит много несопоставимых периодов.
- Продажи часто ограничивались отсутствием товара, поэтому они не отражают реальный спрос.
- Ассортимент, цены или каналы постоянно менялись без признаков, описывающих эти изменения.
- Решение можно принять простым правилом, а стоимость поддержки модели выше потенциальной пользы.
Простые статистические модели: наивный метод, скользящее среднее и ETS
Для базового прогноза понадобятся таблица с датой и целевой величиной, единый календарь периодов, история за несколько сезонных циклов и среда расчёта. Для первого этапа достаточно SQL и Python или другой системы с операциями агрегации и расчёта временных рядов.
Базовые варианты
| Подход | Идея | Когда применять | Ограничение |
|---|---|---|---|
| Наивный метод | Следующее значение равно последнему известному | Как контрольный ориентир | Не учитывает тренд и сезонность |
| Скользящее среднее | Прогноз равен среднему последних периодов | При шумных данных без резких изменений | Запаздывает при смене тренда |
| ETS | Отдельно сглаживает уровень, тренд и сезонность | При устойчивой структуре ряда | Чувствителен к неверно выбранной сезонности |
Что подготовить перед расчётом
- Свести продажи к одной периодичности: день, неделя или месяц.
- Отдельно хранить фактические нулевые продажи и пропуски данных.
- Проверить, не вызвано ли снижение продаж отсутствием товара.
- Сформировать календарь будущих периодов, для которых нужен прогноз.
Сравнивайте каждый сложный подход с базовым. Если ETS или машинное обучение не улучшают ошибку относительно наивного метода на временной проверке, усложнение не оправдано.
Модели машинного обучения: регрессии, деревья, градиентный бустинг и нейросети

Машинное обучение уместно, когда на спрос влияют цена, скидки, календарь, остатки, погода, маркетинг или характеристики товара. Главное условие - каждый признак должен быть доступен на момент построения будущего прогноза.
Подготовка перед пошаговым запуском
- Сформируйте таблицу признаков и укажите дату, на которую каждый признак становится доступным.
- Разделите признаки на известные заранее и появляющиеся только после наступления периода.
- Сделайте простой базовый прогноз для сравнения.
- Определите схему временной валидации и целевую метрику.
- Соберите целевой ряд.
Выберите величину, которую нужно предсказать: количество проданных единиц, выручку или заказы. Не смешивайте разные единицы измерения без отдельной нормализации.
- Добавьте дату и идентификатор товара или точки продаж.
- Зафиксируйте правила обработки возвратов и отмен.
- Создайте временные признаки.
Добавьте день недели, месяц, праздничный период, лаги и скользящие статистики. Лаги должны рассчитываться только из прошлого, а не из всего ряда.
- Начните с интерпретируемой модели.
Линейная регрессия показывает влияние признаков и служит полезным ориентиром. Регуляризация помогает ограничивать чрезмерные коэффициенты при большом числе признаков.
- Проверьте деревья и градиентный бустинг.
Деревья способны учитывать нелинейности, а градиентный бустинг удобен для табличных признаков. Настраивайте глубину, число итераций и скорость обучения только на временной валидации.
- Используйте нейросеть только при обосновании.
Нейросети требуют больше данных, вычислительных ресурсов и контроля стабильности. Перед их применением убедитесь, что более простые модели не решают задачу с сопоставимым качеством.
- Сделайте прогноз воспроизводимым.
Зафиксируйте версии данных, признаков, кода и модели. Сохраните параметры расчёта и правила округления, чтобы результат можно было проверить и повторить.
Метрики качества: MAE, MAPE, RMSE - как читать и сравнивать

Метрика должна соответствовать бизнес-риску. MAE показывает среднюю абсолютную ошибку в единицах спроса, MAPE - относительную ошибку, а RMSE сильнее наказывает крупные промахи.
| Метрика | Короткая формула | Как интерпретировать | Ограничение |
|---|---|---|---|
| MAE | среднее |факт − прогноз| | Средняя ошибка в исходных единицах | Плохо сравнивает ряды разных масштабов |
| MAPE | среднее |факт − прогноз| / |факт| × 100% | Средняя относительная ошибка | Нестабильна при нулевых и малых фактах |
| RMSE | квадратный корень из среднего квадрата ошибки | Чувствительна к крупным ошибкам | Менее наглядна при выбросах |
Универсального порога MAE или MAPE нет: допустимая ошибка зависит от маржи, срока поставки, стоимости дефицита и масштаба спроса. Поэтому задавайте пороги от бизнес-стоимости ошибки, а не переносите их между разными товарами.
Проверка результата
- Сравните модель с наивным прогнозом и скользящим средним.
- Посчитайте MAE и RMSE в исходных единицах.
- Используйте MAPE осторожно при нулевых продажах и дополните её устойчивой метрикой.
- Проверьте ошибки отдельно по товарам, регионам, периодам и группам спроса.
- Посмотрите на систематическое завышение или занижение прогноза.
- Проверьте качество на последнем временном отрезке, который не участвовал в настройке.
- Оцените влияние прогноза на операционные KPI, а не только на математическую метрику.
Анти-переобучение в прогнозировании: регуляризация, валидация и отбор признаков
Переобучение возникает, когда модель хорошо объясняет прошлые данные, но теряет качество на новых периодах. В задачах прогнозирования особенно опасна утечка будущей информации через признаки, агрегации и случайное перемешивание строк.
- Случайно перемешали временной ряд. Делите данные по времени.
- Рассчитали среднее по всему датасету. Стройте статистики отдельно внутри обучающей части.
- Использовали будущую цену или промо. Оставляйте только значения, известные к моменту прогноза.
- Добавили слишком много лагов. Удаляйте признаки, которые не улучшают качество на нескольких временных срезах.
- Настроили модель по тесту. Тестовый период должен оставаться финальной независимой проверкой.
- Игнорировали смену режима. Разделяйте периоды с разными правилами ассортимента, цен или каналов.
- Оценили только среднюю метрику. Проверяйте распределение ошибок и отдельные важные группы товаров.
Безопасная схема валидации
- Обучите модель на раннем отрезке.
- Проверьте её на следующем периоде.
- Сдвиньте границу обучения вперёд и повторите проверку.
- Сравните среднее качество и разброс ошибок.
- После выбора модели один раз проверьте её на отложенном последнем периоде.
Внедрение и эксплуатация модели: пайплайн, мониторинг и откат
Продакшен-пайплайн должен одинаково обрабатывать историю и новые данные: загрузить факты, проверить качество, построить признаки, получить прогноз, записать версию модели и передать результат в операционный процесс.
Контрольный чеклист перед деплоем
- Проверены даты, дубликаты, пропуски и неожиданные значения.
- Признаки строятся без доступа к будущим фактам.
- Есть журнал версии модели, периода данных и параметров запуска.
- Настроены уведомления о сбоях загрузки и изменении распределения данных.
- Определены условия остановки автоматического прогноза.
- Сохранён последний стабильный прогноз для быстрого отката.
Варианты внедрения
| Вариант | Когда уместен | Особенность |
|---|---|---|
| Табличный расчёт по расписанию | Небольшой ассортимент и редкое обновление | Просто контролировать вручную |
| Пакетный пайплайн | Регулярный прогноз для большого числа объектов | Нужны журналирование и автоматические проверки |
| Сервис прогнозирования | Прогноз нужен нескольким системам | Требуются контракт API, мониторинг и управление версиями |
| Гибридная схема | Часть товаров прогнозируется моделью, часть правилами | Подходит для новых товаров и разреженного спроса |
Что обычно спрашивают при настройке прогноза
С какой модели начать прогнозирование спроса?
Начните с наивного метода и скользящего среднего. Они дают базовую линию, относительно которой можно оценивать пользу ETS и машинного обучения.
Чем отличаются прогнозирование спроса и прогнозирование продаж?
Продажи отражают совершённые сделки, а спрос может быть выше, если товар отсутствовал или покупатель столкнулся с ограничением. Для анализа спроса отдельно учитывайте дефицит и доступность товара.
Можно ли использовать MAPE при нулевых продажах?
MAPE нестабильна при нулевых и очень малых фактических значениях. В таких рядах используйте MAE, RMSE или метрику, адаптированную к нулевому спросу.
Как понять, что модель переобучилась?
Сравните ошибку на обучении и на последующих временных периодах. Большой разрыв, нестабильные результаты по срезам и ухудшение относительно базовой модели указывают на проблему.
Нужно ли сразу применять нейросеть?
Нет. В моделях прогнозирования спроса сначала сравните простые статистические методы, регрессию и бустинг; нейросеть оправдана при достаточном объёме данных и доказуемом выигрыше.
Как часто переобучать модель?
Периодичность зависит от скорости изменения спроса и доступности новых фактов. Начните с регулярного расписания и пересматривайте его по мониторингу ошибок и сдвигов данных.
Что делать, если прогноз хуже наивного метода?
Проверьте календарь, лаги, утечки, пропуски и корректность временного разделения. Если проблема не устраняется, оставьте базовый метод и пересмотрите постановку задачи.
Об авторе
Дмитрий Волков - автор материалов о прикладной аналитике и внедрении моделей в бизнес-процессы.


