Красный флаг: causal impact по истории метрики без этих 7 проверок — это сезонность, замаскированная под “эффект релиза”.
Сценарий узнаваемый: релиз в понедельник, график “подрос”, модель рисует красивый разрыв, и в слайде появляется “+X%”. А потом оказывается, что пришли праздники, сменился канал трафика или починили трекинг. Цена ошибки простая: продуктовые решения, премии, приоритизация и спор с командой на основе фантомного эффекта.
Почему так ломается: causal impact опирается на предположение, что до вмешательства метрика ведёт себя “как обычно”, а после — единственное, что меняется, это вмешательство. В реальности меняется всё вокруг: календарь, состав пользователей, бюджеты, сбор событий. И если модель это не видит, она честно объяснит чужие сдвиги вашим релизом.
Минимальный набор sanity-checks, чтобы не самообмануться:
- Стабильность до вмешательства: нет явного дрейфа тренда, “качелей” из-за разовых акций, а качество подгонки на pre-period не выглядит как натягивание совы на глобус.
- Контрольные ряды: они должны ходить вместе с целевой метрикой до релиза и иметь понятную причину не быть затронутыми релизом. Если контроль “случайный” — вывод случайный.
- Календарные эффекты: праздники, выходные, дни зарплаты, распродажи, запуск маркетинга. Либо учитываете их явно, либо не делаете вид, что их не было.
- Изменения трекинга: новые события, смена схемы атрибуции, фильтры ботов, семплинг, задержки загрузки. Любая правка в сборе данных может выглядеть как “эффект продукта”.
- Плацебо-тесты: сдвиньте “дату релиза” на период, где ничего не происходило, и проверьте, что модель не находит эффект из воздуха. Или прогоните на метрике, которую релиз точно не мог затронуть.
Две проверки, которые чаще всего “забывают”, а зря: чистка выбросов и дыр в данных (один инцидент в логах легко превращается в “эффект”), и мониторинг структурных сдвигов (резко поменялся микс стран, платформ, каналов, тарифов — и ваша историческая зависимость распалась).
В правильной практике causal impact — это не магическая кнопка, а дисциплина: фиксируете окно вмешательства, заранее выбираете контролы, прогоняете плацебо, документируете изменения трекинга, и только потом обсуждаете эффект. Граница применимости простая: когда нет хорошего pre-period или контролей, или влияние мгновенное и точечное — лучше честно признать неопределённость и не подменять эксперимент “умным” графиком.