Калькулятор размера выборки A/B теста

Рассчитайте точное количество пользователей на вариацию для вашего эксперимента — с поправками на последовательное тестирование, неопределённость измерений, сверхдисперсию и снижение дисперсии, которые другие калькуляторы игнорируют.

Другие калькуляторы считают n при идеальных условиях. Мы — при реальных.

Параметры

2%
10%
Для оценки длительности эксперимента


0.000
Внутрикластерная корреляция (Beta-Binomial)
0.00
Видимость, фрод, кросс-девайс шум
0%
Снижение дисперсии из доэкспериментальных данных
Модель задержки конверсий: наблюдаемая доля = 1 − exp(−λ · окно)

Результаты

Загрузка WASM движка…

Размер выборки на руку
— всего (обе руки)
Длительность
Режим
Наивный
Реальный

Кривая мощности

Кривая MDE

Почему размер выборки важен для A/B тестов

Запускать A/B тест без предварительного расчёта выборки — всё равно что навигировать без карты. Слишком мало пользователей — и вы пропустите реальный эффект (ошибка II рода), сделав вывод «разницы нет», когда она есть. Слишком много — и вы потратите время, бюджет и альтернативные издержки на эксперимент, который длился дольше необходимого.

Размер выборки определяет два ключевых свойства теста: статистическую мощность (вероятность обнаружить реальный эффект) и точность (ширину доверительного интервала). Недостаточно мощный тест может показать незначимый результат для эффекта, который реален и экономически значим. Избыточно мощный тест расходует ресурсы, которые можно было бы направить на следующий эксперимент.

В рекламе ставки конкретны. Каждый день работы эксперимента — это день, когда вы делите бюджет между контролем и вариантом. Если вариант хуже — вы сжигаете деньги. Если лучше — вы теряете выручку, не развернув его на весь трафик. Правильный расчёт размера выборки находит оптимум: достаточно наблюдений для надёжного вывода без единого лишнего дня альтернативных издержек.

Большинство практиков используют стандартную формулу фиксированного горизонта и на этом останавливаются. Но эта формула опирается на допущения, которые редко выполняются на практике: отсутствие промежуточных проверок, некоррелированность пользователей, отсутствие шума измерений, мгновенные конверсии. Когда эти допущения нарушаются — а они нарушаются всегда — «правильный» размер выборки оказывается неправильным. Для этого и существует этот калькулятор.

Что не учитывают другие калькуляторы

Каждый популярный калькулятор размера выборки — Evan Miller, Statsig, Optimizely, GrowthBook — вычисляет одну и ту же формулу Z-теста фиксированного горизонта. Они дают ответ при идеальных условиях: единственный анализ в конце, идеально измеренные исходы, независимые наблюдения и мгновенные конверсии. Вот что они упускают.

Промежуточные проверки результатов (последовательное тестирование). Если вы планируете проверять тест до набора запланированного объёма, фактический уровень значимости инфлируется. Групповой последовательный дизайн (O'Brien-Fleming, Pocock) контролирует это, расходуя alpha по промежуточным проверкам, но требует больше данных. При 5 проверках увеличение составляет от 3% (OBF) до 25% (Pocock). Ни один конкурентный калькулятор не показывает эту инфляцию.

Сверхдисперсия. Пользователи в одном регионе, на одном типе устройств или в одном временном когорте коррелированы, поэтому реальная дисперсия превышает биномиальное допущение. Даже малая внутрикластерная корреляция (rho = 0,001) может увеличить требуемый n на 10-30%. Модель Beta-Binomial учитывает это одним параметром, но стандартные калькуляторы предполагают rho = 0.

Неопределённость измерений. В рекламе наблюдаемый результат — не истинный результат. Измерение видимости имеет ~15% шума, детекция фрода добавляет ~5%, кросс-девайс атрибуция — ~10%. Это создаёт неустранимый порог дисперсии, который не уменьшается с ростом данных. Если систематический шум велик относительно эффекта, который вы пытаетесь обнаружить, — никакой размер выборки не поможет, эффект необнаружим. Этот калькулятор вычисляет точный порог.

Задержка конверсий. Когда конверсии происходят через дни или недели после показа, короткое окно наблюдения теряет их часть. Окно в 7 дней при типичной задержке e-commerce захватывает около 88% конверсий, требуя ~14% больше пользователей для компенсации. Стандартные калькуляторы предполагают мгновенную конверсию.

Возможности снижения дисперсии. CUPED (Controlled-experiment Using Pre-Experiment Data) может уменьшить требуемый размер выборки на 10-50%, используя доэкспериментальные ковариаты для поглощения шума. Если у вас есть такие данные, вы упускаете мощность. Ни один конкурентный калькулятор не показывает выгоду от CUPED.

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

Методология

Основа — формула двухвыборочного Z-теста пропорций (формулировка Fleiss/Lachin): объединённая дисперсия под H0 для alpha-члена и раздельная дисперсия для beta-члена. Это даёт стандартный размер выборки фиксированного горизонта nfixed.

Инфляция последовательного тестирования вычисляется через построение группового последовательного дизайна с функциями расходования alpha (O'Brien-Fleming или Pocock). Критическое значение последней проверки, отнесённое к критическому значению фиксированного горизонта, даёт коэффициент инфляции размера выборки.

Сверхдисперсия использует коэффициент инфляции дисперсии VIF = 1/(1 - rho) из модели Beta-Binomial, где rho — внутрикластерная корреляция.

Систематики измерений добавляют неустранимый порог дисперсии vsys = 2 * (sigma * p̄)² к статистической дисперсии одного наблюдения. Коэффициент инфляции: delta² / (delta² - (zalpha + zbeta)² * vsys). Когда знаменатель обращается в ноль, эффект необнаружим.

CUPED снижает дисперсию на множитель (1 - rho²), где rho² — квадрат корреляции между доэкспериментальной ковариатой и метрикой исхода.

Поправка на задержку использует модель экспоненциального затухания: наблюдаемая доля = 1 - exp(-lambda * окно). Коэффициент инфляции = 1 / наблюдаемая доля.

Все поправки мультипликативно применяются к nfixed: nadjusted = nfixed * инфляцияпоследовательная * инфляциясверхдисперсия * инфляциясистематики * снижениеCUPED * инфляциязадержка.

Все вычисления выполняются в вашем браузере через WebAssembly, скомпилированный из той же библиотеки Rust ns-inference, которая работает в полной платформе NextStat. Без приближений, без серверных вызовов, данные не покидают ваше устройство.

Литература:

  • Fleiss, Levin & Paik (2003). Statistical Methods for Rates and Proportions, 3rd ed. Wiley. — Формула двухвыборочного Z-теста.
  • O'Brien & Fleming (1979). A multiple testing procedure for clinical trials. Biometrics, 35(3), 549–556. — Групповые последовательные границы.
  • Pocock (1977). Group sequential methods in the design and analysis of clinical trials. Biometrika, 64(2), 191–199.
  • Deng, Xu, Kohavi & Walker (2013). Improving the sensitivity of online controlled experiments by utilizing pre-experiment data. WSDM '13. — CUPED.
  • Lan & DeMets (1983). Discrete sequential boundaries for clinical trials. Biometrika, 70(3), 659–663. — Функции расходования alpha.

Как выбрать минимальный детектируемый эффект

Минимальный детектируемый эффект (MDE) — наименьшее улучшение, которое стоит обнаруживать. Его выбор — бизнес-решение, а не статистическое. Задайте его слишком малым — и вам потребуются миллионы пользователей; слишком большим — и вы пропустите реальные улучшения.

Начните с выручки. Рассчитайте влияние 1% относительного прироста конверсии на выручку. Если базовая конверсия 2% при 100 000 ежемесячных посетителей со средним чеком 3 000 ₽, 1% относительный прирост (2% → 2,02%) — это ~20 дополнительных конверсий/месяц = 60 000 ₽/месяц. Стоит ли это эксперимента? Если нет — увеличивайте MDE, пока отдача не оправдает затраты.

Учтите стоимость эксперимента. Каждый день эксперимента вы делите трафик. Если вариант лучше — вы получаете лишь половину прироста. Если хуже — вы тратите бюджет на проигрывающую сторону. Стоимость 30 лишних дней часто превышает ценность обнаружения 1% прироста вместо 5%.

Практическое правило для рекламы: большинство A/B тестов на уровне кампаний в Яндекс.Директ и Google Ads используют MDE 5-20%. Тесты лендингов с высоким трафиком могут снижать до 2-5%. Тесты креативов или стратегий ставок с ограниченным трафиком обычно используют 10-30%. Если требуемый размер выборки превышает доступный трафик в разумном окне (2-4 недели) — увеличивайте MDE.

Справочные таблицы размера выборки

Размеры выборки на руку для фиксированного горизонта при типичных базовых конверсиях, alpha = 0,05 и мощность = 0,80 (двусторонний тест). Это наивные оценки — добавьте поправки на последовательное тестирование, сверхдисперсию и систематики для реального планирования.

Базовая конверсия MDE 5% MDE 10% MDE 15% MDE 20% MDE 30% MDE 50%
0.5%6,147,3701,536,843683,042384,211170,76061,474
1%3,042,094760,524337,999190,13184,50330,421
2%1,489,478372,370165,49893,09341,37514,895
5%555,648138,91261,73934,72815,4355,557
10%254,29863,57528,25515,8947,0642,543
20%103,19225,79811,4666,4502,8671,032

NextStat vs. другие калькуляторы

Возможность NextStat Evan Miller Statsig Optimizely GrowthBook
Z-тест фиксированного горизонта Да Да Да Да Да
Инфляция последовательного тестирования Да Нет Нет Нет Нет
Поправка на сверхдисперсию Да Нет Нет Нет Нет
Систематики измерений Да Нет Нет Нет Нет
Снижение дисперсии CUPED Да Нет Нет Нет Нет
Поправка на задержку Да Нет Нет Нет Нет
Кривые мощности и MDE Да Да Нет Нет Да
Разбор чувствительности Да Нет Нет Нет Нет
Сравнение наивный vs реальный Да Нет Нет Нет Нет
100% на клиенте (WASM) Да Да Нет Нет Нет
Открытый вычислительный движок Да Нет Нет Нет Да

Часто задаваемые вопросы

Для двухвыборочного Z-теста пропорций размер выборки на руку: n = (z_alpha * sqrt(2 * p_bar * (1 - p_bar)) + z_beta * sqrt(p1 * (1 - p1) + p2 * (1 - p2)))² / (p2 - p1)², где p1 — базовая конверсия, p2 — ожидаемая конверсия в тестовой группе, p_bar — объединённая конверсия, z_alpha — критическое значение для уровня значимости, z_beta — критическое значение для мощности. Формула предполагает тест с фиксированным горизонтом без промежуточного анализа.

Последовательное тестирование (групповой последовательный дизайн) позволяет проверять результаты на заранее запланированных промежуточных этапах без инфляции ложноположительных результатов. Компромисс — увеличение максимального размера выборки, обычно на 3-25% в зависимости от количества проверок и функции расходования. Границы O'Brien-Fleming добавляют минимальную инфляцию (~3% для 5 проверок), а Pocock — больше (~25% для 5 проверок).

Сверхдисперсия возникает, когда дисперсия данных превышает предсказание биномиальной модели. Пользователи в одном регионе, на одном устройстве или в одном временном когорте коррелированы. Даже малая внутрикластерная корреляция (rho = 0,001) может увеличить требуемый размер выборки на 10-30%. Модель Beta-Binomial учитывает это. Большинство калькуляторов игнорируют этот эффект.

Это систематические неопределённости, которые не уменьшаются с ростом данных: ошибка измерения видимости (~15%), неопределённость детекции фрода (~5%), шум кросс-девайс атрибуции (~10%). Они создают неустранимый порог дисперсии. Если систематический шум велик относительно эффекта, эффект становится необнаружимым при любом размере выборки.

CUPED (Controlled-experiment Using Pre-Experiment Data) снижает дисперсию, используя данные до эксперимента в качестве ковариат. Если корреляция (rho-squared) между ковариатой и метрикой исхода равна 0,25, CUPED уменьшает требуемый размер выборки на 25%. Это фактически бесплатная мощность — те же данные, больше сигнала.

Другие калькуляторы считают размер выборки при идеальных условиях: без промежуточных проверок, без сверхдисперсии, без шума измерений, без задержки. Если вы планируете проверять промежуточные результаты (последовательное тестирование), пользователи коррелированы (сверхдисперсия) или система измерения зашумлена (систематики) — вам нужно больше данных. Индикатор «Наивный vs Реальный» показывает точную разницу.

Нет. Все вычисления на 100% выполняются на стороне клиента через WebAssembly (WASM). Движок написан на Rust и скомпилирован в ~130 КБ WASM-бинарник, работающий в Web Worker. Ваши данные никогда не покидают браузер.

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

O'Brien-Fleming использует консервативные ранние границы и мягкие поздние — минимальный дополнительный расход на размер выборки (~3% для 5 проверок), но ранняя остановка маловероятна без сильного эффекта. Pocock использует одинаковые границы — ранняя остановка вероятнее, но максимальный размер выборки на 20-30% больше. Для большинства рекламных экспериментов рекомендуется O'Brien-Fleming.

Конверсии, происходящие через дни или недели после показа, теряются при коротком окне наблюдения. Окно в 7 дней с lambda = 0,3 захватывает около 88% конверсий, требуя ~14% больше пользователей для компенсации. Этот калькулятор моделирует точную инфляцию.

Нужно больше, чем калькулятор?

NextStat Ads подключается к вашему аккаунту Яндекс.Директ и запускает последовательные A/B тесты с реальными правилами остановки, каузальной атрибуцией и прогнозированием метрик.

Попробовать NextStat Ads бесплатно