Перейти до змісту
КурсиУвійти

Розмір вибірки для A/B-тесту: скільки потрібно користувачів

Як розрахувати розмір вибірки для A/B-тесту з базового рівня, MDE, потужності й рівня значущості: приклад із числами та типові помилки.

Автор: Sergey BruhОпубліковано 8 хв читання

Розмір вибірки для A/B-тесту визначають чотири параметри: базовий рівень метрики, мінімальний виявлюваний ефект (MDE), який для вас важливий, рівень значущості (зазвичай 5 %) і статистична потужність (зазвичай 80 %). Підставляєте їх у стандартну формулу чи калькулятор — і отримуєте кількість користувачів на кожен варіант. Ділите загальну кількість на щоденний трафік — і маєте тривалість тесту. Для конверсії 4 % і відносного приросту 10 % виходить приблизно 39 500 користувачів у кожній групі. Далі розберемо, звідки береться це число, як чесно його зменшити і які «зрізання кутів» непомітно ламають результати.

Чому «покрутимо тиждень і подивимось» не працює

Понеділковий стендап у Котокормі, інтернет-магазині кормів для тварин. Команда переробила сторінку оформлення замовлення, і хтось пропонує: «Покажімо новий чекаут половині відвідувачів на тиждень, а в п'ятницю глянемо на цифри».

Звучить розумно, і саме так багато команд спалюють спринт. Тижня трафіку може вистачити, щоб побачити величезний ефект, але зміни в чекауті рідко дають величезний ефект. Якщо редизайн піднімає конверсію на скромні 5–10 %, тижневий тест найімовірніше покаже «незначуще». Команда вирішить, що редизайн «не працює», і піде далі, хоча насправді тест просто не мав достатньої роздільної здатності, щоб цей ефект помітити.

Планування вибірки відповідає на одне питання ще до запуску: скільки даних потрібно, щоб реальний ефект потрібного нам розміру мав добрі шанси проявитися?

Чотири вхідні параметри

1. Базовий рівень

Поточне значення метрики в контрольній групі. У чекауті Котокорму замовлення оформлюють 4 зі 100 відвідувачів, тож базова конверсія — 4 %. Беріть її зі свіжих даних (останні 4–8 тижнів), а не з того вдалого місяця, який усі досі згадують.

Базовий рівень важливий, бо рідкісні події важче виміряти. Щоб помітити зміну конверсії 2 %, потрібно набагато більше користувачів, ніж для такої самої відносної зміни конверсії 10 %.

2. Мінімальний виявлюваний ефект (MDE)

Найменший ефект, заради якого варто щось робити. Це бізнесове рішення, а не статистичне. Запитайте себе: «Якщо редизайн підніме конверсію на X, ми його запустимо? Він окупиться?»

Чітко фіксуйте, відносний це ефект чи абсолютний. Відносний приріст 10 % від базових 4 % — це перехід з 4,0 % до 4,4 %, тобто абсолютна зміна на 0,4 відсоткового пункту. Плутанина між ними — найчастіша причина фантастично хибних розрахунків.

3. Рівень значущості (α\alpha)

Частка хибнопозитивних результатів, яку ви готові прийняти: імовірність оголосити переможця, коли реальної різниці немає. Загальноприйнято α=0,05\alpha = 0{,}05 із двобічним критерієм.

4. Статистична потужність (1−β1 - \beta)

Імовірність, що тест виявить ефект, якщо той справді не менший за MDE. Стандарт — 80 %: ви погоджуєтеся на 20 % шансів пропустити реальний ефект такого розміру. Коли помилка дорога, беруть 90 %.

Формула для конверсії

Для порівняння двох часток потрібна кількість користувачів у кожній групі приблизно дорівнює:

n=(z1−α/2+z1−β)2⋅(p1(1−p1)+p2(1−p2))(p2−p1)2n = \frac{(z_{1-\alpha/2} + z_{1-\beta})^2 \cdot \big(p_1(1-p_1) + p_2(1-p_2)\big)}{(p_2 - p_1)^2}

Тут p1p_1 — базовий рівень, p2p_2 — рівень, який ви сподіваєтеся побачити у варіанті, а значення zz беруться з нормального розподілу: z0,975≈1,96z_{0{,}975} \approx 1{,}96 для двобічного тесту з α=5%\alpha = 5\% і z0,80≈0,84z_{0{,}80} \approx 0{,}84 для потужності 80 %.

Запам'ятовувати формулу не обов'язково: будь-який пристойний онлайн-калькулятор або рядок коду на Python порахують це за вас. Але варто розуміти, що в ній: різниця p2−p1p_2 - p_1 стоїть у знаменнику в квадраті. Цей один факт пояснює більшість сюрпризів, про які піде мова далі.

Приклад: редизайн чекауту в Котокормі

Вхідні дані:

  • базова конверсія p1=0,04p_1 = 0{,}04;
  • MDE: відносний приріст 10 %, отже p2=0,044p_2 = 0{,}044;
  • α=0,05\alpha = 0{,}05 (двобічний), потужність 80 %.

Рахуємо крок за кроком:

  1. (1,96+0,84)2≈7,85(1{,}96 + 0{,}84)^2 \approx 7{,}85.
  2. Дисперсійні доданки: 0,04×0,96=0,03840{,}04 \times 0{,}96 = 0{,}0384 і 0,044×0,956=0,04210{,}044 \times 0{,}956 = 0{,}0421; разом 0,08050{,}0805.
  3. Квадрат різниці: (0,044−0,04)2=0,0042=0,000016(0{,}044 - 0{,}04)^2 = 0{,}004^2 = 0{,}000016.
  4. n≈7,85×0,0805/0,000016≈39 500n \approx 7{,}85 \times 0{,}0805 / 0{,}000016 \approx 39\,500.

Точне значення — 39 473 користувачі в кожній групі, тобто приблизно 79 000 разом.

Чекаут Котокорму відвідують близько 3 000 людей на день, трафік ділимо навпіл. Отже, тест триватиме 78 946/3 000≈26,378\,946 / 3\,000 \approx 26{,}3 дня. Округлюємо вгору до цілих тижнів: запускаємо на 4 тижні (28 днів), щоб кожен день тижня був представлений однаково. Покупки в неділю ввечері зовсім не схожі на покупки у вівторок зранку.

Швидка перевірка на здоровий глузд: для потужності 80 % і α=0,05\alpha = 0{,}05 є зручне емпіричне правило n≈16⋅p(1−p)/δ2n \approx 16 \cdot p(1-p) / \delta^2, де δ\delta — абсолютна різниця. Тут воно дає 16×0,0384/0,000016=38 40016 \times 0{,}0384 / 0{,}000016 = 38\,400, що близько до точного результату. Якщо калькулятор видав число вдесятеро більше чи менше, ви, найпевніше, переплутали відносний і абсолютний MDE.

Як параметри змінюють результат

Базовий рівень 4 %, α=0,05\alpha = 0{,}05 і потужність 80 % лишаємо, змінюємо тільки MDE:

Відносний MDE
Цільова конверсія
Користувачів у групі
Днів при 3 000 відвідувачів на день
5 %
4,2 %
154 302
103
10 %
4,4 %
39 473
27
20 %
4,8 %
10 314
7
30 %
5,2 %
4 780
4

Зменшили MDE вдвічі — вибірка зросла приблизно вчетверо. Це і є той самий квадрат різниці в знаменнику.

Інші важелі, усі для відносного MDE 10 %:

  • Потужність 90 % замість 80 %: 52 842 у групі (приблизно на третину більше).
  • α=0,01\alpha = 0{,}01 замість 0,05: 58 734 у групі.
  • Базовий рівень 2 % замість 4 %: 80 679 у групі. Базовий рівень 10 %: 14 749 у групі.

А як щодо середнього чека та інших неперервних метрик?

Для метрики на кшталт середнього чека (AOV) логіка та сама, тільки мінливість задає стандартне відхилення σ\sigma, а не p(1−p)p(1-p):

n=2 (z1−α/2+z1−β)2 σ2δ2n = \frac{2 \, (z_{1-\alpha/2} + z_{1-\beta})^2 \, \sigma^2}{\delta^2}

Якщо середній чек у Котокормі — близько 40 доларів зі стандартним відхиленням 25 доларів, і ви хочете помітити зміну на 2 долари, то n=2×7,85×625/4≈2 453n = 2 \times 7{,}85 \times 625 / 4 \approx 2\,453 користувачі в кожній групі. Обережно: дані про виручку зазвичай скошені, і кілька дуже великих замовлень роздувають σ\sigma. Оцінюйте стандартне відхилення за реальними свіжими замовленнями і подумайте про обрізання екстремальних значень ще до планування.

Типові помилки

Підганяти MDE під трафік. Рахувати у зворотний бік («у нас два тижні, тож MDE — скільки встигнемо») можна, але тоді скажіть це вголос: «Цей тест здатен помітити лише приріст від 20 %». Якщо ніхто не вірить, що зміна на таке здатна, не запускайте тест або оберіть чутливішу метрику.

Підглядати й зупиняти тест раніше. Якщо щодня відкривати дашборд і зупинятися, щойно p<0,05p < 0{,}05, частка хибнопозитивних результатів злітає значно вище 5 %. Розмір вибірки — це зобов'язання: визначте його заздалегідь і аналізуйте один раз, або використовуйте метод, створений для безперервного моніторингу (послідовне тестування).

Зупиняти посеред тижня. Навіть якщо потрібну кількість набрали на 23-й день, доведіть тиждень до кінця. Інакше одні дні тижня будуть представлені сильніше за інші.

Рандомізувати одне, а рахувати інше. Якщо ділите на групи користувачів, а рахуєте сесії, спостереження вже не незалежні, і реальна вибірка менша, ніж здається. Плануйте вибірку в тих самих одиницях, що й рандомізацію.

Забувати про кілька варіантів і метрик. Три варіанти проти контролю або десять «основних» метрик — це більше шансів на хибнопозитивний результат. Або коригуйте α\alpha (наприклад, поправкою Бонферроні) і закладайте більшу вибірку, або заздалегідь оберіть одну основну метрику.

Ігнорувати невідповідність співвідношення вибірок (SRM). Якщо планували поділ 50/50, а на великих числах вийшло 52/48, щось зламано в розподілі користувачів. Виправте це, перш ніж довіряти будь-якому результату.

Головне

  • Розмір вибірки для A/B-тесту задають чотири параметри: базовий рівень, MDE, α\alpha і потужність.
  • MDE — це бізнесовий вибір: найменший приріст, заради якого варто запускати зміну.
  • Вибірка росте пропорційно квадрату бажаної точності: зменшили MDE вдвічі — потрібно приблизно вчетверо більше користувачів.
  • Переводьте користувачів у дні за реальним трафіком і округлюйте вгору до цілих тижнів.
  • Визначайте обсяг вибірки до запуску і не зупиняйте тест лише тому, що p-значення опустилося нижче 0,05.

FAQ

Який розмір вибірки для A/B-тесту вважається нормальним?

Універсального числа немає: усе залежить від базового рівня і найменшого важливого для вас ефекту. За конверсії 4 % для відносного приросту 10 % при потужності 80 % потрібно близько 39 500 користувачів у групі, а для приросту 30 % — менше 5 000. Рахуйте для своїх параметрів.

Скільки часу має тривати A/B-тест?

Поділіть потрібну загальну вибірку на щоденний трафік, що потрапляє в тест, і округліть угору до повних тижнів. Більшість продуктових тестів мають тривати щонайменше тиждень, а безпечніший мінімум — два, якщо поведінка в будні й вихідні відрізняється.

Що робити, якщо трафіку не вистачає?

Тестуйте сміливіші зміни (більший MDE), беріть метрику вище у воронці з вищим базовим рівнем (наприклад, додавання в кошик замість покупки), зменшуйте мінливість, обрізаючи викиди, або визнайте, що це рішення ухвалюватимуть на основі судження, а не тесту. Найгірший варіант — запустити замалий тест і прочитати його результат як «ефекту немає».

Яку потужність брати: 80 % чи 90 %?

80 % — поширений стандарт. 90 % варто брати, коли пропустити реальний ефект дорого, наприклад якщо результат «ефекту немає» закриє стратегічний проєкт. Для того самого MDE знадобиться приблизно на третину більше користувачів.

Спробуйте на практиці

Планування вибірки стає зрозумілим, коли кілька разів проробиш його на реальних числах. Безкоштовний урок Потужність і розмір вибірки крок за кроком розбирає тест чекауту Котокорму, з тестами на розуміння і практичним завданням, яке перевіряє ШІ. Це частина безкоштовного курсу «Статистика для продакт-менеджерів і маркетологів».

Вивчіть це в курсі

Вивчайте статистику на практиці

Безкоштовний курс для продактів і маркетологів: короткі уроки, реальні продуктові дані та вправи з миттєвим фідбеком.

Почати безкоштовний курс

Схожі статті