Causal Inference: как оценивать эффект, когда A/B — не вариант (Ч. 3)

IT и разработка 08.03.2026 · 👁 657 просмотров
Causal Inference: как оценивать эффект, когда A/B — не вариант (Ч. 3) Сегодня разберем еще один популярный инструмент — Causal Impact (далее CI ), он же синтетический контроль на основе прогноза Идея метода Мы строим прогноз того, как вела бы себя метрика, если бы изменения не произошло, и сравниваем этот прогноз с фактом (в факте изменения есть). То есть CI — это способ построить контрфакт через модель временного ряда. => Эффект = Факт − Прогноз В чем задача, которую решает CI ❓ Представим ситуацию: ➖ фичу раскатили сразу на всю аудиторию ➖ маркетинговую кампанию запустили без теста ➖ минимальную сумму заказа внедрили на весь маркетплейс ➖ регулятор изменил ставку, тариф, правило Контрольной группы нет, но нам нужно ответить на вопрос: 👉 «А что было бы с метрикой, если бы изменений не произошло?» Как работает CI ❓ 1 Берём длинную историю данных до вмешательства 2 Обучаем модель, которая учится на: тренде, сезонности, внешних факторах (если есть ковариаты) 3 Строим прогноз на период изменения — пытаемся прогнозировать ситуацию в "мире", где вмешательства как будто бы не было 4 Сравниваем прогноз с фактическими значениями Если факт стабильно выходит за ДИ прогноза — скорее всего, изменение действительно повлияло. Что происходит “под капотом” ❓ Классическая реализация CI основана на BSTS ( Bayesian Structural Time Series) — это класс байесовских моделей временных рядов. Модель строит распределение прогнозов и оценивает неопределенность, из которого затем считается эффект и доверительные интервалы. Реализация в R — пакет CausalImpact (Google), в Python есть — pycausalimpact . Но можно применять любые модели временных рядов, например: ➖ ARIMA / SARIMA (statsmodels) ➖ Prophet (prophet) ➖ модели из darts, gluonts, pmdarima ➖ ML с лагами (XGBoost, LightGBM) Также можно реализовать логику вручную через statsmodels, sklearn или любые TS-фреймворки. Принцип один: обучаем модель на pre-period → прогнозируем period → сравниваем прогноз и факт. Если в модели используются ковариаты (внешние факторы), они должны: ➖ хорошо коррелировать с целевой метрикой ➖ не быть напрямую затронуты вмешательством Иначе модель может “встроить” эффект внутрь прогноза и занизить итоговую оценку. Когда метод применим ❓ ➖ Есть длинная история наблюдений ДО вмешательства ➖ Модель хорошо прогнозирует pre-period (нет систематического смещения, разумный ДИ) ps По хорошему ошибка прогноза на pre-period должна быть существенно меньше предполагаемого эффекта. ➖ Можно подобрать адекватные ковариаты ➖ Вмешательство произошло в конкретный момент времени Ограничения метода ➖ Нет контроля за внешними событиями, если они совпали по времени ➖ Сложно отделить эффект нескольких вмешательств Пример ЦБ резко поднял ключевую ставку — мы хотим понять, как это повлияло на объем кредитов. Контрольной страны нет, группы сравнивать не с кем. Мы строим модель по данным до повышения ставки, прогнозируем объем кредитов без повышения и сравниваем с фактом. Разница — и есть оценка эффекта. ❤️‍🔥 Подписывайтесь и поддержите канал бустом ↗️ Менторю и помогаю выйти на оффер ❓ Все ли понятно? А если работали с Causal Impact — расскажите про ваши кейсы 👇 @data_driven_bogdan
Откликнуться в Telegram →

⚠️ Никогда не платите «за оформление» или «гарантию трудоустройства» — это признак мошенников. Работа ТРУ не несёт ответственности за содержание вакансии.

🇮🇱 Не нашли подходящую зарплату? В Израиле платят от $3000 Без языка и опыта · жильё и легализация под ключ · официально Смотреть вакансии →