Sobes.tech
Back to questions
Middle
14

Как рассчитать sample size для A/B-теста?

Companies where asked
Rostic's
LaTech
ВанТу Ворк

Answer from AI

sobes.tech AI

Для расчёта размера выборки (sample size) в A/B-тесте нужно учитывать несколько параметров:

  • Уровень значимости (α) — вероятность ошибочного отклонения нулевой гипотезы (обычно 0.05).
  • Мощность теста (1 - β) — вероятность обнаружить реальный эффект (обычно 0.8 или 0.9).
  • Ожидаемый эффект (разница между группами) — минимальное изменение, которое важно обнаружить.
  • Стандартное отклонение или базовый уровень метрики — для оценки вариабельности.

Формула для двухвыборочного теста пропорций примерно такова:

[ n = \frac{2 (Z_{1-\alpha/2} + Z_{1-\beta})^2 p (1-p)}{d^2} ]

где:

  • (Z_{1-\alpha/2}) и (Z_{1-\beta}) — квантиль нормального распределения,
  • (p) — средняя конверсия,
  • (d) — минимальная разница между группами.

Для удобства часто используют онлайн-калькуляторы или библиотеки статистики.

Пример на Python с использованием библиотеки statsmodels:

from statsmodels.stats.power import NormalIndPower

# Параметры
alpha = 0.05
power = 0.8
effect_size = 0.1  # например, 10% разница

analysis = NormalIndPower()
sample_size = analysis.solve_power(effect_size=effect_size, power=power, alpha=alpha, ratio=1)
print(f"Размер выборки на группу: {int(sample_size)}")