Опубликовано: Апрель 16, 2025
Последовательный анализ A/B теста на основе отношения вероятностей со смесью (mSPRT -- mixture Sequential Probability Ratio Test) - это статистическая методология для последовательного тестирования, позволяющая проверять поступающие данные эксперимента в любой момент времени при этом, контролируя ошибку I рода. В отличие от традиционных тестов с фиксированным размером выборки, последовательные тесты позволяют раннее завершение при накоплении достаточных доказательств.
Когда такой подход может быть особенно полезен для онлайн-проектов? Например, в следующих случаях:
Основа данного подхода была заложена в таких известных работах, как "On the problem of the most efficient tests of statistical hypotheses" опубликованной Нейманом и Пирсоном в 1933 году и работе Абрахама Вальда, профессора математической статистики Колумбийского университета "The Sequential Analysis" изданной в виде книги в 1947 году, где он представил метод SPRT. Конечно были и другие работы, но книга Вальда благодаря своей полноте стала хорошей основой для изучения и понимания метода. Книга была переведена на русский язык и издана в 1960 году ("Последовательный анализ").
В свой книге Вальд представил обоснование метода SPRT, математические формулировки для расчета некоторых его параметров и примеры его применения в различных областях.
Вальд разбирает метод отношения правдоподобий для принятия решения в процессе тестирования простой нулевой гипотезы $H_0: \theta = \theta_0$ против простой альтернативной $H_1: \theta = \theta_1$. Этот подход позволяет контролировать ошибки I и II рода в условиях "подглядывания" за результатами теста.
Как бы это ни парадоксально звучало с точки зрения классической теории проверки гипотезы с фиксированным горизонтом - в методе SPRT мы наоборот смотрим на результаты теста по мере поступления данных и принимаем решение о его завершении или продолжении.
В своей работе Вальд объясняет:
Метод последовательной проверки гипотезы $H$ можно изложить следующим образом. Устанавливается некоторое правило, которым руководствуются при принятии решения на каждом этапе эксперимента (при $m$-м испытании, где $m$ — любое целое число):
- Принять гипотезу $H$;
- Отклонить гипотезу $H$;
- Продолжать эксперимент и провести дополнительное наблюдение.
На основе первого наблюдения принимается одно из трёх вышеуказанных решений. Если принимается первое или второе решение, проверка завершается. Если принимается третье решение, производится второе наблюдение. На основе двух наблюдений вновь принимается одно из трёх возможных решений. Если принимается третье решение, выполняется третье наблюдение и т. д. Процесс проверки продолжается до тех пор, пока не будет принято первое или второе решение. Количество наблюдений $n$, необходимых для принятия решения, является случайной величиной, поскольку оно зависит от исхода наблюдений.
Для простой нулевой гипотезы $H_0: \theta = \theta_0$ против простой альтернативы $H_1: \theta = \theta_1$, основа критерия, а именно отношение правдоподобия на этапе $n$ определяется как:
$$ \Lambda_n = \frac{\prod_{i=1}^n f(x_i; \theta_1)}{\prod_{i=1}^n f(x_i; \theta_0)}, $$
где $f(x_i; \theta)$ — функция плотности вероятности наблюдения $x_i$ при параметре $\theta$ (правдоподобие).
Отношение правдоподобия $\Lambda_n$ используется для принятия одного из трёх решений на этапе $n$:
Рис.1 Схема примера последовательной проверки гипотез. В отличие от классических критериев с фиксированным объёмом выборки (фиксированный горизонт), последовательный критерий позволяет принимать решение практически после каждого наблюдения: либо принять гипотезу $H$, либо отвергнуть её, либо продолжить выборку на основе подсчитанной величины $\lambda_n$ (отношения правдоподобия). В случае, если $\lambda_n$ попадает в область принятия гипотезы $H$, то мы принимаем гипотезу $H$. Если $\lambda_n$ попадает в область отклонения гипотезы $H$, то мы отвергаем гипотезу $H$. Если $\lambda_n$ попадает в область неопределённости, то мы продолжаем выборку.
Величины $A$ и $B$ выбираются таким образом, чтобы обеспечить заданные уровни ошибок первого и второго рода. В своей книге Вальд выводит формулы для приблизительного расчета этих границ:
$$ A \approx \frac{1-\beta}{\alpha}, \quad B \approx \frac{\beta}{1-\alpha}, $$
где:
$\alpha$ = P(отклонить $H_0 \mid H_0$ истинна) — уровень ошибки I рода,
$\beta$ = P(принять $H_0 \mid H_1$ истинна) — уровень ошибки II рода.
Рис.2 Визуальное представление последовательного теста SPRT. Зеленая линия представляет пример траектории отношения правдоподобия $\lambda_n$ по мере увеличения размера выборки. Когда траектория пересекает одну из границ (A или B), принимается решение
Несмотря на свою эффективность, простой SPRT имеет два очевидных ограничения, которые затрудняют его применение в реальных условиях:
Для преодоления этих ограничений был разработан метод mSPRT (mixture Sequential Probability Ratio Test), который расширяет возможности SPRT за счёт добавления "смеси" к отношению правдоподобий и решает тем самым следующие задачи:
Благодаря этим улучшениям и возможностям, mSPRT стали применять, как платформы для A/B тестирования (например, Optimizely), так и ряд крупных компаний в сфере онлайн проектов.
Применение последовательного тестирования в A/B тестах потребовало расширения SPRT для работы с данными из двух выборок. Подход был представлен Джохари и соавторами в работе "Peeking at A/B Tests: Why it matters, and what to do about it" (2017), который стал известен, как последовательный анализ на основе отношения вероятностей со смесью (Mixture sequential probability ratio test).
Основная его идея заключается в следующем: поскольку это двусторонний тест, обозначим $H_0 : \theta = \theta_0$ и $H_1 : \theta \ne \theta_0$ как нулевую и альтернативную гипотезы соответственно и определим $H$ как смешивающее распределение по $\Theta$ с плотностью $h$, и пусть $f_{\theta}$ будет плотностью данных с параметром $\theta$ (правдоподобие), тогда смешивание $H$ по пространству параметров $\Theta$ означает применение вероятностного распределения к возможным значениям тестируемого параметра:
$$\Lambda_n^{H, \theta_0} = \int_{\Theta} \prod_{i=1}^n \frac{f_\theta(X_i)}{f_{\theta_0}(X_i)}h(\theta)d\theta.$$
Здесь $h(\theta)$ — это функция плотности смеси (везде положительная), которая контролирует распределение альтернативной гипотезы, проверяемой в отношении правдоподобия. Таким образом, mSPRT позволяет учитывать неопределённость в параметрах и делать тест более универсальным. Но пока это по прежнему одновыборочный тест.
Правило принятия решения в mSPRT аналогично правилу в простом SPRT, но использует смешанное отношение правдоподобия $\Lambda_n^{H, \theta_0}$. На каждом шаге $n$ принимается одно из двух решений:
Здесь $\alpha$ — это заданный уровень ошибки I рода. Тест продолжается до тех пор, пока не будет выполнено условие для отклонения $H_0$. Важно отметить, что в этой формулировке mSPRT нет явной границы для принятия $H_0$, как в классическом SPRT (граница $B$). Тест продолжается до тех пор, пока не будет достаточно доказательств для отклонения $H_0$ на уровне значимости $\alpha$. Если тест завершается без отклонения $H_0$ (например, по достижении максимального размера выборки или времени), то $H_0$ не отклоняется.
Выбор порога $1/\alpha$ для отношения правдоподобия гарантирует контроль ошибки I рода на уровне $\alpha$ с помощью стандартных мартингальных методов (Siegmund 1985).
Рисунок 3 представляет собой концептуальную иллюстрацию процесса mSPRT:
Рис. 3 Иллюстрация mSPRT. Отношение правдоподобия со смесью $\Lambda_n^H$ отслеживается по мере увеличения размера выборки $n$. Тест останавливается и отклоняет $H_0$, когда траектория впервые пересекает порог $\alpha^{-1}$. В этом примере при $\alpha=0.05$ порог равен 20, и момент остановки $T^H(\alpha)$ наступает при $n=63$.
Остается вопрос, как вышеизложенное применить к двухвыборочному A/B тесту? В A/B тесте мы сравниваем две вариации друг с другом. Т.е. мы наблюдаем две независимые последовательности i.i.d. $X$ и $Y$ из групп, получающих опыт A и B соответственно. В случае биномиальной метрики (используются для моделирования бинарных исходов, таких как клики, конверсии и т.д.) сравниваются две гипотезы:
$$ H_0: \theta := p_B - p_A = 0 \quad \text{против} \quad H_1: \theta \neq 0. $$ где $p_A$ и $p_B$ — это вероятности успеха (конверсии) в группах A и B соответственно.
Соответственно в случае непрерывной метрики (например, выручка) чаще всего статистикой выступает среднее значение: $$ H_0 : \theta := \mu_B - \mu_A = 0 \quad \text{против альтернативной гипотезы} \quad H_1 : \theta \neq 0. $$
Джохари в своей работе "Peeking at A/B Tests" посвященной методу mSPRT пишет:
Чтобы получить mSPRT для A/B-тестирования, нам нужно определить отношение правдоподобия со смесью $\tilde{\Lambda}_n^{H, \theta_0}$ для экспериментов с двумя вариантами как функцию данных $X_1, \ldots, X_n, Y_1, \ldots, Y_n$.
Начнем с рассмотрения нормальных данных. В этом случае заметим, что для любых $\mu^A$ и $\mu^B$, $Z_n = Y_n - X_n \sim N(\theta, 2\sigma^2)$. Таким образом, мы можем просто применить одновариантный mSPRT к последовательности ${Z_n}$; это приводит к следующему определению:
$$ \tilde{\Lambda}_n^{H, \theta_0} = \sqrt{\frac{2\sigma^2}{2\sigma^2 + n\tau^2}} \exp{ \left(\frac{n^2 \tau^2 (\bar{Y}_n - \bar{X}_n - \theta_0)^2}{4\sigma^2 (2\sigma^2 + n\tau^2)}\right)}, $$ где $\theta_0$ — это разница средних при нулевой гипотезе.
Для биномиальных метрик предлагается такое решение:
Для бинарных данных мы рассматриваем эксперимент с одной вариацией, где каждое наблюдение представляет собой пару $(X_n, Y_n)$, и $\theta$ неизвестно, но $\mu$ фиксировано. Отношение правдоподобия со смесью в этом случае сводится к отношению правдоподобия со смесью, основанному на любой достаточной статистике для $\theta$ в этой модели с одной вариацией. Мы отмечаем, что для любого $\mu$, $\bar{Y}_n - \bar{X}_n$ является асимптотически достаточной статистикой с асимптотическим распределением $N(\theta, V_n/n)$, где:
$$ V_n = \bar{X}_n(1 - \bar{X}_n) + \bar{Y}_n(1 - \bar{Y}_n). $$
Это распределение напоминает распределение достаточной статистики $\bar{Z}_n$ в нормальном случае с $2\sigma^2 = V_n$, и поэтому по аналогии мы используем следующий mSPRT:
$$ \tilde{\Lambda}_n^{H, \theta_0} = \sqrt{\frac{V_n}{V_n + n\tau^2}} \exp {\left( \frac{n^2 \tau^2 (\bar{Y}_n - \bar{X}_n - \theta_0)^2}{2V_n (V_n + n\tau^2)} \right)}, $$ где $\theta_0$ — это разница вероятностей успеха при нулевой гипотезе (если $V_n = 0$, то полагаем $\tilde{\Lambda}^{H, \theta_0} = 1$).
Так как аппроксимации верны только при больших $n$, точная валидность не всегда достигается, но моделирование показывает, что приблизительный контроль ошибки I рода обеспечивается при малых $\alpha$, когда для отклонения $H_0$ требуются большие размеры выборки.
Таким образом для нормального распределения и биномиальных метрик мы имеем алгебраическое выражение для отношения правдоподобия со смесью, которое позволяет нам использовать mSPRT для последовательного анализа A/B тестов, переложив соответствующее уравнение и правило для принятия решения на программный код.
На практике однако возникают следующие вопросы:
Скорее всего эти вопросы не имеют однозначного ответа, но если порассуждать, то можно сказать что:
Таким образом последовательный анализ с помощью метода mSPRT представляет собой интересный и достаточно гибкий инструмент для ускорения A/B тестирования за счет раннего детектирования уже накопленных доказательств. Его математическая основа - это отношения правдоподобия со смесью. Он позволяет учитывать неопределённость в параметрах, является достаточно настраиваемым, что делает его полезным инструментом для практики A/B тестирования.