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

Проверь себя · 1/3разбор после ответа
В таблице payments нужно выбрать платежи из России (country = 'RU') со статусом либо 'failed', либо 'chargeback'. Какой WHERE корректный?

Зачем Sample Size

Если запустить A/B на 1000 пользователях при базовой конверсии 2% и MDE 10% (относительный), то мощность будет всего 15%. Это значит, что с вероятностью 85% вы не увидите статистически значимый эффект, даже если он есть. Поэтому размер выборки критичен для дизайна эксперимента.

Формула

n = (z_α + z_β)² × 2 × p × (1-p) / MDE²

Где:

  • z_α — критическое значение для α (1.96 при α = 0.05)
  • z_β — критическое значение для мощности (0.84 при мощности 0.8)
  • p — базовая конверсия
  • MDE — минимальный детектируемый эффект (абсолютный)

Базовый расчёт

В SQL это приближённый расчёт по формуле:

WITH params AS (
    SELECT
        0.05 AS alpha,
        0.80 AS power,
        0.02 AS baseline_p,  -- 2% CR baseline
        0.002 AS mde_abs       -- 0.2 п.п. абсолютный эффект (10% relative)
)
SELECT
    baseline_p,
    mde_abs,
    CEIL(
        POWER(1.96 + 0.84, 2) * 2 * baseline_p * (1 - baseline_p)
            / POWER(mde_abs, 2)
    ) AS sample_size_per_group
FROM params;

Формула даёт размер выборки на одну группу. Всего для A/B нужно 2 × этот размер.

Параметры

Параметр Стандарт Что значит
α (alpha) 0.05 Доля ложноположительных (ошибка I рода)
1-β (power) 0.80 Доля истинноположительных (1 − ошибка II рода)
p baseline Текущая конверсия
MDE от 1% до 50% Минимальный эффект, который хотим обнаружить
Закрепи формулу sample size в Карьернике
Запомнить надолго — 5 коротких сессий с задачами на эту тему. Бесплатно
Тренировать sample size в Telegram

Примеры

Базовая конверсия MDE относительный MDE абсолютный n на группу
2% 10% 0.2 п.п. ~38 000
5% 10% 0.5 п.п. ~14 800
10% 10% 1 п.п. ~7 060
20% 10% 2 п.п. ~3 130

Чем меньше MDE — тем больше нужна выборка (квадратично!).

Частые ошибки

Ошибка 1. Абсолютный MDE против относительного. 10% относительного при базе 2% — это 0.2 п.п. в абсолюте. Формула берёт абсолютный.

Ошибка 2. Без поправки на несколько метрик. Если измеряете 10 метрик, alpha должна быть 0.005 (поправка Бонферрони). Это увеличивает размер выборки.

Ошибка 3. Сезонность. Выборка за одну неделю может попасть на праздник или акцию. Нужны полные циклы.

Ошибка 4. Мощность 0.8 — не закон. Для критичных решений берите мощность 0.99, для разведочных экспериментов — 0.7.

Ошибка 5. Игнорировать метрики-отношения. Для метрик-отношений (выручка на пользователя) формула другая — используйте дельта-метод.

Связанные темы

FAQ

Какой MDE выбирать?

Берите бизнес-значимый эффект. Если +0.5% к конверсии не двигает выручку, нет смысла закладывать меньший MDE и раздувать выборку.

Можно ли уменьшить выборку?

Да, несколькими способами. Во-первых, использовать пред-экспериментальную метрику (CUPED снижает дисперсию). Во-вторых, объединять метрики. В-третьих, применять последовательное тестирование. В-четвёртых, брать меньшую alpha, если риск ошибки невелик.

Power < 0.8 — что делать?

Либо набрать больше пользователей (продлить эксперимент), либо заложить больший MDE, либо применить CUPED.

Размер выборки для абсолютной метрики и для метрики-отношения?

Для абсолютной метрики — простая формула. Для метрики-отношения (выручка на пользователя) нужен дельта-метод и учёт дисперсии.

Power analysis обязателен?

Да. Без него вы рискуете получить либо ложноположительные результаты на маленькой выборке, либо ложноотрицательные из-за слишком короткого срока теста.