Прогноз без учёта сезонности
Среднее по прошлому году игнорирует пики и спады: в высокий сезон не хватает товара, в низкий — запасы лежат на складе и замораживают оборотный капитал.
Выберите тему — соберём контекст
Прогнозируем спрос, выручку, отток и сроки выполнения работ по вашей истории: с учётом сезонности, промо-акций, праздников и внешних факторов. Отдаём не одну цифру, а диапазон с оценкой точности.
Или сразу: +7 (962) 368-39-51 Telegram
Причины, по которым первые попытки прогнозирования в Excel или BI заканчиваются недоверием к цифрам.
Среднее по прошлому году игнорирует пики и спады: в высокий сезон не хватает товара, в низкий — запасы лежат на складе и замораживают оборотный капитал.
Скидочная кампания поднимает продажи на 40%, и этот всплеск уходит в обучающую выборку как обычное поведение. Следующий прогноз завышается на весь период.
Заказы можно изменить или удалить, статусы возвращаются назад, цены правятся задним числом. Модель учится на данных, которых уже не было в таком виде.
Случайное разбиение на обучающую и тестовую выборки в задаче на временных рядах даёт завышенную точность: модель «подглядывает» в будущее.
Модель считает цифры в блокноте аналитика, а закупщик по-прежнему работает в ERP и о прогнозе не знает. Без интеграции эффекта нет.
Одна цифра прогноза не сообщает о неопределённости. Планировщик не понимает, где риск дефицита, и закладывает запасы «на глазок».
От подготовки данных до внедрения прогноза в интерфейс планировщика и закупщика.
Собираем историю в единую витрину с правильной гранулярностью и понятной семантикой: день, неделя, точка продаж, SKU, канал.
Подбираем класс модели под задачу: бустинг с лаговыми признаками для коротких рядов, сезонные модели для длинных, гибрид для иерархий.
Проверяем модель так, как она будет работать: обучаем на прошлом, проверяем на будущем, считаем метрики по сегментам.
Прогноз попадает туда, где принимается решение: в ERP, систему закупок, дашборд или по расписанию в почту.
Первый этап отвечает на вопрос, возможно ли вообще построить точный прогноз на имеющихся данных.
Проверяем глубину истории, полноту, стабильность ключей и наличие промо-разметки. Оцениваем достижимый уровень точности.
Сначала строим наивный бейзлайн, затем модель. Если модель не превосходит бейзлайн, честно сообщаем об этом до внедрения.
Прогоняем модель по историческим периодам, разбираем крупные промахи вместе с планировщиками, калибруем интервалы.
Подключаем прогноз к системе планирования, обучаем пользователей, настраиваем мониторинг точности и переобучение.
Формулировка «точность 92%» сама по себе бесполезна: непонятно, от чего считали и на каком горизонте. Корректная постановка выглядит так: «прогноз на две недели вперёд по товарной категории даёт WAPE 11%, что соответствует средней абсолютной ошибке 340 единиц при обороте 3 100 единиц в неделю».
Для планирования важна не средняя ошибка, а её поведение в пиковые периоды. Модель может отлично работать в спокойные недели и ошибаться вдвое в высокий сезон, когда цена ошибки максимальна. Поэтому мы всегда показываем метрики отдельно по периодам: обычные недели, пик, промо.
В задачах прогнозирования нельзя делить данные случайно: соседние по времени наблюдения похожи, и модель, увидев половину декабря в обучении, легко предскажет вторую половину. Метрика получится отличной, а в проде прогноз на реальный декабрь окажется далёк от факта.
Правильная схема — обучение на прошлом и проверка на строго последующем периоде, с несколькими такими срезами (walk-forward validation). Если данных достаточно, мы дополнительно проверяем модель на периоде, содержащем нетипичное событие: скачок спроса, уход крупного клиента, изменение ассортимента.
Если спрос стабилен и колеблется в пределах пары процентов, среднее за прошлые периоды работает не хуже модели, а стоит несопоставимо меньше. Строить машинное обучение ради замены константы — распространённая и дорогая ошибка.
Мы говорим об этом прямо на этапе аудита. Оправданные случаи для модели: выраженная сезонность, большое количество параллельных рядов (тысячи SKU или точек), влияние множества факторов, которые человек не удержит в голове, либо высокая цена ошибки, где важна оценка неопределённости.
Минимально — два полных сезонных цикла, то есть около двух лет для бизнеса с годовой сезонностью. Меньшая история не позволяет отделить сезонность от тренда. Если данных меньше, мы работаем с более простыми моделями и обязательно фиксируем ограничение: прогноз будет опираться на экспертные допущения о сезонности, а не на наблюдаемые данные.
Точность закономерно падает с горизонтом. Для недельного горизонта достижим WAPE порядка 8–12%, для месячного — 15–20%, для квартального прогноза метрика становится слишком грубой для операционных решений, но остаётся пригодной для бюджетирования. Мы всегда указываем горизонт вместе с метрикой, чтобы цифра не использовалась не по назначению.
Выбросы не удаляются автоматически: часть из них — реальные события, которые нужно уметь предсказывать. Мы разделяем их на объяснимые (промо, праздники, крупная сделка) и необъяснимые. Объяснимые становятся признаками модели, необъяснимые исключаются из обучения, но остаются в истории для контроля. Такой подход не даёт модели «размазать» реальный пик по соседним периодам.
Базовое расписание — раз в месяц для быстро меняющегося спроса и раз в квартал для стабильных категорий. Дополнительно переобучение запускается по триггеру: если фактическая точность за период опустилась ниже согласованного порога или зафиксирован значимый дрейф входных данных. Каждое переобучение версионируется, чтобы можно было сравнить качество новой модели со старой на одном наборе данных.
Смежные задачи, которые обычно решаются в одном проекте с этой.
Пришлите выгрузку истории продаж или заказов за один-два года — оценим сезонность, качество данных и реалистичную точность прогноза.
Cookie и аналитика
Мы используем необходимые cookie для работы сайта и форм. Аналитические cookie (Яндекс.Метрика, включая запись сессий) подключаем только с вашего согласия — от него можно отказаться. Подробнее: Политика использования cookie и обработка персональных данных.