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

Нужно ли фиксировать уровень значимости в тест?

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

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

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

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

Уровень значимости в A/B тестировании: нужно ли его фиксировать?

Да, уровень значимости (significance level, alpha) обязательно должен быть зафиксирован ДО запуска теста. Это один из фундаментальных принципов корректного A/B тестирования.

Что такое уровень значимости?

Уровень значимости (alpha, α) — это вероятность получить ложноположительный результат (Type I Error), когда мы отклоняем нулевую гипотезу, хотя она на самом деле верна.

Стандартные значения:

  • α = 0.05 (5%) — самый распространённый выбор в индустрии
  • α = 0.01 (1%) — для более консервативных тестов
  • α = 0.10 (10%) — редко, обычно только для exploratory анализа

Почему уровень значимости нужно фиксировать заранее?

1. Предотвращение p-hacking

Если не зафиксировать alpha заранее, возникает искушение подбирать результаты под нужный вывод.

2. Контроль false positive rate

Зафиксированный alpha позволяет гарантировать, что в долгосрочной перспективе только 5% тестов (при α = 0.05) будут давать ложноположительные результаты.

3. Статистическая корректность

Все теоретические основы Frequentist статистики построены на том, что alpha фиксирован заранее. Если менять его post-hoc, нарушается вся логика вывода.

Когда нужно фиксировать alpha?

ВСЕГДА, но на разных этапах:

1. При проектировании теста (pre-test)

  • ДО запуска теста нужно определить:
    • Уровень значимости (α = 0.05)
    • Мощность теста (power = 0.80 или 0.90)
    • Минимальный эффект, который хотите обнаружить (MDE - Minimum Detectable Effect)
    • Необходимый размер выборки (sample size)

Это проделывается с помощью power analysis:

from statsmodels.stats.power import tt_ind_solve_power

alpha = 0.05
power = 0.90
effect_size = 0.15

sample_size = tt_ind_solve_power(
    effect_size=effect_size,
    nobs1=None,
    alpha=alpha,
    power=power,
    ratio=1.0,
    alternative="two-sided"
)

2. Во время теста (in-test)

  • Смотреть результаты можно, но НЕ принимать решения до запланированного периода
  • Это предотвращает раннюю остановку (stopping rules должны быть определены заранее)
  • Если нужна ранняя остановка (critical error), это решение должно быть принято независимо от p-value

3. При завершении теста (post-test)

  • Финальный p-value вычисляется на полном dataset
  • Сравнивается с зафиксированным alpha
  • Результат: отклонить или не отклонить нулевую гипотезу

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

Сценарий: тестируем новый design кнопки добавить в корзину

План (ДО запуска):

  • α = 0.05
  • power = 0.80
  • ожидаемый lift = 10% в conversion rate
  • текущий conversion rate = 5%, target MDE = 0.5pp
  • Нужно: 10,000 пользователей в каждой группе, 2 недели

Результаты (ПОСЛЕ 2 недель):

  • Контроль: 5.2% conversion
  • Тест: 5.7% conversion
  • p-value = 0.048
  • Вывод: p-value < 0.05, признаём результат статистически значимым

Множественные сравнения (Multiple Testing Problem)

Если вы смотрите на несколько метрик одновременно, нужна коррекция:

5 метрик × α = 0.05 → реальный alpha ≈ 0.23 (очень высоко)
alpha_corrected = 0.05 / 5 = 0.01 для каждой метрики

Важные исключения и нюансы

1. Sequential Testing (Peek at Data) Если вы хотите смотреть на результаты и делать раннюю остановку, используйте:

  • Bayesian A/B testing
  • Sequential analysis с pre-defined stopping boundaries (SPRT)
  • Эти методы требуют коррекции alpha для контроля false positive rate

2. Exploratory vs Confirmatory

  • Confirmatory: alpha фиксирована строго (0.05)
  • Exploratory: можно быть мягче, но потом нужна валидация на новых данных

3. Bayesian подход В Bayesian A/B testing можно отказаться от фиксированного alpha, но нужно определить prior distribution и stopping rule

Антипаттерны

  • Смотреть на p-value и менять alpha в зависимости от результата
  • Запускать тест без power analysis
  • Останавливать тест рано, потому что результаты хорошие
  • Анализировать несколько метрик без коррекции
  • Использовать alpha = 0.10 просто потому, что данные немного поддерживают результат

Выводы

Да, уровень значимости ОБЯЗАТЕЛЬНО должен быть зафиксирован ДО запуска теста. Это основной механизм контроля ошибок Type I и защиты от p-hacking. Стандартное значение α = 0.05 работает в подавляющем большинстве случаев. Фиксация alpha вместе с power analysis позволяет спроектировать тест, который даст надёжные результаты и обоснованные выводы для принятия решений.