A/B-тесты · ПланированиеРазмер выборки для A/B-теста

Калькулятор размера выборки: сколько посетителей нужно на группу, чтобы тест заметил эффект. Для конверсии и среднего чека, неравные группы, до пяти вариантов, CUPED, таблица чувствительности, формула и код Python и R.

Цифры остаются в браузере и никуда не отправляются

01Расчёт02Кривая03Чувствительность04Формула05Примеры06Вопросы07Похожие
01

Расчёт

Метрика
Конверсия контроля сейчас, до теста
Какой эффект поймать (MDE)
Вариантов
Деление трафика
CUPED — есть метрика до теста
Снижает шум за счёт истории пользователя
α = 0,05 · мощность 80 % · двусторонняя проверка
Нужно посетителей на группу
36 693

Всего 73 386 · 2 группы поровну · эффект +15 % (с 2,00 до 2,30 %)

из них сконвертируются ≈ 734 в A и 844 в B

02Чем меньше эффект, тем больше выборка
Посетителей на группу (логарифмическая шкала) от относительного эффекта
10 000100 000+5 %+10 %+20 %+30 %+40 %36 693
03Таблица чувствительности · на группу
ЭффектМощность 80 %Мощность 90 %
+5 %315 206421 971
+10 %80 682108 009
+15 %36 69349 121
+20 %21 10928 258
+30 %9 79813 116

Строка с введённым эффектом подсвечена. Вдвое меньший эффект — примерно вчетверо больше посетителей.

04Формула
n = (z1−α/2 · √(p̄q̄(1 + 1/k)) + z1−β · √(p1q1 + p2q2/k))² / (p2 − p1)²
p₁ = 0,0200, p₂ = 0,0230, k = 1, z = 1,960 и 0,842 → n = 36 693

z₁₋α/s — критическое значение для α и стороны проверки, z₁₋β — для мощности, k — во сколько раз группа B больше A. Результат округляется вверх по каждой группе: недобор хотя бы одного посетителя опускает мощность ниже заданной.

Проверить в Python / R
from math import ceil, sqrt
from scipy.stats import norm

p1, p2 = 0.02, 0.023
alpha, power, k = 0.05, 0.8, 1
z_a = norm.ppf(1 - alpha / 2)
z_b = norm.ppf(power)
pb = (p1 + k * p2) / (1 + k)
n = (z_a * sqrt(pb * (1 - pb) * (1 + 1 / k))
     + z_b * sqrt(p1 * (1 - p1) + p2 * (1 - p2) / k)) ** 2 / (p2 - p1) ** 2
print(ceil(n))  # 36693
05

Примеры

06

Частые вопросы

Нужны четыре числа: базовая конверсия контроля, эффект, который хотите поймать, уровень значимости α и мощность. Калькулятор считает по формуле R power.prop.test и округляет вверх по каждой группе. Пример: конверсия 2 %, ожидаемый рост +15 %, α = 0,05 и мощность 80 % — нужно 36 693 посетителя на группу, всего 73 386. При односторонней проверке хватит 28 903 на группу.

Обновлено