Что такое ошибки I и II рода в статистике? Приведите примеры в контексте A/B-тестирования.?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Ошибки I и II рода в статистике и A/B-тестировании
Ошибка I рода (False Positive) — мы отвергли нулевую гипотезу, хотя она верна. То есть, мы считаем, что эффект есть, но на самом деле его нет.
Ошибка II рода (False Negative) — мы не отвергли нулевую гипотезу, хотя она неверна. То есть, мы считаем, что эффекта нет, но на самом деле он есть.
Матрица ошибок (Confusion Matrix)
┌─────────────────────┬──────────────────┬──────────────────┐
│ │ Эффект есть на самом деле │
│ ├──────────────────┬──────────────────┤
│ │ ДА (H₁ верна) │ НЕТ (H₀ верна) │
├─────────────────────┼──────────────────┼──────────────────┤
│ Мы сказали: │ │ │
│ Эффект есть (H₁) │ ✓ Правильно │ ✗ Ошибка I рода │
│ │ (True Positive) │ (False Positive) │
├─────────────────────┼──────────────────┼──────────────────┤
│ Мы сказали: │ │ │
│ Эффекта нет (H₀) │ ✗ Ошибка II рода │ ✓ Правильно │
│ │ (False Negative) │ (True Negative) │
└─────────────────────┴──────────────────┴──────────────────┘
Нулевая и альтернативная гипотезы
H₀ (Нулевая гипотеза): нет разницы между группами
H₀: Control_CR = Test_CR (коэффициент конверсии одинаковый)
H₁ (Альтернативная гипотеза): есть разница
H₁: Control_CR ≠ Test_CR (коэффициент конверсии разный)
Ошибка I рода (False Positive, α)
Определение: мы думаем, что тест "победил", но это случайность.
Пример:
Контроль: 100 / 1000 = 10% конверсия
Тест: 105 / 1000 = 10,5% конверсия
Разница: +0,5% (статистически не значима!)
ОШИБКА I: мы решили, что тест лучше (p < 0.05)
На самом деле: это просто совпадение, эффекта нет
Последствия:
- Запустили плохой тест в продакшене
- Потеряли деньги на неэффективном change
- Дискредитировали A/B тестирование
Вероятность: α (alpha) — обычно 0,05 или 5% Это означает: в 5% случаев мы неправильно скажем "эффект есть"
Как контролировать:
- Установить уровень значимости α = 0.05 (стандарт)
- Увеличить размер выборки
- Использовать Bonferroni correction при множественных тестах
Ошибка II рода (False Negative, β)
Определение: мы думаем, что эффекта нет, но он реально есть.
Пример:
Контроль: 1000 / 10000 = 10% конверсия
Тест: 1200 / 10000 = 12% конверсия
Разница: +2% (РЕАЛЬНЫЙ эффект!)
ОШИБКА II: мы решили, что разницы нет (p > 0.05)
На самом деле: эффект есть, но мы его не заметили
Последствия:
- Не запустили хорошую идею
- Потеряли доход, который мог бы быть
- Потратили время впустую
Вероятность: β (beta) — обычно 0,1-0,2 (10-20%) Мощность теста (Power) = 1 - β (часто 80-90%) Это означает: вероятность выявить реальный эффект
Как контролировать:
- Увеличить размер выборки (главный способ)
- Использовать sequential testing (ранний стоп)
- Правильно рассчитать MDE (Minimum Detectable Effect)
Практические примеры в A/B-тестировании
Сценарий 1: Новый дизайн кнопки
Контроль: 50 покупок из 1000 = 5%
Тест: 52 покупок из 1000 = 5,2%
t-тест: p-value = 0.73 (не значимо)
Декларирование: "Дизайн не влияет на конверсию"
Что может быть:
Ошибка II рода: на самом деле дизайн лучше на 1%, но выборка слишком мала
Решение: увеличить выборку до 10000 пользователей
Сценарий 2: Новый алгоритм рекомендаций
Контроль: 100 покупок из 2000 = 5%
Тест: 115 покупок из 2000 = 5,75%
t-тест: p-value = 0.045 (значимо на α=0.05!)
Декларирование: "Новый алгоритм работает! +0,75%"
Что может быть:
Ошибка I рода: на самом деле нет эффекта, это случайность
Вероятность: 5% (по определению α)
Взаимосвязь α, β, и размера выборки
Чем больше размер выборки — тем ниже обе ошибки
Примеры:
Маленькая выборка (n = 100):
- Высокий риск Ошибки II (не заметим реальный эффект)
- Есть риск Ошибки I
Большая выборка (n = 100000):
- Низкий риск Ошибки II (почти точно заметим эффект)
- Низкий риск Ошибки I
- НО: можем выявить микроскопический эффект (0,1%), который не важен в бизнесе
SQL для расчёта размера выборки
-- Формула: n = (z_alpha + z_beta)^2 * (p1*(1-p1) + p2*(1-p2)) / (p2-p1)^2
WITH sample_calc AS (
SELECT
0.05 as baseline_cr, -- контроль конверсия
0.06 as expected_cr, -- ожидаемая конверсия теста (+1%)
1.96 as z_alpha, -- α=0.05, двусторонний
0.84 as z_beta, -- β=0.2, мощность 80%
(1.96 + 0.84) as z_sum
)
SELECT
CEIL(POWER(z_sum, 2) *
(baseline_cr * (1 - baseline_cr) + expected_cr * (1 - expected_cr)) /
POWER(expected_cr - baseline_cr, 2)
) as required_sample_size_per_group
FROM sample_calc;
-- Результат: ~3138 пользователей на группу
Таблица соответствия между α и β
| α (Ошибка I) | β (Ошибка II) | Power (мощность) | Использование |
|---|---|---|---|
| 0.05 (5%) | 0.20 (20%) | 80% | Стандарт в industry |
| 0.05 (5%) | 0.10 (10%) | 90% | Когда важна точность |
| 0.01 (1%) | 0.10 (10%) | 90% | Очень критичные решения |
| 0.10 (10%) | 0.20 (20%) | 80% | Быстрые итеративные тесты |
Примеры ошибок в реальных компаниях
Ошибка I рода (False Positive):
Компания запустила новый recommend engine и увидела рост на 2% (p=0.04). Запустили в 100% трафика. Через неделю обнаружили, что это была аномалия в данных, эффекта нет. Потеря репутации.
Ошибка II рода (False Negative):
Тестировали новый UI 2 недели, увидели рост на 1,5% (p=0.12). Решили, что не работает. На самом деле, при выборке 50000 пользователей, эффект был реальный (p=0.03). Потеряли 6 месяцев дохода.
Как избежать ошибок
1. Правильно рассчитать размер выборки
Не начинай тест без расчёта:
n = (z_alpha + z_beta)^2 * var / (effect_size)^2
2. Установить MDE (Minimum Detectable Effect)
В бизнесе определить: какой минимальный прирост нужен?
Если дизайн может улучшить конверсию на 1% и это приносит $100K в год
→ стоит тестировать с MDE = 0.5%
Если дизайн может улучшить на 0.1%, это не стоит того
→ не запускаем тест
3. Заранее определить длительность теста
Не смотреть на результаты раньше срока (peeking bias)
Остановить только если:
- Достигнута запланированная выборка
- Или есть явное нарушение (баг, критичное падение)
4. Использовать Sequential Testing
Можно остановить тест раньше, если:
- Эффект уже явно значимый (p < 0.001)
- Или явно нет эффекта и дальше бесполезно
5. Поправка на множественные тесты (Bonferroni)
Если запускаешь 10 A/B тестов одновременно:
Риск Ошибки I возрастает в 10 раз!
Решение: α = 0.05 / 10 = 0.005 для каждого теста
Роль Product Analyst
Product Analyst должен:
- Понимать оба типа ошибок и их последствия
- Правильно рассчитать размер выборки перед тестом
- Устанавливать MDE вместе с PM (минимальный эффект, что имеет смысл)
- Мониторить p-value и не спешить с выводами
- Документировать решения — какую α и β мы выбрали и почему
Это критичные знания для любого аналитика, работающего с A/B тестами. Ошибки могут стоить компании миллионы!