A/B-тесты и causal inference на собеседовании Data Scientist

Зачем DS спрашивают про эксперименты

A/B-тесты и causal inference — фундамент работы Data Scientist в продуктовой компании. Без эксперимента невозможно доказать, что модель работает: offline-метрика может быть отличной, а в A/B — ничего. DS должен говорить на этом языке с PM, с командой и с executive.

В отличие от PM-собеса, где A/B на уровне «p-value < 0.05», от DS ждут глубже: CUPED, switchback, sequential testing, регрессия на причинно-следственные эффекты, DiD, propensity score matching. На собесе Data Scientist это часть ML-теории или отдельный раунд.

Базовая A/B-теория

Размер выборки

Зависит от: baseline, MDE, alpha, power.

Формула (для бинарной метрики, two-sided test):

  • n ≈ 16 × p(1-p) / MDE² (упрощённо, для alpha=0.05, power=0.8)

Если baseline 10% и хотим детектировать абсолютный лифт 1%: n ≈ 16 × 0.1 × 0.9 / 0.0001 = 14400 на каждую группу.

Подробнее — размер выборки A/B.

P-value, MDE, power

P-value — вероятность увидеть такой эффект (или сильнее), если нулевая гипотеза верна. P < alpha → отвергаем H0.

MDE (Minimum Detectable Effect) — минимальный эффект, который можно обнаружить при данной выборке. MDE падает с ростом выборки.

Power (мощность) — вероятность обнаружить эффект, если он есть. Обычно 0.8.

Подробнее — p-value простыми словами.

Типичные ловушки

  • Peeking. Смотришь результат до окончания эксперимента — повышает false positive. Решение: фиксировать длительность или sequential testing.
  • Sample Ratio Mismatch (SRM). Планировал 50/50, получилось 47/53 — что-то сломано. Эксперимент с SRM нельзя интерпретировать.
  • Novelty effect. Юзер реагирует на новизну, эффект пропадает через 2-4 недели.
  • Multiple testing. Тестируешь 20 метрик с alpha=0.05 → 1 будет «значимой» случайно. Bonferroni, FDR.
  • Сетевые эффекты. В соцсети action одного юзера влияет на других → control «загрязнён». Cluster randomization, switchback.

CUPED — снижение дисперсии

CUPED (Controlled-experiment Using Pre-Experiment Data) — метод снижения variance метрики через pre-experiment covariate.

Идея: если у юзера до эксперимента метрика была X, она скорее всего и в эксперименте будет около X. Учёт pre-эксперимента уменьшает «шум» — те же результаты при меньшей выборке (или больше power при той же).

Эффект: обычно 20-50% reduction в variance. То есть либо в 2× меньше нужна выборка, либо в √2× меньше MDE детектируется.

Когда полезен: метрика стабильна во времени (revenue per user, time spent). Не подходит для метрик, которые сильно меняются (конверсия в первую покупку — у новых юзеров pre-data нет).

Подробнее — CUPED для снижения дисперсии.

Switchback и сетевые эффекты

Когда юзеры влияют друг на друга (соцсети, маркетплейсы, дороги), классический A/B загрязнён.

Решения:

  1. Cluster randomization — рандомизация на уровне групп (города, dark stores, классов).
  2. Switchback — попеременно включаем/выключаем фичу во времени. Сравниваем периоды.
  3. Geo-experiments — отдельные регионы как контроль и тест.

Trade-off: меньше эффективная выборка → нужны больше времени или больше регионов.

Bayesian A/B testing

Альтернатива frequentist A/B. Считаем вероятность того, что вариант B лучше варианта A, на основе данных и prior.

Преимущества:

  • Прямой ответ на бизнес-вопрос: «P(B > A) = 90%»
  • Можно подглядывать без потери валидности
  • Естественная инкорпорация prior knowledge

Недостатки:

  • Зависит от выбора prior
  • Сложнее объяснить менеджеру
  • Не всегда быстрее frequentist

Подробнее — bayesian A/B testing.

Causal inference: за пределами A/B

Когда A/B невозможен (compliance, дорого, долго), causal inference даёт альтернативы.

Difference-in-Differences (DiD)

Сравниваем изменение метрики в treatment vs control с момента вмешательства. Ключевое допущение — parallel trends (без вмешательства группы шли бы параллельно).

Пример: новая функция выкатилась в Москве, не выкатилась в Питере. DiD сравнивает рост метрики в Москве - рост в Питере = эффект функции (при условии что без неё трек был бы одинаков).

Подробнее — Difference-in-Differences.

Propensity Score Matching (PSM)

Если у нас есть данные об эффекте, но treatment был не рандомным (юзеры сами выбрали = self-selection), матчим treated с control по характеристикам.

Метод: обучить модель предсказания treatment (propensity score), матчить пары с близким score. Сравнить метрику в матченных парах.

Подробнее — Propensity Score Matching.

Instrumental variables (IV)

Если есть переменная Z, которая влияет на treatment X, но не напрямую на outcome Y (только через X) — её можно использовать как instrument.

Классический пример: лотерея военной службы как instrument для эффекта службы на образование (Angrist).

В практике DS — редкий случай, но в econ-задачах применяется.

Synthetic control

Конструируем «синтетический контроль» из weighted combination других единиц, который повторяет behavior treatment-единицы до вмешательства.

Применяется для региональных вмешательств: одна страна попробовала политику, другие — нет. Какова была бы динамика без политики?

Uplift modeling

Модели, которые предсказывают не «купит или нет», а «купит если воздействуем на него». Это про эффект интервенции для каждого индивидуального юзера.

Применяется в CRM, маркетинге: кому отправлять промо, чтобы максимизировать incremental purchase.

Подробнее — uplift modeling.

Типичные вопросы

«У нас A/B показал рост primary, падение revenue. Что делать?» Проверить: (1) был ли revenue в guardrail; (2) сегментация — может рост у одних, падение у других; (3) novelty effect — может стабилизируется. Решение зависит от business case.

«Когда CUPED не работает?» Метрика, у которой pre-период не предсказывает post (например, конверсия в первое действие для новых юзеров). Также если pre-период слишком короткий.

«Сетевые эффекты в соцсети — как тестировать?» Cluster randomization (рандомизация по социальным группам, а не юзерам) или switchback. Минус — меньше эффективная выборка.

«Как доказать причинность, если A/B не было?» Causal inference: DiD (если есть контрольная группа), PSM (если есть наблюдательные данные), synthetic control, regression discontinuity. Объяснить допущения каждого метода.

«Что такое treatment effect heterogeneity?» Эффект интервенции разный у разных подгрупп. Решение — uplift modeling, conditional average treatment effect (CATE).

Частые ошибки

  • Зубрить frequentist без bayesian. На senior-собесах ждут понимания обоих подходов
  • Игнорировать сетевые эффекты. В соцсети и маркетплейсе классический A/B врёт
  • Не учитывать длительность. A/B на 7 дней — рискованно. Novelty + сезонность ломают
  • Зубрить «p < 0.05». На уточнение «что значит p-value» — нужен корректный ответ
  • Игнорировать confounders. Любой observational analysis без учёта confounders — bias

FAQ

Какие методы causal inference обязательно знать?

DiD, PSM, regression with controls — must-know. Synthetic control, IV — желательно. Detailed RDD (regression discontinuity) — на senior.

Когда A/B не нужен?

(1) Обязательные изменения (compliance), (2) очевидные фиксы багов, (3) когда выборка слишком мала и эксперимент не имеет силы.

Сколько должен длиться A/B?

Минимум — длиннее недельного цикла (учесть weekday vs weekend). Лучше 2-4 недели для устранения novelty.

Чем DS-уровень A/B отличается от PM-уровня?

PM знает «как запустить A/B». DS знает «как спроектировать experiment platform, как сократить variance, как обработать сетевые эффекты, как использовать causal inference когда A/B невозможен».

Какие книги читать?

«Trustworthy Online Controlled Experiments» (Kohavi, Tang, Xu) — фундамент. «Causal Inference: The Mixtape» (Cunningham). «The Book of Why» (Pearl). Курсы по causal inference на Coursera.

Смотрите также