Power analysis простыми словами
events очень большая. Что дает запуск EXPLAIN для этого запроса?Содержание:
Короткое объяснение
Statistical power (статистическая мощность) — вероятность обнаружить реальный эффект, если он существует.
Power = 1 − β, где β — вероятность ошибки II рода (ложноотрицательного заключения).
Стандарт — 80%. Значит есть 20% шанс упустить реальный эффект.
Главные параметры
Power analysis связывает 4 параметра:
- α (alpha) — вероятность ложноположительного результата. Стандарт 5%.
- β (beta) — вероятность ложноотрицательного. Стандарт 20% (power 80%).
- MDE — minimum detectable effect (минимальный обнаруживаемый эффект).
- N — размер выборки.
Задав 3, получаешь 4-й.
Применение
Перед A/B-тестом: определить N
Известно: α=5%, power=80%, MDE=2%. Считаем, сколько пользователей нужно.
Уже запущен тест: посмотреть, можно ли обнаружить эффект
Известно: α=5%, N=10 000, наблюдаемый эффект. Считаем мощность для этого эффекта.
После теста: проверить, не пропустили ли эффект
Результат не значим. Post-hoc power показывает: можно ли было обнаружить MDE с таким N?
Формула для пропорций
n = (z_α/2 + z_β)² × (p₁(1-p₁) + p₂(1-p₂)) / (p₁ - p₂)²Где:
- z_α/2 = 1.96 для 5% alpha (двустороннего)
- z_β = 0.84 для 80% power
- p₁ — базовая конверсия
- p₂ — ожидаемая (p₁ + MDE)
Пример расчёта
A/B на кнопке. Базовая конверсия 5%. Хотим обнаружить +1 п.п. (MDE = 1 п.п.). α=5%, power=80%.
n ≈ (1.96 + 0.84)² × (0.05×0.95 + 0.06×0.94) / (0.01)²
≈ 7.84 × (0.0475 + 0.0564) / 0.0001
≈ 7.84 × 0.1039 / 0.0001
≈ 8 150 на группуНужно ~8 150 пользователей в контроле и ~8 150 в тесте. Всего 16 300.
В Python
from statsmodels.stats.power import NormalIndPower
power_analysis = NormalIndPower()
n = power_analysis.solve_power(
effect_size=0.05, # Cohen's h for proportions
alpha=0.05,
power=0.80,
ratio=1.0
)
print(f"N per group: {n:.0f}")Компромиссы параметров
Больше N
- Больше power (можно обнаружить меньший эффект)
- Больше стоимость и время
- Уже доверительный интервал
Больше α
- Больше ложноположительных
- Меньше N нужно (при том же power)
- Обычно α фиксирован на 5%
Больше MDE
- Меньше N нужно
- Но пропустим реально существующий, но меньший эффект
Больше β (меньше power)
- Меньше N
- Больше ложноотрицательных
Частые случаи
«Запустил тест, p=0.10, что это значит?»
Не значимо. Может быть:
- Реально нет эффекта
- Эффект есть, но N мало (низкая мощность)
Post-hoc power analysis покажет, можно ли было его обнаружить.
«Бизнес хочет обнаружить +0.5% к конверсии»
Power analysis с MDE=0.5% → обычно N огромный (десятки-сотни тысяч). Обсудите компромисс.
«Тест идёт неделю, p=0.04, можно выключать?»
Если планировали 2 недели — нет (проблема подглядывания). Мощность рассчитана на полный период.
Эффект новизны
Эффект в начале теста может угаснуть. Power analysis это не учитывает — нужен достаточный период (обычно 2+ недели).
A priori vs post-hoc
A priori (до теста)
Планирование: сколько N нужно для обнаружения эффекта.
Стандартная практика.
Post-hoc (после теста)
Анализ: какая была мощность для наблюдаемого эффекта?
Спорно: если результат не значим, post-hoc power обычно низкая — это тавтология.
Правильнее — precision analysis (ширина доверительного интервала).
На собесе
«Что такое power?» Вероятность обнаружить реальный эффект.
«Почему 80%?» Конвенция. Баланс между ложноотрицательными и стоимостью.
«Как посчитать размер выборки?» Power analysis: α, power, MDE → N.
«MDE 1% или 5% — что лучше?» 1% → нужно больше N. 5% — меньше, но пропустим меньший эффект.
Частые ошибки
1. Не делать расчёт заранее
Запустить тест без расчёта N и потом гадать, почему «не вышло значимо».
2. Слепо брать MDE с потолка
MDE должен быть обоснован бизнесом: минимум, который окупает разработку. Не «давайте 1%, красиво звучит».
3. Игнорировать дисперсию метрики
Для revenue-per-user с тяжёлыми хвостами формула с пропорциями не подойдёт. Нужны t-test или bootstrap-оценка N.
4. Использовать post-hoc power как оправдание
«У нас была power 30%, поэтому не нашли» — это не аргумент. Надо было считать до запуска.
Связанные темы
- Размер выборки для A/B
- P-value простыми словами
- Null hypothesis простыми словами
- A/B-тестирование гайд
FAQ
Что такое β?
Вероятность пропустить реальный эффект. Power = 1 − β.
Можно ли увеличить power без N?
Уменьшить дисперсию через CUPED. Или увеличить MDE (но тогда пропустим меньший эффект).
80% power обязательно?
Стандарт. Для критичных решений — 90% и выше.
Post-hoc power полезен?
Чаще запутывает, чем помогает. Precision analysis обычно лучше.