Как посчитать размер выборки для A/B в SQL
Содержание:
Зачем Sample Size
Если запустить A/B на 1000 пользователях при baseline CR 2% и MDE 10% (relative) — power будет 15%. Это означает: с вероятностью 85% не увидите статистически значимый эффект, даже если он есть. Sample size — критично для дизайна эксперимента.
Формула
n = (z_α + z_β)² × 2 × p × (1-p) / MDE²Где:
z_α— критическое значение для alpha (1.96 для α = 0.05)z_β— критическое значение для power (0.84 для power = 0.8)p— baseline conversion rateMDE— minimum detectable effect (absolute)
Базовый расчёт
В SQL это approximation формулы:
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;Формула даёт sample size per group. Total для A/B = 2 × этот размер.
Параметры
| Параметр | Стандарт | Что значит |
|---|---|---|
| α (alpha) | 0.05 | False positive rate (Type I error) |
| 1-β (power) | 0.80 | True positive rate (1 - Type II) |
| p | baseline | Текущий conversion rate |
| MDE | от 1% до 50% | Минимальный эффект, который хотим detect |
Примеры
| Baseline CR | MDE relative | MDE absolute | n per group |
|---|---|---|---|
| 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 absolute vs relative. 10% relative на baseline 2% = 0.2 п.п. абсолютно. Формула берёт absolute.
Ошибка 2. Без correction для мульти-метрик. Если измеряете 10 метрик — alpha должна быть 0.005 (Bonferroni). Это увеличивает sample size.
Ошибка 3. Сезонность. Сэмпл на одну неделю — может попасть на праздник / акцию. Нужны полные циклы.
Ошибка 4. Power 0.8 — не закон. Critical bug — power 0.99. Exploratory — 0.7.
Ошибка 5. Игнорировать ratio metrics. Для ratio metrics (revenue per user) формула другая — используйте delta method.
Связанные темы
- CUPED — снижение дисперсии A/B
- Как посчитать uplift в SQL
- Sample Ratio Mismatch (SRM)
- Holdout vs A/B на практике
FAQ
Какой MDE выбирать?
Бизнес-значимый эффект. Если +0.5% CR не движет revenue — нет смысла тестировать на меньший MDE.
Можно ли уменьшить sample?
Да: 1) Pre-experiment metric (CUPED reducing variance). 2) Pooled metric. 3) Sequential testing. 4) Smaller alpha if low risk.
Power < 0.8 — что делать?
Либо больше юзеров (длиннее эксперимент), либо больший MDE, либо CUPED.
Sample size для absolute vs ratio?
Absolute — простая формула. Ratio (revenue/user) — delta method + дисперсия.
Power analysis — обязательно?
Да. Без него вы рискуете: либо false positives на маленькой выборке, либо false negatives на короткое время.