Что такое statistical power evaluation и как определять размер выборки?
Краткий тезис
Statistical power (power|статистическая мощность) — это вероятность обнаружить реально существующий эффект в эксперименте, то есть отвергнуть нулевую гипотезу, когда она ложна. Мощность равна 1 − β, где β — вероятность ошибки II рода. Определение размера выборки (sample size) через power analysis позволяет спланировать эксперимент так, чтобы с заданной мощностью (обычно 0.8) и уровнем значимости α (обычно 0.05) зафиксировать минимальный интересующий эффект (effect size). Это критически важно для A/B-тестов, оценки агентов и любых статистических выводов в ML.
1. Основные понятия: ошибки I и II рода
Любая статистическая проверка гипотез связана с двумя типами ошибок:
- Ошибка I рода (α): отвергнуть верную нулевую гипотезу (ложноположительный результат). Уровень значимости α — порог, который исследователь задаёт заранее (обычно 0.05).
- Ошибка II рода (β): не отвергнуть ложную нулевую гипотезу (ложноотрицательный результат). Мощность = 1 − β.
| Решение \ Реальность | H₀ верна | H₁ верна |
|---|---|---|
| Отвергнуть H₀ | Ошибка I рода (α) | Правильное решение (мощность) |
| Не отвергнуть H₀ | Правильное решение | Ошибка II рода (β) |
Пример из A/B-теста: H₀ — новая модель агента не улучшает метрику, H₁ — улучшает. Если мы не заметим реального улучшения — это β. Если скажем, что улучшение есть, а его нет — α.
2. Что такое statistical power
Statistical power (power|статистическая мощность) — вероятность того, что тест обнаружит эффект заданного размера при заданных α и размере выборки.
Формально:
Power = P(отвергнуть H₀ | H₁ верна) = 1 − β
На мощность влияют:
- Размер эффекта (effect size): чем больше эффект, тем выше мощность.
- Уровень значимости α: чем меньше α, тем ниже мощность (при фиксированном N).
- Размер выборки N: чем больше N, тем выше мощность.
- Дисперсия данных: чем меньше разброс, тем выше мощность.
3. Определение размера выборки через power analysis
Power analysis — процедура, которая по заданным α, β (или мощности) и минимальному эффекту вычисляет необходимый N.
3.1 Параметры для расчёта
- α (обычно 0.05, 0.01)
- Power (обычно 0.8, 0.9)
- Effect size — стандартизированная мера различия. Для средних — Cohen's d:
d = (μ₁ − μ₂) / σ, где σ — объединённое стандартное отклонение. Для пропорций — разность долей.
3.2 Аналитический подход (для t-теста)
Для двухвыборочного t-теста (независимые выборки) размер выборки на группу:
N = 2 * ( (z_{1−α/2} + z_{1−β}) / d )²
где z — квантили стандартного нормального распределения.
Пример: хотим обнаружить эффект d = 0.5 при α = 0.05, power = 0.8.
z_{0.975} ≈ 1.96, z_{0.8} ≈ 0.84
N = 2 * ((1.96 + 0.84) / 0.5)² = 2 * (2.8 / 0.5)² = 2 * 5.6² = 2 * 31.36 ≈ 63 на группу.
3.3 Расчёт через симуляции (более гибкий)
Когда аналитическая формула недоступна (например, для сложных метрик или непараметрических тестов), используют симуляции: генерируют данные с заданным эффектом, проводят тест много раз и считают долю отвержений H₀.
4. Инструменты для power analysis
4.1 Python (statsmodels)
from statsmodels.stats.power import TTestIndPower
# Параметры
effect_size = 0.5 # Cohen's d
alpha = 0.05
power = 0.8
# Расчёт N на группу
analysis = TTestIndPower()
n = analysis.solve_power(effect_size=effect_size, alpha=alpha, power=power, alternative='two-sided')
print(f"Необходимый размер выборки на группу: {n:.0f}") # ≈ 64
4.2 R (pwr)
library(pwr)
pwr.t.test(d = 0.5, sig.level = 0.05, power = 0.8, type = "two.sample")
4.3 Онлайн-калькуляторы
G*Power, различные веб-инструменты.
5. Практические рекомендации
- Всегда проводите power analysis до сбора данных — это предотвращает как недостаточные выборки (низкая мощность, зря потраченное время), так и избыточные (перерасход ресурсов).
- Учитывайте множественное тестирование — если проверяете много гипотез, корректируйте α (например, Бонферрони).
- Для ML-экспериментов (оценка агентов, RAG-систем) мощность часто ниже из-за высокой дисперсии метрик (например, faithfulness). Используйте симуляции на исторических данных.
- Effect size выбирайте исходя из бизнес-значимости: минимальное улучшение, которое имеет смысл.
6. Связь с Agentic RAG
В контексте Agentic RAG статистическая мощность применяется для:
- Оценки нового агента или компонента (retriever, re-ranker) в A/B-тесте.
- Сравнения версий пайплайна (например, с Self-RAG и без).
- Определения, сколько диалогов или запросов нужно собрать, чтобы достоверно зафиксировать улучшение метрик (answer relevance, faithfulness).
Без power analysis можно сделать ложный вывод о превосходстве одной архитектуры над другой из-за шума.
7. Пет-проект для закрепления
Задача: Реализовать калькулятор размера выборки для A/B-теста метрики "faithfulness" в RAG-системе.
Инструменты: Python, statsmodels, numpy, matplotlib.
Шаги:
- Сгенерируйте синтетические данные faithfulness (доля релевантных фактов) для двух версий агента: baseline и improved.
- Задайте ожидаемый effect size (например, +5%).
- Используйте TTestIndPower для расчёта N.
- Проведите симуляцию: для разных N (от 10 до 500) многократно проведите t-тест и постройте кривую мощности.
- Визуализируйте зависимость мощности от N.
Ожидаемый результат: График, показывающий, что при N=100 мощность ≈ 0.6, при N=300 ≈ 0.9. Вывод: для достоверного обнаружения +5% нужно ~250 наблюдений на группу.
8. Связь с другими вопросами
| Вопрос | Тема |
|---|---|
| 340 | Оценка агентов: метрики и A/B-тесты |
| 341 | Метрики RAG: faithfulness, answer relevance |
| 343 | Доверительные интервалы и их интерпретация |
| 344 | A/B-тестирование в ML-продуктах |
| 345 | Размер эффекта (effect size) и его расчёт |
9. Навигация
- Предыдущий: 341
- Следующий: 343
- Индекс: 00. Индекс разборов
Навигация
- Предыдущий: 341
- Следующий: 343
- Индекс: 00. Индекс разборов