Что такое 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.

Шаги:

  1. Сгенерируйте синтетические данные faithfulness (доля релевантных фактов) для двух версий агента: baseline и improved.
  2. Задайте ожидаемый effect size (например, +5%).
  3. Используйте TTestIndPower для расчёта N.
  4. Проведите симуляцию: для разных N (от 10 до 500) многократно проведите t-тест и постройте кривую мощности.
  5. Визуализируйте зависимость мощности от N.

Ожидаемый результат: График, показывающий, что при N=100 мощность ≈ 0.6, при N=300 ≈ 0.9. Вывод: для достоверного обнаружения +5% нужно ~250 наблюдений на группу.


8. Связь с другими вопросами

ВопросТема
340Оценка агентов: метрики и A/B-тесты
341Метрики RAG: faithfulness, answer relevance
343Доверительные интервалы и их интерпретация
344A/B-тестирование в ML-продуктах
345Размер эффекта (effect size) и его расчёт

9. Навигация


Навигация