Прогнозирование спроса: какие данные нужны и как проверить точность модели

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

Краткий свод практических выводов по прогнозированию спроса

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

Необходимые источники данных: внутренние и внешние

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

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

Подготовка и валидация данных перед моделированием

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

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

Мини-чеклист подготовки:

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

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

  1. Сформулируйте целевую переменную. Определите, что прогнозируется: заказы, отгрузки или скорректированный спрос. Укажите единицы измерения и горизонт, например будущий период после даты среза.
  2. Создайте календарные признаки. Добавьте день недели, месяц, сезон, праздничный статус и номер периода внутри года. Для каждого признака проверьте, что его значение известно заранее.
    • не кодируйте дату так, чтобы модель случайно использовала будущую информацию;
    • отдельно отмечайте переносы выходных и разовые события.
  3. Рассчитайте лаги и скользящие показатели. Используйте прошлые значения продаж, средние, минимумы, максимумы и волатильность за заранее заданные окна. Расчёт должен включать только периоды до даты прогноза.
  4. Добавьте коммерческие признаки. Передайте цену, скидку, факт промо, наличие товара, срок поставки и изменение ассортимента. Если плановая акция меняется после подготовки прогноза, храните плановую и фактическую версии раздельно.
  5. Сделайте агрегаты. Для иерархических данных добавьте показатели категории, бренда, региона или канала, не раскрывая целевую переменную будущего периода.
  6. Проведите отбор. Исключите признаки с утечкой, высокой долей пропусков, нестабильным смыслом или недоступностью в рабочем контуре. Оцените вклад признаков на временном тесте, а не только на обучающей выборке.
  7. Зафиксируйте преобразования. Сохраните формулы, окна, источники, обработку пропусков и список признаков в репозитории или реестре экспериментов.

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

Проверка результата должна отражать реальные решения: закупку, производство, распределение запасов или планирование персонала.

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

Тестирование устойчивости модели: сценарии и стресс-проверки

Стресс-проверки выявляют ситуации, в которых прогнозирование продаж становится ненадёжным даже при хорошей средней метрике.

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

Внедрение, мониторинг точности и план реакции на деградацию

Выберите режим работы по зрелости данных и цене ошибки.

  • Пакетный расчёт. Подходит для регулярного еженедельного или месячного планирования, когда данные обновляются по расписанию и решения не требуют мгновенной реакции.
  • Сценарный контур. Уместен при частых изменениях цен, промоакций или поставок: пользователь запускает несколько вариантов и сравнивает последствия.
  • Иерархическое прогнозирование. Подходит, когда прогнозы нужны одновременно на уровне товара, категории, региона и общего итога; необходимо контролировать согласованность агрегатов.
  • Гибрид с экспертной корректировкой. Используйте для запусков, разовых событий и недостатка истории. Каждое изменение прогноза должно иметь причину, автора и дату.
  • Назначьте владельца модели и владельца бизнес-процесса.
  • Контролируйте свежесть источников, долю пропусков, распределение признаков и наличие утечек.
  • Сравнивайте фактическую ошибку с базовым прогнозом и установленным порогом.
  • Настройте оповещение при сдвиге данных, росте смещения или ухудшении метрик на нескольких последовательных периодах.
  • Подготовьте план реакции: проверить входные данные, временно перейти на базовый метод, переобучить модель или остановить автоматическую публикацию.
  • Проводите повторную оценку после изменения ассортимента, источников, горизонта или бизнес-правил.

Ответы на частые практические затруднения

Можно ли строить прогноз только по истории продаж?

- Прогнозирование спроса: какие данные нужны и как проверить точность модели - иллюстрация

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

Какой период выбрать для обучения?

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

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

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

Как оценивать товары с нулевыми продажами?

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

Нужно ли всегда применять сложные модели?

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

Что делать, если фактическая точность ухудшилась?

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

Как сделать результаты воспроизводимыми?

Храните версии данных, кода, признаков, параметров, временных срезов и отчётов. Повторный запуск на том же срезе должен давать проверяемый результат или объяснимое отличие.

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