Множественные сравнения в A/B
Мы научились мерить эффект в целом (ATE) и по сегментам (CATE). Но как только в эксперименте появляется много вариантов, метрик или сегментов — двадцать метрик дашборда пиццерии, десять городов, — возникает новая ловушка: проверяя много гипотез сразу, легко поймать случайную «значимость». Разберём, почему так и как с этим работать.
Без поправки «значимо» проходят и настоящие эффекты, и ~5% пустых (красные). Бонферрони (FWER) опускает порог до α/m — ложные почти исчезают, но вместе с ними гаснут и настоящие находки (много оранжевых «пропущено»). Бенджамини–Хохберг (FDR) держит не «ноль ошибок», а долю ложных среди найденного: порог — точка, где лесенкой i·α/m перестаёт накрывать отсортированные p, — обычно ловит больше настоящих эффектов при контролируемой доле ложных.
Каждый квадрат — отдельная проверка гипотезы. Реального эффекта нет ни в одной (это заведомо пустые тесты). Порог значимости — 5%. Нажмите «запустить тесты».
Перед пачкой тестов решите, что страшнее: пропустить находку (тогда контролируйте FDR) или поймать ложную (тогда FWER/Бонферрони). Порог выбирается до данных.
Дашборд с 50 метриками: какая-нибудь почти всегда «значимо» отличается между сегментами. Не спешите радоваться — это ожидаемый шум. Аналитики либо поправляют порог, либо перепроверяют находку на новых данных.
Это прямое продолжение урока про подглядывание: и многократная проверка по времени, и проверка многих метрик разом раздувают ложные победы.
В генетике сравнивают тысячи генов с болезнью — без поправки гарантированно вылезут ложные ассоциации, поэтому там используют очень строгие пороги.
В аналитике это «дата-дайвинг»: перебирать срезы и метрики, пока не выскочит красивый результат для презентации. Красиво — но невоспроизводимо.
Классика жанра — «мёртвый лосось»: исследователи положили мёртвую рыбу в МРТ-сканер, прогнали стандартный анализ по тысячам вокселей без поправок — и «нашли» мозговую активность. Работа получила Шнобелевскую премию и стала вечным памятником множественным сравнениям.
Определения
Бонферрони рассчитан на худший случай — независимые тесты. Когда метрики сильно коррелируют (выручка и средний чек), поправка становится избыточно строгой и режет мощность; тогда честнее процедуры контроля FDR (Бенджамини-Хохберг).
Поправки лечат только заявленные сравнения. «Значимый» сегмент, найденный перебором по данным, поправкой по списку уже не спасти — такой результат проверяют заново на свежих данных.
Подробный разбор: математика и механизм (необязательно)
Алгоритм Бонферрони (контроль FWER). 1) Задайте общий допустимый риск α (обычно 0.05). 2) Поделите его на число проверок: порог = α / m. 3) Отвергайте H0 в тех тестах, где p < α/m. 4) Тогда вероятность хотя бы одного ложного открытия во всей семье ≤ α. Плюс — простота и жёсткая гарантия; минус — при большом m порог крошечный, и мощность (шанс поймать реальные эффекты) резко падает. Родственник — метод Холма: та же идея, но по шагам и чуть мощнее.
Алгоритм Бенджамини–Хохберга (контроль FDR). 1) Соберите все m p-значений и отсортируйте по возрастанию: p(1) ≤ p(2) ≤ … ≤ p(m). 2) Задайте допустимую долю ложных q (например, 0.05). 3) Идя от конца, найдите наибольший ранг k, при котором p(k) ≤ (k/m)·q. 4) Отвергните H0 для всех гипотез с рангами 1…k (в т.ч. тех, у кого p больше их индивидуальной границы, но они «под» найденным k). 5) Тогда ожидаемая доля ложных среди отвергнутых ≤ q. Практика: BH — стандарт там, где гипотез много (гены, признаки, десятки метрик и сегментов), потому что находит заметно больше настоящих эффектов, чем Бонферрони, платя лишь небольшой контролируемой долей ошибок.