Урок по треку Статистика и A/B-тесты 6 мин

Байесовский подход к A/B коротко

Апостериорное распределение, Beta-Binomial, вероятность что B лучше, отличие от частотного подхода.

Частотный тест отвечает на вопрос «насколько странны такие данные, если эффекта нет». Бизнес обычно хочет услышать другое: «какова вероятность, что B лучше A». Байесовский подход отвечает именно на это, но платит за это априорным распределением и своими ловушками.

Формула Байеса

P(гипотеза | данные) = P(данные | гипотеза) · P(гипотеза) / P(данные)
  • Априорное распределение (prior): что мы думали о параметре до данных.
  • Правдоподобие (likelihood): насколько вероятны данные при каждом значении параметра.
  • Апостериорное (posterior): обновлённое знание после данных.

Классическая задача на собесе: тест на болезнь с чувствительностью 99% и ложноположительными 5%, болезнь у 1% людей. Вероятность болезни при положительном тесте: 0.99·0.01 / (0.99·0.01 + 0.05·0.99) ≈ 0.167. Без учёта редкости болезни кажется, что 99%.

Конверсия: модель Beta-Binomial

Конверсия p неизвестна. Удобный prior: Beta(α, β). После k конверсий из n пользователей posterior тоже Beta:

Beta(α + k, β + n - k)

Это называется сопряжённостью: prior и posterior из одного семейства, считать можно на бумаге.

  • Beta(1, 1) равномерный prior: «ничего не знаю».
  • Среднее Beta(a, b) равно a / (a + b), дисперсия a·b / ((a + b)² · (a + b + 1)).
  • Информативный prior из истории: если обычно конверсия около 5%, можно взять Beta(5, 95), это как «100 прошлых наблюдений».

Пример: prior Beta(1, 1), 30 покупок из 1000. Posterior Beta(31, 971), среднее 31/1002 ≈ 0.031.

Что считают в байесовском A/B

  1. P(B > A): вероятность, что конверсия B выше. Считают сэмплированием из двух posterior или нормальным приближением.
  2. Распределение эффекта p_B - p_A или относительного uplift и его достоверный интервал (credible interval): «с вероятностью 95% эффект между 0.2 и 1.1 п.п.». Именно такую фразу часто ошибочно говорят про частотный доверительный интервал.
  3. Ожидаемые потери (expected loss): сколько в среднем потеряем, если выберем B, а лучше окажется A. Правило: выкатывать, когда ожидаемые потери ниже порога, который бизнес готов терпеть.

Сэмплирование в Python без библиотек:

import random

def prob_b_better(a1, b1, a2, b2, draws=100_000):
    wins = sum(random.betavariate(a2, b2) > random.betavariate(a1, b1)
               for _ in range(draws))
    return wins / draws

Частотный и байесовский: отличия

ЧастотныйБайесовский
Параметрфиксированный, неизвестныйслучайная величина
Результатp-value, доверительный интервалposterior, P(B > A), достоверный интервал
Priorнетнужен
Интерпретациячерез повторение экспериментапрямая вероятность утверждения

При большой выборке и слабом prior выводы обычно совпадают: posterior почти целиком определяется данными.

Мифы

  • «Байесовскому тесту не страшно подглядывание». Апостериорное распределение корректно в любой момент, но если правило «останавливаемся, как только P(B > A) > 95%», то при нулевом эффекте ложных выкаток будет больше, чем при одной проверке. Правило остановки всё равно надо продумывать.
  • «Не нужен размер выборки». Нужен: без достаточных данных posterior широкий, и решение будет случайным.
  • «P(B > A) = 95% значит p-value 0.05». Это разные величины с разным смыслом.
  • Prior можно подобрать как угодно. Prior фиксируют до теста, иначе это подгонка. Сильный prior заметно тянет результат на малых выборках.

Что спросят на собесе

  • Чем байесовский подход отличается от частотного?
  • Как обновляется Beta-prior после наблюдения конверсий?
  • Что такое P(B > A) и expected loss?
  • Чем credible interval отличается от confidence interval?
  • Правда ли, что в байесовском тесте можно подглядывать?

Закрепите за 5 минут

После урока в тренажёре 3-5 проверочных вопросов, дальше модуль уходит в повторения.