Прогнозирование KPI
Прогнозирование KPI
Прогнозирование KPI — это не «угадывание графика», а управляемый контур: корректные данные → адекватная модель → сценарии и интерпретация → операционный мониторинг. Ниже — системный чек-лист и архитектура, которые масштабируются от простых рядов до портфельных, иерархических и вероятностных прогнозов.
1) Постановка задачи
Что прогнозируем? уровень, дельту, квантиль, интервал, событие (спайк).
Горизонт/шаг: часы/дни/недели/месяцы; rolling-окна для краткосрочного контроля.
Единица: продукт/бренд/страна/платформа/канал.
Бизнес-контекст: управляемые рычаги (промо, цены, релизы) и ограничения (SLA, RG/комплаенс).
Ценности и риски: стоимость пере/недопрогноза, штраф за ложные алерты.
2) Данные и подготовка
Зерно и календарь: единый календарь (праздники/выходные/зарплатные дни), локаль времени (UTC + локальные представления).
Агрегаты и консистентность: DAU/WAU/MAU, GGR/Net, ARPPU, удержание (D7/D30), конверсии воронки, latency p95 — хранить как отдельные витрины с явными формулами.
Регрессоры (X): промо/бонусы, кампании, изменение цен, контент-релизы, спорт-события, курсы валют, погода (если релевантно).
Аномалии и пропуски: маркируем, не удаляем слепо; для событий — флаги «one-off».
Стабильность схем: точки смен версий продукта/измерений фиксируем как события.
3) Типы KPI и особенности моделирования
Аддитивные объемы (выручка, депозиты): хорошо работают ETS/ARIMA/GBM/Temporal-NN.
Доли и конверсии: логит-линейки, бета-биномиальные модели, регрессия с ограничениями [0,1].
Коэффициенты и отношения (ARPPU): моделируем числитель и знаменатель отдельно, затем композицию.
Интермиттирующие ряды (редкие события, chargeback): Croston/SBA/TSB, zero-inflated подходы.
Иерархии (страна→бренд→канал): reconciliation: Bottom-Up, Top-Down, MinT.
Композитные KPI (например, GGR): дисагрегируйте драйверы: трафик × конверсия × частота × средний чек.
4) Модели: от базовых к продвинутым
Бейзлайны: Naive, Seasonal Naive, Drift — нужны для честной оценки.
Классика рядов: ETS/ARIMA/SARIMA; Prophet для быстрых сезонностей и праздников.
Регрессоры: ARIMAX/ETS+X, динамические регрессии, TBATS для множественных сезонностей.
Градиентный бустинг/табличные NN: LightGBM/XGBoost/TabNet с лаг-фичами, статистиками окон, календарем и промо.
Темпоральные NN: N-Beats, TFT (Temporal Fusion Transformer) — для мульти-серий и богатых X.
Вероятностные: квантильная регрессия (pinball loss), Gaussian/Student-t, quantile forests/GBM.
Причинность и сценарии: DiD/SC для оценки эффекта промо; uplift для планирования «что будет, если включим».
5) Декомпозиция и признаки
T+S+R: тренд + сезонность (день недели/месяц/час) + остаток.
Лаги и окна: `y_{t-1..t-28}`, скользящие средние/стд, эксп. сглаживание; «праздничные хвосты».
Категориальные: страна/канал/OS как эмбеддинги/one-hot.
События: релизы/акции/баннеры — бинарные/интенсивности.
Leakage-контроль: только информация «из прошлого».
6) Оценка и backtesting
Сплиты: rolling/expanding origin; блокируем сезонность (кратные недели/месяцы).
Метрики уровней: MAE, RMSE, MAPE/sMAPE, WAPE (надежнее при нулях).
Метрики вероятностных: pinball loss (q=0.1/0.5/0.9), CRPS, калибровка интервалов (coverage, SHARP).
Метрики событий/спайков: precision/recall по детекту «выброса».
Бейзлайн-правило: модель должна выигрывать у Seasonal Naive.
Стабильность: дисперсии ошибок по сегментам/праздникам; out-of-time (последние N недель).
7) Иерархический прогноз и согласование
Bottom-Up: суммируем «низ»; прост, но шумно.
Top-Down: распределяем по историческим долям.
MinT (optimal reconciliation): минимизирует ковариацию ошибок — лучший компромисс при богатом «низе».
Практика: обучаем базовые модели на каждом уровне, затем согласуем.
8) Вероятностные прогнозы и интерпретация
Квантили: q10/q50/q90 → планирование «пессимист/база/оптимист».
Интервалы: целевое покрытие (например, 80%/95%); проверяем калибровку.
Стоимость риска: планируйте по условному VaR/expected shortfall для KPI с асимметричными потерями (недопрогноз спроса дороже перепрогноза, и наоборот).
9) Сценарное моделирование
Экзогенные сценарии: «без промо/с промо», «курс ±10%», «футбольный финал».
What-if: меняем X (интенсивность кампаний, лимиты, цены) → прогноз KPI и доверительные интервалы.
План-факт: мост (bridge) факторов: вклад сезонов, промо, цены, тренда, шока/инцидента.
10) Эксплуатационный контур и MLOps
Частота переобучения: краткосрочные KPI — ежедневно/еженедельно; месячные — T+1/T+3.
Слои/артефакты: фичестор (онлайн/офлайн паритет), реестр моделей, версии данных/формул KPI.
Мониторинг: WAPE/SMAPE по скользящему окну, покрытие интервалов, дрейф признаков (PSI), задержка фидов, SLA генерации.
Алерты: всплеск ошибки > порога, некалиброванные интервалы, разрушение сезонности.
Fail-safe: деградация → откат к Seasonal Naive/ETS; freeze-модели в праздничные пики.
Гистерезис: разные пороги включения/выключения «промо-регрессоров», чтобы не «мигать».
11) Специфика продуктовых и iGaming-KPI (примерная карта)
Трафик/активность: DAU/WAU/MAU, с учетом матч-дней/релизов игр.
Монетизация: GGR/Net, депозиты, ARPU/ARPPU — сильная сезонность «вечер/выходные/праздники».
Удержание: D1/D7/D30 — лучше прогнозировать как вероятность (логит) с календарем.
Риски: chargeback rate (интермиттирующий), RG-индикаторы (политики/праздники), антифрод-сигналы.
Операции: latency p95/p99, ошибки транзакций — совместимые с аномалиями/каузальными влияниями релизов.
12) Шаблоны артефактов
A. Паспорт прогноза KPI
KPI/код: `GGR_EUR` (версия формулы)
Горизонт/шаг: 8 недель, день
Иерархия: бренд→страна→платформа
Регрессоры: `promo_spend`, `fixtures_flag`, `holiday`, `fx_rate`
Модель: `TFT_v4` (q10/q50/q90) + MinT reconciliation
Метрики: WAPE (абс. целевой ≤ 8%), coverage 90%-интервала ≥ 85%
SLO: генерация ≤ 10 мин после 06:00 лок.; лаг данных ≤ 1 ч
Владельцы: Monetization Analytics; дата ревизии: 2025-10-15
B. Decision-ready отчет (скелет)
Заголовок: «GGR: прогноз 8 недель, q10/q50/q90»
Ключ: риск недопрогноза на 3-й неделе 22% (ES=-€X)
Драйверы: + сезонность выходных, + эффект промо, − FX
Рекомендации: сместить бюджет на недели с низким риском, поднять лимиты на каналы А/В
C. Псевдо-код пайплайна (скоротечно)
python
1) load data y, X, calendar = load_series_and_regressors()
2) build features ds = make_lags_and_windows(y, X, lags=[1,7,14,28], roll=[7,14,28])
ds = add_calendar_features(ds, calendar) # holidays, dow, month_end
3) split cv = rolling_backtest(ds, folds=6, horizon=28)
4) models m1 = ETSx(). fit(ds. train) # baseline m2 = LightGBMQuantiles(q=[0. 1,0. 5,0. 9]). fit(ds. train)
5) evaluate scores = evaluate([m1,m2], cv, metrics=['WAPE','pinball'])
6) retrain full + reconcile forecasts = reconcile_minT(train_and_forecast([m2], hierarchy))
7) report + push publish(forecasts, scores, sla=timedelta(minutes=10))
13) Частые ошибки и анти-паттерны
MAPE при нулях: используйте WAPE/sMAPE.
Среднее средних: агрегируйте числители/знаменатели отдельно.
Игнор праздников/релизов: добавляйте регрессоры и «послевкусие» даты.
Лики: фичи с будущей информацией (target leakage).
Слишком «умные» модели без бейзлайна: сначала победите Seasonal Naive.
Некалиброванные интервалы: «красивы, но пусты» — проверяйте coverage.
Несогласованность иерархий: без reconciliation общий план рассыпается.
Отсутствие fail-safe: в пике праздников модель «висит», планы рушатся.
14) Мониторинг в проде
Качество: WAPE rolling, pinball по квантилям, coverage 80/95%.
Стабильность: PSI по ключевым признакам, дрейф сезонности.
Операции: время генерации, лаг данных, % фолбэков.
Алерты: правило «3σ» на ошибке, нарушение SLO, разлад иерархий.
Рунибук: freeze-режим, отключение «шумных» регрессоров, форс-перетрен.
15) Чек-лист перед релизом
- KPI определен и версионирован (семантический слой)
- Календарь/праздники/регрессоры согласованы и протестированы
- Бейзлайны (Naive/Seasonal) побеждены на backtesting
- Выбраны метрики (WAPE/pinball) и целевые пороги
- Интервалы калиброваны; сценарии «пессимист/база/оптимист» собраны
- Иерархии согласуются (MinT/Top-Down)
- MLOps: расписание тренировки, мониторинг, алерты, fail-safe
- Документация: паспорт прогноза, SQL/фиче-рецепты, рунибук инцидентов
Итог
Прогнозирование KPI — это архитектура решений: четкие определения, богатый календарь и регрессоры, честные бейзлайны, вероятностные прогнозы, иерархическое согласование, стабильный MLOps и сценарное планирование. Такой контур дает правдоподобные ожидания, управляемые риски и «decision-ready» отчеты, которые напрямую питают планирование, маркетинг, операции и комплаенс.