# Проверка на прошлом: как MARFOR выбирает способ прогноза

> **Коротко.** MARFOR прячет последние месяцы, прогнозирует их разными способами и берёт самый точный. Точность — WAPE: промах в процентах от объёма.

Адрес: https://marfor.pro/docs/how-it-works/forecast/backtest · Раздел: Как это работает: от данных до плана бюджета › Как MARFOR строит прогноз › Проверка на прошлом: как MARFOR выбирает способ прогноза · Вид: Понятие · Уровень: средний уровень · Обновлено: 2026-10-14

![Проверка на прошлом: MARFOR сделал вид, что сейчас конец марта 2026 года, спрятал апрель–сентябрь и спрогнозировал их по данным до отсечения. Прогноз (синий пунктир) почти совпал с фактом: WAPE 4,1 %](https://marfor.pro/docs/img/fc-backtest.png)

## Пример на числах {#example}

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

1. Прячет апрель–сентябрь 2026 года.
2. Прогнозирует их по данным до марта: тот же месяц 2025 года × рост января–марта 2026-го к январю–марту 2025-го (1,10). Выходит 9 000, 9 000, 8 500, 10 000, 10 200 и 10 600 заказов.
3. Сравнивает с фактом: 9 300, 8 700, 8 900, 10 400, 9 900 и 11 300.
4. Промахи без знака: 300 + 300 + 400 + 400 + 300 + 700 = 2 400 заказов. Факт за полгода — 58 500. WAPE = 2 400 ÷ 58 500 = 4,1 %.
5. Ошибка на пике — промах в самом большом месяце окна. Это сентябрь: 700 ÷ 11 300 = 6,2 %.

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

## Как устроена проверка {#how}

### Как считается WAPE {#wape}

![Три месяца: факт 1 000, 1 500 и 100 заказов, прогноз 1 100, 1 400 и 150. Промахи 100, 100 и 50 — WAPE 9,6 %, а средний процент промаха вышел бы 22 % из-за маленького третьего месяца](https://marfor.pro/docs/img/fc-wape.png)

WAPE — сумма промахов ÷ сумма факта. Промахи 100 + 100 + 50 = 250 заказов из 2 600, WAPE = 9,6 %. Средний процент промаха по месяцам — (10 + 6,7 + 50) ÷ 3 = 22 %: его раздувает маленький третий месяц, хотя там ошибка всего 50 заказов. WAPE взвешивает промах объёмом.

Цвет на экране: WAPE до 15 % — зелёный, 15–25 % — жёлтый, от 25 % — красный. Ошибка на пиках: до 20 % — зелёная, 20–40 % — жёлтая, от 40 % — красная.

### Три окна проверки {#windows}

![Три окна проверки на истории из двух лет: последние 6 месяцев, те же 6 месяцев годом раньше и последний пиковый месяц — декабрь 2025 года. В каждом окне прогноз строится по истории до окна и сравнивается со спрятанными месяцами](https://marfor.pro/docs/img/fc-backtest-windows.png)

Одного окна мало: последние месяцы могли оказаться удобными. Поэтому способ проверяется несколько раз.

- **Последние 6 месяцев.** Так при помесячной истории от двух лет. Если история короче, прячется около 30 % её длины. На дневных данных — последние 60 дней, на недельных — 12 недель.
- **Те же месяцы годом раньше.** Только если истории не меньше двух лет.
- **Пиковые месяцы.** Для каждого месяца выше ×1,3 к среднему берётся его последний раз в истории: прогноз строится по данным до него и сравнивается с этим одним месяцем.

### Как выбирается способ {#winner}

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

| Название на экране | Как считает |
|---|---|
| Seasonal Naive (52w) | тот же период год назад, без роста |
| YoY + trailing growth | прошлый год × рост последних ~6 месяцев |
| YoY + monthly growth | прошлый год × свежий рост за 3 месяца |
| YoY + monthly + weekday | то же для дневных данных: тот же день недели год назад × рост |
| Seasonal profile (monthly indices) | середина последнего года без сезонности × рост × коэффициент месяца |
| RF aggregate (YoY-anchor) | лес решающих деревьев (Random Forest) по прошлым значениям и календарю |
| Ensemble (monthly + RF) | в основном «прошлый год × рост», с небольшой долей леса |

Лес и смесь проверяются только в тех окнах, где до окна есть хотя бы два года помесячной истории (по дням — 395 дней).

## Что это значит для решений {#decisions}

- **Смотрите на «WAPE backtest», а не только на «WAPE validation».** Validation — одно окно, последние месяцы. Если оно заметно лучше среднего по окнам, последние месяцы просто оказались удобными.
- **Низкий WAPE не обещает точного будущего.** Проверка показывает, как способ повторяет прошлое. Новых акций, каналов и цен в ней нет.
- **WAPE красный — ищите причину в данных:** короткая история, выброс или сбой в последних месяцах, неполный последний месяц, слишком мелкие срезы. Что поправить — в [Настройках прогноза](https://marfor.pro/docs/forecast/settings).

## Где это видно в MARFOR {#in-marfor}

Шаг «Обучение» → блок «Проверка на контрольной выборке»: «WAPE validation» с подписью «последние 6 мес.», «WAPE backtest» — «среднее по окнам», «Ошибка на пиках» и «Модель». На графике — «Обучающая выборка» серым, «Факт (контрольная)» синим и «Прогноз модели» красным пунктиром. Подробно — [Шаг «Обучение»](https://marfor.pro/docs/forecast/screen-training).

У модели MMM своя проверка, на скрытых месяцах: [Когда модели можно верить](https://marfor.pro/docs/how-it-works/model-trust/checklist).

## Ограничения {#limits}

- «Применить и переобучить» в блоке «AI-рекомендации» меняет только цифры проверки. Прогноз на будущее считается без рекомендаций: [Поменяли настройку, а прогноз не изменился](https://marfor.pro/docs/forecast/troubleshooting/settings-no-effect).
- При «Месяцы» на дневных данных проверка на шаге «Обучение» включает неполный последний месяц, а сам прогноз его отрезает. Если месяц не закончен, WAPE на экране может выйти хуже, чем у прогноза на самом деле.
- Ошибка на пиках — промах в самом большом периоде окна, а он не обязательно пиковый месяц года.

## Для любознательных {#math}

> WAPE = Σ |факт − прогноз| ÷ Σ факт × 100 %

> ошибка на пике = |прогноз − факт| ÷ факт × 100 % в периоде с наибольшим фактом

Анализ роста и сезонности на каждом окне считается только по истории до окна. Иначе способ «подглядел» бы спрятанные месяцы и проверка была бы слишком оптимистичной.

## Связанные

- [Из чего складывается прогноз: прошлый год, рост и сезонность](https://marfor.pro/docs/how-it-works/forecast/components)
- [Шаг «Обучение»: как читать проверку прогноза](https://marfor.pro/docs/forecast/screen-training)
- [Горизонт прогноза: почему дальше 12 месяцев — только ориентир](https://marfor.pro/docs/how-it-works/forecast/horizon)
- [Проверки модели: светофор](https://marfor.pro/docs/how-it-works/model-trust/checklist)
