Causal inference: как отличить корреляцию от причинности
sales с колонками category, amount. Какой запрос корректен?Что такое causal inference
Causal inference (причинно-следственный вывод) — набор методов, которые позволяют оценить ВЛИЯНИЕ одной переменной на другую, а не просто корреляцию.
Корреляция говорит: «A и B связаны». Causal inference отвечает: «изменение A вызывает изменение B, и вот на сколько».
Это принципиально разные вопросы. Классический пример: мороженое и утопления коррелируют. Но первое не вызывает второе — оба растут летом. Causal inference помогает отделить реальное влияние от скрытых факторов (конфаундеров).
Зачем это аналитику
Бизнес-решения требуют причинного знания. «Если мы увеличим X — что произойдёт с Y?» Это всегда причинный вопрос.
Примеры:
- Повысим ли retention, если добавим новую фичу?
- На сколько вырастут продажи от скидки 10%?
- Сократит ли churn персонализация email?
- Увеличит ли онбординг retention новых пользователей?
Без causal inference отвечаете вслепую или на основе корреляций, которые часто обманчивы.
Фундаментальная проблема
Невозможно наблюдать контрфактуальный исход (counterfactual). Клиенту показали рекламу, он купил. Что бы случилось, если бы не показали? Не знаем.
Причина, по которой causal inference сложен: нужно оценить, что БЫ произошло, в альтернативной реальности.
Решение — эмулировать контрфактуальный исход через:
- Рандомизацию. AB-тест — золотой стандарт.
- Квази-экспериментальные методы. Когда AB нельзя.
- Наблюдательные исследования. С осторожностью.
Randomized Controlled Trial (AB-тест)
Случайное распределение на воздействие (treatment) и контроль. Так как назначение случайно, группы в среднем одинаковы. Разница в исходе — чистый причинный эффект.
Плюсы: нет смещения. Простой вывод.
Минусы:
- Не всегда возможно (этика, цена, время).
- Не подходит для стратегических решений (нельзя AB-тестить «нанять CEO»).
- Проблема мощности теста — малый эффект трудно обнаружить.
Для продукта AB-тест — основной инструмент causal inference.
Проблемы наблюдательных данных
Если есть только наблюдательные данные (не эксперимент), возникают проблемы:
Конфаундеры. Переменные, которые влияют и на treatment, и на исход. Игнорирование искажает оценку.
Selection bias. Treatment не случаен — люди сами выбирают. Обычно те, кто получил воздействие, отличаются от остальных.
Обратная причинность. Не ясно, что причина, что следствие. Богатые люди покупают книги или читающие богатеют?
Медиаторы. Переменная на пути от treatment к исходу. Контроль за ней искажает оценку.
Difference-in-Differences (DiD)
Метод для ситуаций, где есть естественный эксперимент. Сравниваете изменение исхода в treated-группе и контрольной группе до и после воздействия.
Предположение: без treatment обе группы менялись бы параллельно (parallel trends assumption).
DiD = (Y_after_treated - Y_before_treated) - (Y_after_control - Y_before_control)Пример: в одном городе повысили минимальную зарплату, в соседнем — нет. Сравнение изменения занятости в обоих — DiD-оценка эффекта минималки.
Propensity Score Matching (PSM)
Мэтчим treated и control по их «склонности» (вероятности) получить воздействие, учитывая наблюдаемые признаки.
Процесс:
- Строим модель
P(treatment | features)— propensity score. - Для каждого treated-юзера находим control с близким score.
- Сравниваем исходы.
Идея: если у двух юзеров одинаковая propensity, но один получил treatment, другой нет — разница исходов приближает причинный эффект.
Ограничение: только наблюдаемые конфаундеры. Скрытые — всё ещё проблема.
Instrumental Variables (IV)
Инструмент — переменная, которая:
- Влияет на treatment.
- Не влияет на исход напрямую (только через treatment).
- Не связана со скрытыми конфаундерами.
Классический пример: рандомизированная лотерея для военного призыва как инструмент для оценки эффекта службы на доходы.
Используются для:
- Оценки, когда treatment эндогенно.
- Causal inference без рандомизации.
В продуктовой аналитике IV редко доступны — трудно найти хорошие инструменты.
Regression Discontinuity (RDD)
Когда treatment определяется пороговой переменной, сравниваем субъектов чуть выше и чуть ниже границы.
Пример: студенты с баллом 70 получают стипендию, с 69 — нет. Предполагается, что 69 и 70 одинаковы «в среднем». Разница в будущих доходах — причинный эффект стипендии.
В продуктах: «бесплатная подписка для первых 1000 юзеров». Пользователь 1000 vs 1001 — хороший естественный эксперимент.
Synthetic Control
Для кейсов с одним treated-юнитом. Создаём «синтетический контроль» как взвешенную комбинацию невоздействованных юзеров так, чтобы исходы до treatment максимально совпадали.
Типичное применение: оценка эффекта смены политики в одной стране или регионе. Используют взвешенную комбинацию других стран как контрфактуал.
В бизнесе: запустили фичу в одной стране. Синтетический контроль из комбинации других стран показывает, что было бы без запуска.
Продвинутая статистика и causal inference — мощный навык для senior-аналитика. В тренажёре Карьерник есть задачи по AB-тестам, статистике и экспериментам.
Directed Acyclic Graphs (DAG)
Графическая модель причинных допущений. Узлы — переменные, стрелки — причинные связи.
Помогает понять:
- Какие переменные включить как контроли.
- Какие НЕ включать (медиаторы, коллайдеры).
- Стратегию идентификации.
Классическая ошибка — контролировать коллайдер. Это создаёт ложную корреляцию между его родителями.
Judea Pearl — главный популяризатор DAG в causal inference. Его книга «The Book of Why» — вводная.
Average Treatment Effect (ATE) vs ATT vs LATE
Разные величины:
ATE (Average Treatment Effect). Средний эффект treatment на всю популяцию.
ATT (Average Treatment Effect on Treated). Только на тех, кто получил воздействие.
LATE (Local Average Treatment Effect). На «compliers» — тех, кто меняет поведение на основе инструмента.
В рандомизированных экспериментах все эти величины обычно равны. В наблюдательных исследованиях — отличаются.
Для бизнеса обычно важен ATE (если будете давать treatment всем) или ATT (если смотрите прошлые действия).
Python-библиотеки
Инструменты для causal inference:
- DoWhy (Microsoft) — единый фреймворк для causal inference.
- EconML — causal inference на основе ML.
- CausalML (Uber) — uplift-моделирование.
- statsmodels — классические методы (IV, RDD).
- CausalPy — байесовский causal inference.
Пример DoWhy:
from dowhy import CausalModel
model = CausalModel(
data=df,
treatment='treatment',
outcome='outcome',
common_causes=['age', 'income', 'tenure']
)
estimand = model.identify_effect()
estimate = model.estimate_effect(
estimand,
method_name="backdoor.propensity_score_matching"
)Uplift-моделирование
Специальный случай causal ML — предсказание индивидуального причинного эффекта.
Вместо «в среднем treatment работает» отвечает «на этом пользователе treatment даст +X».
Позволяет персонализировать воздействия:
- Retention-письма — только тем, кому это поможет.
- Скидки — только тем, кто без них не купит.
- Выкатка фич — только тем, кому нужно.
Методы: T-Learner, S-Learner, X-Learner, Causal Forests.
Валидация причинных оценок
Три основных теста:
Refutation tests. Меняем данные (добавляем случайный конфаундер, заменяем treatment на плацебо). Если оценка значительно меняется — метод нестабилен.
Анализ чувствительности. Насколько оценка устойчива к скрытым конфаундерам? Метод Rosenbaum bounds.
Внешняя валидация. Если есть «истинное» причинное знание (например, из AB-теста в другой области), проверяем, совпадает ли наблюдательная оценка с экспериментальной.
Типичные ошибки
Выдавать корреляцию за причинность. «Пользователи, которые используют фичу X, имеют retention 80%» — не значит, что X вызывает retention. Может быть наоборот (удержавшиеся пользователи находят фичу X).
Контролировать коллайдеры. Добавляете переменную, которая зависит и от X, и от Y. Создаёт ложную корреляцию.
Игнорировать selection bias. Сравнение «подписавшихся на Pro» и «free-пользователей» без учёта самоотбора.
P-hacking причинных выводов. Много методов → выбираете тот, который даёт «красивый» результат. Фиксируйте метод заранее.
Излишняя уверенность в DAG. DAG отражает допущения. Если допущения неверны, ответ неверен.
Читайте также
- AB-тесты основы
- Difference-in-Differences
- Propensity Score Matching
- Uplift modeling
- Selection bias простыми словами
- Парадокс Симпсона
- Guardrail-метрики в A/B-тестах
FAQ
Можно ли делать causal inference без эксперимента?
Да, с сильными допущениями. Но выводы менее надёжны, чем в рандомизированных экспериментах. Всегда предпочтительно A/B, если возможно.
Что читать для начала?
«The Book of Why» (Judea Pearl) — популярное введение. «Causal Inference: The Mixtape» (Scott Cunningham) — учебник с примерами.
Нужен ли machine learning для causal inference?
Не обязательно. Классические методы (регрессия, DiD) работают. ML полезен для гетерогенных эффектов (uplift) и сложных данных.
Causal ML и обычное ML — разница?
Обычное ML оптимизирует точность предсказаний. Causal ML оптимизирует точность оценки причинного эффекта — другая задача.