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)}")