← Назад к вопросам

От каких переменных зависит размер выборки

2.3 Middle🔥 201 комментариев
#A/B тестирование#Статистика и математика

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

От каких переменных зависит размер выборки в A/B тесте

Формула расчёта размера выборки

n = (Z_α/2 + Z_β)² × (σ² × (1 + 1)) / (δ)²

Или для простых случаев:

n = ((Z_α/2 + Z_β)² × p × (1-p)) / (δ)²

Где:

  • n — размер выборки на одну группу (нужно удвоить для двух групп)
  • Z_α/2 — z-значение для уровня значимости α
  • Z_β — z-значение для мощности теста (1 - β)
  • σ — стандартное отклонение метрики
  • δ — минимально значимая разница (effect size), которую мы хотим выявить
  • p — базовый уровень конверсии (для бинарных метрик)

Четыре ключевые переменные

1. Уровень значимости (α) — обычно 5% или 1%

Что это? Вероятность совершить ошибку первого рода (false positive) — сказать "результат значим", когда на самом деле разницы нет.

Примеры:

  • α = 0.05 (95% уверенность) — стандарт для B2C
  • α = 0.01 (99% уверенность) — для финансов, здоровья, критичных систем

Как влияет на размер выборки:

  • Уменьшение α → увеличение Z_α/2 → больше нужно участников
  • Для α=0.05: Z_α/2 = 1.96
  • Для α=0.01: Z_α/2 = 2.58
  • Соотношение: 2.58/1.96 = 1.32x больше участников

2. Статистическая мощность (1 - β) — обычно 80% или 90%

Что это? Вероятность выявить реальную разницу (true positive), если она существует.

Примеры:

  • Power = 80% (β = 0.20) — стандарт
  • Power = 90% (β = 0.10) — для важных решений
  • Power = 99% (β = 0.01) — очень консервативно

Как влияет на размер выборки:

  • Увеличение power → увеличение Z_β → больше нужно участников
  • Для power=80%: Z_β = 0.84
  • Для power=90%: Z_β = 1.28
  • Увеличение power на 10% требует на 50-80% больше участников

3. Базовый размер эффекта (δ, Effect Size) — критическая переменная

Что это? Минимальное изменение метрики, которое нам интересно выявить.

Примеры:

  • Конверсия с 10% на 11% (относительное улучшение 10%) → δ = 0.01
  • Конверсия с 10% на 12% (относительное улучшение 20%) → δ = 0.02
  • Retention с 50% на 55% (5 пункт-процентов) → δ = 0.05

Как влияет на размер выборки:

  • Уменьшение δ → экспоненциально больше нужно участников
  • Это самая важная переменная!
  • Если δ уменьшится в 2 раза → n увеличится в 4 раза
  • Если δ уменьшится в 3 раза → n увеличится в 9 раз

Практический пример:

  • Хотим выявить улучшение конверсии с 5% на 5.5% (0.5 пп) → n ≈ 200,000 на группу
  • Хотим выявить улучшение конверсии с 5% на 6% (1 пп) → n ≈ 50,000 на группу
  • Хотим выявить улучшение конверсии с 5% на 7.5% (2.5 пп) → n ≈ 8,000 на группу

4. Базовая вариативность метрики (σ²)

Что это? Разброс значений метрики в базовой группе. Чем больше стандартное отклонение, тем больше шума в данных.

Примеры:

  • Revenue per user: σ очень высокое (у кого-то $1, у кого-то $100) → нужен больший n
  • Bounce rate: σ умеренное (25% ± 15%) → средний n
  • Количество просмотров: σ может быть низким → маленький n

Как влияет на размер выборки:

  • Увеличение σ → пропорционально больше нужно участников
  • Если σ вырастет в 2 раза → n увеличится в 4 раза

Как снизить σ без увеличения n:

  • Использовать CUPED (Controlled-Experiment Using Prediction As Covariable)
  • Стратификация по когортам (разные n для разных групп)
  • Фильтрация выбросов (но аккуратно!)

Взаимодействие переменных: практический пример

Тестируем change в checkout конверсии (базово 3%):

Сценарий 1: быстрое решение

  • α = 0.05, Power = 80%, δ = 0.5% (с 3% на 3.5%, +17% relative)
  • n ≈ 28,000 на группу (56,000 всего)
  • Время: 2 недели при 4,000 пользователей/день

Сценарий 2: консервативное решение

  • α = 0.01, Power = 90%, δ = 0.25% (с 3% на 3.25%, +8% relative)
  • n ≈ 127,000 на группу (254,000 всего)
  • Время: 2 месяца при 4,000 пользователей/день

Сценарий 3: оптимистичное решение

  • α = 0.05, Power = 80%, δ = 1% (с 3% на 4%, +33% relative)
  • n ≈ 6,300 на группу (12,600 всего)
  • Время: 3 дня при 4,000 пользователей/день

Формула в Python для расчёта

from scipy.stats import norm

def calculate_sample_size(alpha=0.05, power=0.80, effect_size=0.05):
    """
    Расчёт размера выборки для A/B теста
    alpha: уровень значимости (0.05 = 5%)
    power: статистическая мощность (0.80 = 80%)
    effect_size: минимально значимое улучшение (0.05 = 5%)
    """
    z_alpha = norm.ppf(1 - alpha/2)  # двусторонний тест
    z_beta = norm.ppf(power)
    
    n = 2 * ((z_alpha + z_beta) / effect_size) ** 2
    return int(n)

# Примеры
print(f"n при δ=0.05: {calculate_sample_size(effect_size=0.05)}")  # ~3,146
print(f"n при δ=0.02: {calculate_sample_size(effect_size=0.02)}")  # ~19,665
print(f"n при δ=0.01: {calculate_sample_size(effect_size=0.01)}")  # ~78,660

Рекомендации для Product Analyst

  1. Начинай с базовых параметров: α=0.05, power=80%
  2. Определи минимально интересующее тебя улучшение (δ) — это стоит обсудить с бизнесом
  3. Рассчитай n и оцени, реалистично ли его достичь в разумные сроки
  4. Если n слишком большой, либо увеличь δ, либо умей объяснить, почему нужно ждать
  5. Документируй все параметры — это поможет при review результатов
От каких переменных зависит размер выборки | PrepBro