Как использовать A/B-тесты для приоритизации гипотез

A/B-тесты — это не просто кнопка «Проверить гипотезу» в Amplitude или Tableau. Это инструмент, который помогает продакт-менеджеру ответить на главный вопрос: “Стоит ли вообще что-то менять?”. Чтобы разобраться, давайте уйдём от интерфейсов и возьмём в руки винтовку.

🎯 🧮 Винтовки и гипотезы

Представим, что у нас две винтовки — старая и новая. Мы хотим понять, действительно ли новая стреляет лучше или разницы нет.
Так начинается почти любой A/B-тест: у нас есть базовая версия продукта и новая гипотеза. Вопрос тот же — насколько уверенно мы можем сказать, что стало лучше?

Таким образом, у нас появляются две гипотезы:

  • H₀ (нулевая): старая и новая винтовки одинаково точны, разницы нет.
  • H₁ (альтернативная): новая винтовка точнее

Важно:
Мы не доказываем напрямую, что новая винтовка “лучше”. Мы проверяем, одинаковы ли они. И если они различаются, оцениваем, достаточно ли у нас данных, чтобы сказать об этом уверенно. Если данных достаточно, мы отвергаем нулевую гипотезу (H₀) и принимаем альтернативную (H₁): считаем, что новая винтовка стреляет точнее.

🧮 Сколько выстрелов нужно, чтобы сказать уверенно

Представим, что у нас есть мишень. Попадание в центр — это успех, всё остальное — промах.

Мы знаем, что из старой винтовки попадаем в центр примерно в 51% случаев — это наш baseline. И мы ожидаем, что новая стреляет на 2 п.п. (процентных пункта) лучше — 53% попаданий. Это наш MDE (minimum detectable effect), минимальный эффект, который мы хотим заметить.

🎯 Пробные стрельбы

Сделали по 10 выстрелов из каждой винтовки:

  • старая: 4 в центр
  • новая: 8 в центр

Результат выглядит впечатляюще — похоже, что новая винтовка лучше. Но данных явно мало, чтобы делать уверенные выводы. Отсюда возникает вопрос: сколько выстрелов нужно, чтобы сказать уверенно? Предположим, 100 достаточно. (Спойлер: нет)

🎯 Повторные стрельбы

Делаем по 100 выстрелов из каждой винтовки

  • старая: 55 в центр
  • новая: 57 в центр

Результаты почти одинаковые. Значит ли это, что разницы нет? Не факт — результат может колебаться из-за внешних факторов: усталость, погода, качество патронов или может просто везение. Поэтому снова возникает вопрос: сколько выстрелов нужно, чтобы уверенно отличить винтовки, если разница действительно есть? Предположим 10 000. (Спойлер: да)

🧮 Ошибки в статистике

Но перед тем как стрелять, важно понимать, как вообще мы можем ошибиться.

Всего возможны два типа ошибок:

  • Ошибка I рода (α) — сказать, что разница есть, когда её нет.
  • Ошибка II рода (β) — сказать, что разницы нет, когда она есть.

Третьего быть не может — либо мы ошиблись в одном из направлений, либо нет.
Хорошая новость: мы можем заранее задать допустимые вероятности этих ошибок — параметры α и β.

(α) alpha — вероятность ошибки I рода (или уровень значимости)

  • Что это: мы говорим «новая винтовка лучше», хотя на самом деле разницы нет.
  • Пример: винтовки одинаковые, но случайность сыграла в пользу новой.
  • Это ложноположительный вывод.
  • Обычно α = 0.05 (5%), то есть в долгосрочной перспективе у нас 5% шанс сделать вывод о наличии разницы, когда её нет. И мы говорим: «Хорошо, принимаем решение, если вероятность ошибки ≤ 5%».

(β) beta — вероятность ошибки II рода

  • Что это: мы говорим «разницы нет», хотя новая винтовка в действительности лучше.
  • Пример: новая винтовка действительно точнее, но данных мало, и мы не заметили улучшения.
  • Это ложноотрицательный вывод.
  • Обычно β = 0.2 (20%), то есть если новая винтовка действительно лучше, мы с вероятностью 80% это заметим. На практике мы задаём не β, а мощность теста (power) = 1 − β = 80%.

Как использовать A/B-тесты для приоритизации гипотез

🧮 Так сколько нужно выстрелов

Итак, зная baseline, MDE, α и β, мы можем рассчитать нужное количество выстрелов, чтобы результат был достоверным. Для этого удобно использовать калькулятор:
Evan Miller’s AB Test Calculator — классика, простой интерфейс, считает и p-value, и доверительный интервал.
По расчётам видно: при baseline = 51% и MDE = 2% достаточно 9 807 выстрелов, но для простоты и наглядности округлим до 10 000.

Допустим, мы сделали все выстрелы и получили результат, но возникает закономерный вопрос: как понять, оказался ли результат “достоверным”? Иными словами — попали ли мы в те самые 5% (α), где разница могла возникнуть случайно, или всё же нашли настоящую разницу?

Обратите внимание:
Проверить попадание в ошибку (β) beta невозможно, так как невозможно заранее представить уровень вероятности нахождения того, чего нет. Значение β задаётся только на этапе планирования теста, чтобы рассчитать нужное количество выстрелов. Но после проведения эксперимента проверить, попали ли мы в ошибку второго рода, действительно невозможно — потому что мы не знаем “истинную” разницу.

Существует несколько способов проверки достоверности: p-value, confidence intervals, bayesian подходы, sequential testing, метрики типа uplift/lift. Но чаще всего используются p-value и confidence intervals.

🧮 Что такое p-value

Думайте о p-value как о шкале странности результата.

Помним:

  • H₀ (нулевая): старая и новая винтовки одинаково точны, разницы нет.
  • H₁ (альтернативная): новая винтовка точнее.

Если p-value < 0.05, значит результат для H₀ настолько странный, что мы её отвергаем и делаем выбор в пользу H₁.
💡 Пример:
если все 10 000 выстрелов из новой винтовки попали в центр (100%), при baseline 51% — это, мягко говоря, крайне необычно. Значение p-value ≈ 0. Такой результат невозможно объяснить случайностью, поэтому мы отвергаем H₀ и считаем, что винтовки разные.

Если p-value ≥ 0.05, результат необычным не выглядит — значит, чтобы уверенно сказать, что винтовки разные, данных недостаточно. Возможно, выстрелов сделали слишком мало, а возможно, разницы действительно нет — статистика не позволяет это различить.
💡 Пример:
52% выстрелов из новой винтовки попали в центр → p-value ≈ 0.15 ≥ 0.05, а значит разница может быть случайной и мы не можем сказать, что новая винтовка лучше.

Обратите внимание:
Цель теста — не доказать, что новая винтовка лучше, а проверить, есть ли вообще разница. И если разница есть, и данных достаточно, чтобы сказать об этом уверенно — мы отвергаем нулевую гипотезу и говорим: “Да, новая винтовка действительно лучше”.

🎯 Финальные стрельбы (1)

Итак, сделали по 10 000 выстрелов из каждой винтовки:

  • старая: 5 100 в центр (51%)
  • новая: 5 250 в центр (52.5%)

Разница: 150 выстрелов — на первый взгляд, новая винтовка на 1.5 п.п. лучше.

Для расчёта p-value также можно воспользоваться калькулятором:
AB Test Guide Calculator — простой интерфейс, показывает p-value и доверительный интервал.

В результате: p-value = 0.0338 < 0.05, а значит мы отвергаем нулевую гипотезу (H₀) и считаем, что новая винтовка достоверно лучше старой. Эффект небольшой (≈ 1.5 п.п.), но статистически значимый.

🧩 Вывод (1)

A/B-тест — это не способ доказать, что стало лучше. Это способ проверить, достаточно ли данных, чтобы уверенно сказать, что новое действительно отличается от старого. И если разница есть, и данных достаточно — считаем, что новая версия лучше.

🧮 Что такое доверительный интервал (confidence interval или CI)

Если p-value говорит, есть ли эффект в принципе (то есть, существует ли вообще разница между винтовками), то доверительный интервал показывает, насколько велик этот эффект и насколько мы в нём уверены.

Другими словами:

  • p-value → “Есть ли разница?”
  • CI → “Насколько велика эта разница?”

🎯 Финальные стрельбы (2)

Сделали по 10 000 выстрелов из каждой винтовки. Всё ещё хотим понять, действительно ли новая стреляет точнее:

  • старая: 5 120 в центр (51.2%)
  • новая: 5 280 в центр (52.8%)

Разница: 140 выстрелов — на первый взгляд, новая винтовка на 1.6 п.п. лучше.

Когда мы измеряем разницу между старой и новой винтовками, получаем некоторое среднее значение — наши 1.6 п.п. И если повторить эксперимент еще несколько раз (по 10 000 выстрелов), результат, скорее всего, немного изменится.

Надо отметить, все измерения в статистике сопровождаются погрешностью — как результат стрельбы каждой винтовки, так и разница между ними. Эта погрешность может быть как в меньшую, так и в большую сторону. Истинное значение разницы находится где-то внутри этого диапазона, который и называется доверительным интервалом (CI).

💡 Чем больше выстрелов мы делаем, тем уже становится этот диапазон, и тем точнее оценка эффекта.

🧮 Считаем доверительный интервал

Для расчёта доверительно интервала также можно воспользоваться калькулятором AB Test Guide Calculator.

Обратите внимание:
В калькуляторе есть параметр Confidence (уверенность) — обычно выбирают 90%, 95% или 99%. Значение 95% — это компромисс между точностью и практичностью, фактически стандарт в индустрии.

Нам нужно значение Std. Error of difference = 0.007065. И чтобы рассчитать доверительный интервал при уверенности 95%, умножаем Std. Error of difference на 1.96. Для простоты округлим до 2.

0.007065 × 2 = 0.01413 → ±1.41 п.п.

Это значит, что если расчётная разница между конверсиями равна 1.5 п.п., то с 95% уверенностью истинная разница лежит в диапазоне:

CI = 1.6% ± 1.41% → [0.19%, 3.01%], а значит

52.6% ± 1.41% = [51.19%, 54.01%]

Иными словами, если бы мы проводили эксперимент бесконечно много раз, в 95% случаев разница между винтовками попала бы именно в этот диапазон.

Важно:

Если в интервале есть 0 — значит, реальная разница может быть равна нулю — то есть новая винтовка ничем не отличается от старой.

Если 0 в интервал не входит, как в нашем примере [0.19%, 3.01%], — значит, новая винтовка действительно стреляет точнее, и мы уверены в этом на 95%.

💡 Необходимо уточнить:
10 000 выстрелов — это только выборка, это не все выстрелы, которые мы можем совершить. Все возможные выстрелы, которые могли бы произойти: при любой погоде, усталости, состоянии оружия и т.д. называются генеральной совокупностью (в реальном продукте — это все наши настоящие и будущие пользователи). Но мы не можем стрелять вечно, так же как не можем протестировать всех потенциальных пользователей. Участники нашего эксперимента — это только одна выборка, лишь маленькая часть рынка. А все наши потенциальные пользователи на рынке — это бездонный океан, и мы не можем всех их привести в продукт для проверки конверсии. Поэтому доверительный интервал показывает, насколько надёжно данные нашей выборки отражают реальность, есть ли связь между тем, что мы увидели в тесте, и тем, что происходит в генеральной совокупности (со всеми нашими нынешними и потенциальными пользователями).

🧩 Вывод (2)

  • Доверительный интервал информативнее, чем просто p-value. Он показывает не только есть ли эффект, но и насколько он велик, в какую сторону проявляется и насколько надёжно мы его оценили.
  • Доверительный интервал помогает понять, можно ли обобщать результаты эксперимента. Он отвечает на вопрос: можем ли мы перенести выводы одного теста (например, 10 000 выстрелов) на всю аудиторию или наблюдаемый эффект просто случайность конкретной выборки. Чем уже интервал, тем стабильнее и надёжнее эффект и тем выше вероятность, что результат сохранится за пределами эксперимента.
  • Доверительный интервал помогает оценить практическую значимость эффекта. Иногда эффект статистически значим (p < 0.05), но настолько мал, что не даёт бизнесу никакой реальной пользы.
    Р-value отвечает за статистическую значимость, а MDE и ширина доверительного интервала — за практическую (бизнес) значимость.

    💡 Наш пример:
    Разница между конверсией в контрольной группе (51%) и в тестовой (52.6%) равна 1.6 п.п. А по результатам расчетов доверительного интервала: 52.6% ± 1.41% = [51.19%, 54.01%]. И так как нижнее значение в интервале 51.19%, то разница между конверсиями 51.19% - 51% = 0.19 п.п - это в 10 раз меньше, чем порог 2 п.п., который мы считаем минимально осмысленным. То есть, хоть математически мы и доказали, что разница существует, но она настолько мала, что не даёт бизнесу никакого измеримого эффекта (ни денег, ни пользователей, ни просмотров и т.д.).

🧮 Когда A/B-тест не нужен

Ранее мы считали доверительный интервал для разницы между конверсиями в группах A и B (старая и новая винтовки). Теперь посчитаем доверительные интервалы отдельно для текущей конверсии (baseline) и для прогноза (MDE) и посмотрим, пересекаются ли они.

Перед началом стрельб мы знали, что из старой винтовки в среднем мы попадали в центр в 51% случаев — это наш baseline. А еще мы предполагали, что новая винтовка стреляет на 2 п.п. лучше, то есть 53% попаданий в центр. Но давайте понизим MDE до 0,5 п.п., то есть до 51.5%.

И давайте в этот раз посчитаем доверительный интервал самостоятельно. Формула пригодится, если будете делать расчеты в excel.

Как использовать A/B-тесты для приоритизации гипотез

где

  • E — половина доверительного интервала (погрешность в одну сторону)
  • p — доля успехов (baseline p1 = 0.51, прогноз p2 = 0.53)
  • n — размер выборки (количество выстрелов из каждой винтовки - по 10 000)
  • Z — квантиль нормального распределения (наш уровень уверенности), в статистике обозначается термином sigma – (σ):
    - для 95% доверия — Z = 1.96 (≈ 2σ),
    - для 99.7% — Z ≈ 3σ.
    В индустрии принято использовать 95% доверие, то есть 2σ.

Таким образом, две сигмы (2σ или 95% доверия) умножаются на корень из двух вариантов. В одном варианте мы попадаем в цель (человек у нас регистрируется и покупает) в другом нет. И делим на количество выстрелов (пользователей).

🧮 Считаем доверительные интервалы

Для baseline (старая винтовка):

p=0.51, n=10 000

Как использовать A/B-тесты для приоритизации гипотез

E = 1.96 × 0.004999 ≈ 0.0098 = 0.98 п.п.
CI = 51% ± 0.98% = [50.02%, 51.98%]

Для прогноза новой винтовки (MDE = 51.5%):
p = 0.515, n = 10 000

Как использовать A/B-тесты для приоритизации гипотез

E = 1.96 × 0.004997 ≈ 0.0098 = 0.98п.п.
CI = 51.5% ± 0.98% = [50.52%, 52.48%]

Пересечение интервалов:

  • старая: [50.02%, 51.98%]
  • новая: [50.52%, 52.48%]

Нижняя граница нового доверительного интервала (52.02%) попадает внутрь интервала старой винтовки (51.98%), то есть интервалы частично пересекаются. Это указывает то, что при уровне доверия 95% разница между 51% и 51.5% не является статистически значимой — эффект может быть случайным.

А значит, гипотезу в бэклоге с таким небольшим прогнозом роста (0.5 п.п.) надо очень осторожно рассматривать в качестве кандидата к реализации. Даже если вы решите реализовать её, подтвердить рост конверсии через A/B-тест не получится, поскольку результат не будет статистически значим.

🧩 Вывод (3)

Используя доверительные интервалы на этапе приоритизации, можно заранее понять, есть ли шанс получить статистически значимый эффект и решить, стоит ли брать такую фичу в разработку.

2
Начать дискуссию