Байесовский A/B-тест — чем отличается от частотного

Коротко

В частотном A/B-тесте вы получаете p-value — вероятность данных при условии отсутствия эффекта. В байесовском — вероятность того, что вариант B лучше A. Второе гораздо ближе к тому, что на самом деле хочет знать продакт-менеджер. Байесовский подход даёт интуитивные результаты, позволяет останавливать тест раньше и работает при малых выборках — но требует выбора prior и больше вычислений.

Частотный vs байесовский: ключевая разница

Частотный подход отвечает на вопрос: «Если эффекта нет, насколько удивительны наши данные?» Байесовский — на вопрос: «Какова вероятность, что B лучше A, учитывая данные?»

Частотный Байесовский
Результат p-value, доверительный интервал Posterior-распределение, credible interval
Интерпретация «При H0 такие данные маловероятны» «Вероятность, что B лучше A — 94%»
Prior Не используется Задаётся до эксперимента
Ранняя остановка Нельзя без поправок (подглядывание раздувает ошибку I рода) Можно — posterior корректен в любой момент
Размер выборки Фиксируется заранее Можно не фиксировать
Вычисления Формулы, быстро MCMC или аналитика для сопряжённых, медленнее

Самое принципиальное: частотный p-value — это P(данные | H0), а байесовский подход даёт P(H1 | данные). Именно последнее интересует бизнес.

Байесовские основы: prior, likelihood, posterior

Теорема Байеса:

P(theta | data) = P(data | theta) * P(theta) / P(data)
  • Prior P(theta) — ваше представление о параметре до эксперимента. Например: «конверсия где-то в районе 10%, но я не уверен».
  • Likelihood P(data | theta) — вероятность наблюдать такие данные при заданном параметре.
  • Posterior P(theta | data) — обновлённое представление после наблюдения данных. Это и есть ответ.

Prior + данные = posterior. Чем больше данных, тем меньше влияние prior. При большой выборке байесовский и частотный подходы дают практически одинаковые результаты.

Credible interval vs confidence interval

Credible interval (доверительный интервал в байесовском смысле): 95% credible interval означает: «С вероятностью 95% истинное значение параметра лежит в этом интервале». Это буквально то, что люди думают, когда слышат «доверительный интервал».

Confidence interval (частотный): «Если повторять эксперимент бесконечно, 95% таких интервалов будут содержать истинное значение». Это корректная, но неинтуитивная формулировка. Конкретный CI либо содержит истинное значение, либо нет — вероятности тут нет.

На практике при неинформативном prior и большой выборке credible interval и confidence interval почти совпадают. Но интерпретация credible interval проще и честнее.

«Вероятность, что B лучше A» — то, что хочет бизнес

Главное преимущество байесовского подхода — результат в формате, понятном стейкхолдерам. Вместо «p-value = 0.03, при уровне значимости 0.05 мы отклоняем нулевую гипотезу» вы говорите: «Вероятность того, что новый вариант лучше — 97%».

Эта метрика называется Probability to Be Best (PBB). Она вычисляется из posterior-распределений: сэмплируете из posterior обоих вариантов и считаете долю случаев, когда B > A.

Порог для принятия решения — не 0.05, а, скажем, 0.95 или 0.90. Его выбирают исходя из цены ошибки, как и alpha в частотном подходе.

Преимущества байесовского подхода

Ранняя остановка без штрафа. В частотном подходе подглядывание в результаты до окончания теста раздувает false positive rate. В байесовском posterior валиден в любой момент — можно остановить тест, когда PBB достигла порога. Это экономит трафик и время.

Интуитивные результаты. «94% вероятность, что B лучше» понятнее, чем «p = 0.04». Меньше шансов, что результат будет неправильно проинтерпретирован.

Работает при малых выборках. Если у вас мало трафика, prior «помогает» — добавляет информацию, которой в данных ещё недостаточно. С частотным подходом при малой выборке мощность теста будет низкой и вы просто ничего не обнаружите.

Можно учесть предыдущий опыт. Если вы уже запускали похожий тест и знаете приблизительную конверсию — это можно формализовать в prior.

Недостатки

Выбор prior. Если prior неадекватный, posterior будет смещён — особенно при малой выборке. На практике для A/B-тестов обычно используют слабоинформативный prior (Beta(1,1) = uniform, или Beta(0.5, 0.5) = Jeffreys), и проблемы не возникает. Но на собеседовании нужно знать, что prior — это субъективный компонент.

Вычислительная сложность. Для простых метрик (конверсия) можно использовать сопряжённую пару Beta-Binomial и считать аналитически. Для сложных метрик (средний чек, revenue) нужны MCMC-методы (PyMC, Stan), которые считаются минуты, а не миллисекунды.

Менее распространён. Большинство калькуляторов и платформ (Optimizely, VWO) по умолчанию используют частотный подход. Реализовывать байесовский часто приходится самостоятельно.

Python: байесовский A/B-тест для конверсии (Beta-Binomial)

Для бинарных метрик (конверсия, клик, покупка) всё считается без MCMC — через сопряжённую Beta-Binomial модель.

import numpy as np
from scipy import stats

# Данные теста
visitors_a, conversions_a = 5000, 500   # 10.0%
visitors_b, conversions_b = 5000, 560   # 11.2%

# Prior: Beta(1, 1) — неинформативный (uniform)
alpha_prior, beta_prior = 1, 1

# Posterior: Beta(alpha + conversions, beta + non-conversions)
post_a = stats.beta(alpha_prior + conversions_a,
                    beta_prior + visitors_a - conversions_a)
post_b = stats.beta(alpha_prior + conversions_b,
                    beta_prior + visitors_b - conversions_b)

# Probability that B > A (сэмплирование)
n_samples = 100_000
samples_a = post_a.rvs(n_samples)
samples_b = post_b.rvs(n_samples)
prob_b_better = (samples_b > samples_a).mean()

print(f"P(B > A) = {prob_b_better:.3f}")
# P(B > A) = 0.974

# 95% credible interval для разности
diff = samples_b - samples_a
ci_low, ci_high = np.percentile(diff, [2.5, 97.5])
print(f"95% credible interval для разности: "
      f"[{ci_low:.4f}, {ci_high:.4f}]")
# 95% CI: [0.0024, 0.0220]

Posterior обновляется аналитически: Beta(1 + 560, 1 + 4440). Никакого MCMC, считается мгновенно. Вероятность 97.4%, что B лучше — это куда информативнее, чем «p = 0.051, незначимо» из частотного теста на тех же данных.

Когда какой подход использовать

Частотный подход — если в компании принята частотная методология, есть готовая платформа (Optimizely, internal tool), выборка большая и вы можете ждать фиксированный срок. Результат понятен коллегам, проще защитить перед стейкхолдерами, привыкшими к p-value.

Байесовский подход — если трафика мало и ждать долго, если нужно останавливать тест досрочно, если стейкхолдеры хотят видеть «вероятность, что вариант лучше», или если вы тестируете много вариантов параллельно (байесовский подход лучше работает с multiple testing).

На практике крупные компании (Google, Netflix, Booking) используют оба подхода в зависимости от контекста. На собеседовании важно знать разницу и уметь объяснить, когда что выбрать.

Вопросы с собеседований

Чем байесовский A/B-тест отличается от частотного? — Частотный даёт p-value — вероятность данных при H0. Байесовский даёт posterior-распределение и вероятность того, что один вариант лучше другого. Байесовский позволяет останавливать тест досрочно, даёт интуитивные результаты, но требует выбора prior.

Что такое prior и как его выбрать? — Prior — это ваше представление о параметре до эксперимента. Для конверсии обычно используют неинформативный Beta(1,1) или слабоинформативный Beta, отражающий историческую конверсию. При большой выборке выбор prior почти не влияет на результат.

Можно ли останавливать байесовский тест раньше? — Да. Posterior-распределение корректно в любой момент — в отличие от частотного подхода, где подглядывание увеличивает вероятность ошибки первого рода. Это главное практическое преимущество байесовского подхода.

Что такое credible interval? — Байесовский аналог доверительного интервала. 95% credible interval означает: вероятность 95%, что параметр лежит в этом интервале. В отличие от частотного CI, это прямая вероятностная интерпретация.

Когда байесовский подход даёт другой результат, чем частотный? — При малых выборках и информативном prior — результаты могут существенно различаться. При большой выборке и неинформативном prior — результаты практически совпадают, потому что данные доминируют над prior.


Потренируйтесь решать задачи по A/B-тестированию и статистике — откройте тренажёр. 1500+ примеров вопросов по всем темам, включая A/B-тесты.

Читайте также

FAQ

Что такое байесовский A/B-тест?

Байесовский A/B-тест — это метод сравнения вариантов продукта, основанный на теореме Байеса. В отличие от частотного подхода, он вычисляет posterior-распределение параметра (например, конверсии) и даёт прямой ответ: «Вероятность того, что вариант B лучше A — X%».

Чем credible interval отличается от confidence interval?

95% credible interval означает, что с вероятностью 95% параметр лежит в данном интервале. 95% confidence interval означает, что при многократном повторении эксперимента 95% таких интервалов накроют истинное значение. Credible interval даёт прямую вероятностную интерпретацию, confidence interval — нет.

Нужен ли MCMC для байесовского A/B-теста?

Для бинарных метрик (конверсия, CTR) — нет. Используется сопряжённая пара Beta-Binomial, и posterior вычисляется аналитически. Для непрерывных метрик (средний чек, revenue per user) аналитического решения нет, и нужны MCMC-методы (PyMC, Stan) или аппроксимации.

Можно ли подглядывать в результаты байесовского теста?

Да. Posterior-распределение валидно на каждом шаге — добавление новых данных обновляет его корректно. Это позволяет останавливать тест досрочно, когда вероятность превосходства одного варианта достигла порога (например, 95%). В частотном подходе подглядывание без поправок увеличивает вероятность ложного срабатывания.