Прогнозирование спроса: базовые модели, оценка качества Mape и Mae без переобучения

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

Быстрая проверка перед запуском прогноза

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

Зачем прогнозировать спрос: цели, предположения и KPI

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

Сначала зафиксируйте постановку задачи

  1. Выберите объект. Определите товар, категорию, магазин, регион или клиентский сегмент.
  2. Задайте горизонт. Выберите следующий день, неделю или месяц; горизонт должен соответствовать циклу закупки или производства.
  3. Определите KPI. Подойдут ошибка прогноза, доля дефицита, списания, оборачиваемость и точность выполнения плана.
  4. Опишите ограничения. Укажите минимальный запас, срок поставки, бюджет и доступность товара.

Когда отдельная модель преждевременна

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

Простые статистические модели: наивный метод, скользящее среднее и ETS

Для базового прогноза понадобятся таблица с датой и целевой величиной, единый календарь периодов, история за несколько сезонных циклов и среда расчёта. Для первого этапа достаточно SQL и Python или другой системы с операциями агрегации и расчёта временных рядов.

Базовые варианты

Подход Идея Когда применять Ограничение
Наивный метод Следующее значение равно последнему известному Как контрольный ориентир Не учитывает тренд и сезонность
Скользящее среднее Прогноз равен среднему последних периодов При шумных данных без резких изменений Запаздывает при смене тренда
ETS Отдельно сглаживает уровень, тренд и сезонность При устойчивой структуре ряда Чувствителен к неверно выбранной сезонности

Что подготовить перед расчётом

  • Свести продажи к одной периодичности: день, неделя или месяц.
  • Отдельно хранить фактические нулевые продажи и пропуски данных.
  • Проверить, не вызвано ли снижение продаж отсутствием товара.
  • Сформировать календарь будущих периодов, для которых нужен прогноз.

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

Модели машинного обучения: регрессии, деревья, градиентный бустинг и нейросети

Прогнозирование спроса: базовые модели, оценка качества (MAPE/MAE) и как не переобучиться - иллюстрация

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

Подготовка перед пошаговым запуском

  • Сформируйте таблицу признаков и укажите дату, на которую каждый признак становится доступным.
  • Разделите признаки на известные заранее и появляющиеся только после наступления периода.
  • Сделайте простой базовый прогноз для сравнения.
  • Определите схему временной валидации и целевую метрику.
  1. Соберите целевой ряд.

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

    • Добавьте дату и идентификатор товара или точки продаж.
    • Зафиксируйте правила обработки возвратов и отмен.
  2. Создайте временные признаки.

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

  3. Начните с интерпретируемой модели.

    Линейная регрессия показывает влияние признаков и служит полезным ориентиром. Регуляризация помогает ограничивать чрезмерные коэффициенты при большом числе признаков.

  4. Проверьте деревья и градиентный бустинг.

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

  5. Используйте нейросеть только при обосновании.

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

  6. Сделайте прогноз воспроизводимым.

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

Метрики качества: MAE, MAPE, RMSE - как читать и сравнивать

Прогнозирование спроса: базовые модели, оценка качества (MAPE/MAE) и как не переобучиться - иллюстрация

Метрика должна соответствовать бизнес-риску. MAE показывает среднюю абсолютную ошибку в единицах спроса, MAPE - относительную ошибку, а RMSE сильнее наказывает крупные промахи.

Метрика Короткая формула Как интерпретировать Ограничение
MAE среднее |факт − прогноз| Средняя ошибка в исходных единицах Плохо сравнивает ряды разных масштабов
MAPE среднее |факт − прогноз| / |факт| × 100% Средняя относительная ошибка Нестабильна при нулевых и малых фактах
RMSE квадратный корень из среднего квадрата ошибки Чувствительна к крупным ошибкам Менее наглядна при выбросах

Универсального порога MAE или MAPE нет: допустимая ошибка зависит от маржи, срока поставки, стоимости дефицита и масштаба спроса. Поэтому задавайте пороги от бизнес-стоимости ошибки, а не переносите их между разными товарами.

Проверка результата

  • Сравните модель с наивным прогнозом и скользящим средним.
  • Посчитайте MAE и RMSE в исходных единицах.
  • Используйте MAPE осторожно при нулевых продажах и дополните её устойчивой метрикой.
  • Проверьте ошибки отдельно по товарам, регионам, периодам и группам спроса.
  • Посмотрите на систематическое завышение или занижение прогноза.
  • Проверьте качество на последнем временном отрезке, который не участвовал в настройке.
  • Оцените влияние прогноза на операционные KPI, а не только на математическую метрику.

Анти-переобучение в прогнозировании: регуляризация, валидация и отбор признаков

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

  • Случайно перемешали временной ряд. Делите данные по времени.
  • Рассчитали среднее по всему датасету. Стройте статистики отдельно внутри обучающей части.
  • Использовали будущую цену или промо. Оставляйте только значения, известные к моменту прогноза.
  • Добавили слишком много лагов. Удаляйте признаки, которые не улучшают качество на нескольких временных срезах.
  • Настроили модель по тесту. Тестовый период должен оставаться финальной независимой проверкой.
  • Игнорировали смену режима. Разделяйте периоды с разными правилами ассортимента, цен или каналов.
  • Оценили только среднюю метрику. Проверяйте распределение ошибок и отдельные важные группы товаров.

Безопасная схема валидации

  1. Обучите модель на раннем отрезке.
  2. Проверьте её на следующем периоде.
  3. Сдвиньте границу обучения вперёд и повторите проверку.
  4. Сравните среднее качество и разброс ошибок.
  5. После выбора модели один раз проверьте её на отложенном последнем периоде.

Внедрение и эксплуатация модели: пайплайн, мониторинг и откат

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

Контрольный чеклист перед деплоем

  • Проверены даты, дубликаты, пропуски и неожиданные значения.
  • Признаки строятся без доступа к будущим фактам.
  • Есть журнал версии модели, периода данных и параметров запуска.
  • Настроены уведомления о сбоях загрузки и изменении распределения данных.
  • Определены условия остановки автоматического прогноза.
  • Сохранён последний стабильный прогноз для быстрого отката.

Варианты внедрения

Вариант Когда уместен Особенность
Табличный расчёт по расписанию Небольшой ассортимент и редкое обновление Просто контролировать вручную
Пакетный пайплайн Регулярный прогноз для большого числа объектов Нужны журналирование и автоматические проверки
Сервис прогнозирования Прогноз нужен нескольким системам Требуются контракт API, мониторинг и управление версиями
Гибридная схема Часть товаров прогнозируется моделью, часть правилами Подходит для новых товаров и разреженного спроса

Что обычно спрашивают при настройке прогноза

С какой модели начать прогнозирование спроса?

Начните с наивного метода и скользящего среднего. Они дают базовую линию, относительно которой можно оценивать пользу ETS и машинного обучения.

Чем отличаются прогнозирование спроса и прогнозирование продаж?

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

Можно ли использовать MAPE при нулевых продажах?

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

Как понять, что модель переобучилась?

Сравните ошибку на обучении и на последующих временных периодах. Большой разрыв, нестабильные результаты по срезам и ухудшение относительно базовой модели указывают на проблему.

Нужно ли сразу применять нейросеть?

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

Как часто переобучать модель?

Периодичность зависит от скорости изменения спроса и доступности новых фактов. Начните с регулярного расписания и пересматривайте его по мониторингу ошибок и сдвигов данных.

Что делать, если прогноз хуже наивного метода?

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

Об авторе

Дмитрий Волков - автор материалов о прикладной аналитике и внедрении моделей в бизнес-процессы.

Прокрутить вверх