Байесовский 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-тесты.
Читайте также
- A/B-тестирование — полный гайд
- P-value простыми словами
- Ошибки первого и второго рода
- Bootstrap в статистике
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%). В частотном подходе подглядывание без поправок увеличивает вероятность ложного срабатывания.