A/B тестирование
p-value, типы ошибок, мощность, MDE, доверительные интервалы и выбор критерия.
19 вопросов
JuniorТеорияОчень частоЧто такое ошибки первого и второго рода и в чём они состоят?
Что такое ошибки первого и второго рода и в чём они состоят?
Ошибка первого рода — ложноположительная: отклонение верной нулевой гипотезы (виден эффект, которого нет); её доля — уровень значимости alpha. Ошибка второго рода — ложноотрицательная: не отклонили ложную нулевую (пропущен реальный эффект); её доля — beta, а мощность равна 1 - beta.
Типичные ошибки
- ✗Менять местами определения ложноположительной и ложноотрицательной ошибок
- ✗Привязывать обе доли только к размеру выборки без компромисса
- ✗Путать статистические ошибки с багами качества данных
Уточняющие вопросы
- →Как увеличение размера выборки влияет на ошибку второго рода и мощность?
- →Почему снижение alpha при прочих равных повышает долю ошибок второго рода?
JuniorТеорияОчень частоЧто такое p-value в проверке гипотез?
Что такое p-value в проверке гипотез?
p-value — это вероятность увидеть данные настолько же или более экстремальные, чем полученные, при условии, что верна нулевая гипотеза. Маленькое p-value означает, что данные маловероятны при нулевой гипотезе, поэтому её отвергают. Это не вероятность того, что нулевая гипотеза верна.
Типичные ошибки
- ✗Читать p-value как вероятность истинности нулевой гипотезы
- ✗Путать p-value с величиной эффекта
- ✗Считать его шансом, что результат воспроизведётся
Уточняющие вопросы
- →Что на самом деле контролирует уровень значимости alpha, равный 0.05?
- →Почему подглядывание в результаты раньше времени раздувает долю ложных срабатываний?
MiddleТеорияОчень частоКак выбрать объём выборки и длительность A/B теста?
Как выбрать объём выборки и длительность A/B теста?
Объём выборки берётся из alpha, мощности (1 - beta), дисперсии базовой метрики и MDE — n растёт с дисперсией и падает как квадрат MDE. Длительность должна набрать это n и покрыть полные бизнес-циклы (хотя бы 1-2 недели ради будни/выходные), избегать эффекта новизны и не останавливаться рано, ведь подглядывание раздувает ложные срабатывания.
Типичные ошибки
- ✗Брать круглый размер выборки без расчёта мощности
- ✗Останавливать тест, как только p впервые упал ниже 0.05
- ✗Игнорировать недельную сезонность и гонять меньше одного цикла
Уточняющие вопросы
- →Почему уменьшение MDE вдвое примерно вчетверо увеличивает выборку?
- →Как методы последовательного тестирования позволяют безопасно подглядывать?
MiddleТеорияОчень частоЧто такое доверительный интервал и как он используется в A/B тестах?
Что такое доверительный интервал и как он используется в A/B тестах?
Доверительный интервал — это диапазон, который при многократной выборке содержит истинный параметр в (1 - alpha)% случаев, а не 95%-я вероятность, что истинное значение лежит в одном фиксированном интервале. В A/B строят интервал разности групп: если он не включает 0, эффект значим, а его ширина задаёт точность.
Типичные ошибки
- ✗Читать 95% как вероятность, что параметр в одном фиксированном интервале
- ✗Путать доверительный интервал с разбросом сырых точек данных
- ✗Считать, что включение 0 означает значимость эффекта
Уточняющие вопросы
- →Как интервал разности связан с p-value двухвыборочного теста?
- →Что происходит с шириной интервала при увеличении выборки вчетверо?
JuniorТеорияЧастоДля чего нужен A/A тест и о чём говорит значимый результат A/A?
Для чего нужен A/A тест и о чём говорит значимый результат A/A?
A/A тест гоняет два идентичных варианта, чтобы проверить платформу — рандомизацию, бакетирование и сбор метрик. Реальной разницы нет, поэтому значимость должна возникать лишь примерно в alpha случаев, так что значимый A/A означает сломанный пайплайн, а не реальный эффект.
Типичные ошибки
- ✗Считать, что значимый A/A подтверждает работу фичи
- ✗Ожидать, что каждый A/A выйдет значимым
- ✗Списывать проваленный A/A на шум, а не на баг платформы
Уточняющие вопросы
- →Как sample-ratio mismatch проявится внутри A/A теста?
- →За много прогонов A/A как часто должна появляться значимость?
JuniorТеорияЧастоЧто такое минимальный детектируемый эффект (MDE) и от чего он зависит?
Что такое минимальный детектируемый эффект (MDE) и от чего он зависит?
MDE — наименьший истинный эффект, который тест способен надёжно обнаружить при выбранных значимости и мощности. Он растёт с дисперсией метрики и убывает с ростом размера выборки: при фиксированных alpha и мощности большее n даёт обнаружение меньшего эффекта. Задаётся на этапе дизайна для расчёта эксперимента.
Типичные ошибки
- ✗Путать MDE с фактически наблюдаемым эффектом
- ✗Считать MDE потолком, а не порогом чувствительности
- ✗Игнорировать дисперсию и размер выборки как главные факторы
Уточняющие вопросы
- →Как меняется требуемый размер выборки при уменьшении MDE вдвое?
- →Что происходит с мощностью, если реальный эффект ниже MDE?
MiddleТеорияЧастоКакой статистический критерий подходит для CTR в A/B тесте и почему?
Какой статистический критерий подходит для CTR в A/B тесте и почему?
CTR — это доля: каждый пользователь даёт Bernoulli 0/1 (кликнул или нет). Сравнивают две группы z-тестом для двух долей или критерием хи-квадрат для долей. При большом n работает и t-тест по бинарному признаку на пользователя. Главное — использовать побинарные данные на пользователя, а не агрегированные ставки, и проверять n для нормального приближения.
Типичные ошибки
- ✗Гонять t-тест по двум агрегированным ставкам без побинарных данных
- ✗Считать метрику-долю непрерывным средним
- ✗Пропускать проверку размера выборки для нормального приближения
Уточняющие вопросы
- →Когда нормальное приближение для доли перестаёт работать?
- →Как метрика-отношение вроде кликов на сессию изменит выбор критерия?
MiddleТеорияЧастоТест вышел плоским при p равном 0.4 — что доверительный интервал скажет то, чего не скажет p-value?
Тест вышел плоским при p равном 0.4 — что доверительный интервал скажет то, чего не скажет p-value?
Незначимый p-value — не доказательство, что фича мертва: отсутствие доказательств не есть доказательство отсутствия. Доверительный интервал показывает диапазон эффектов, ещё совместимых с данными. Узкий интервал у 0 при достаточной мощности означает отсутствие заметного эффекта; широкий значит тест был недомощным, а не отрицательным.
Типичные ошибки
- ✗Читать высокий p-value как доказательство ровно нулевого эффекта
- ✗Считать интервал простым пересказом p-value
- ✗Игнорировать ширину интервала как сигнал низкой мощности
Уточняющие вопросы
- →Как отличить недомощный тест от по-настоящему плоского?
- →Как граница неменьшей эффективности уточнит это решение?
MiddleТеорияЧастоMDE был 3%, а тест показал значимые 1.5% — чему верить?
MDE был 3%, а тест показал значимые 1.5% — чему верить?
Значимый результат ниже MDE означает, что тест был недостаточно мощным для такого эффекта, поэтому находка хрупкая: риск ложноотрицания был высок, а значимый эффект меньше MDE скорее случайность или артефакт подглядывания. Доверять значимости можно, но скептически — пересчитать дисперсию и перепроверить.
Типичные ошибки
- ✗Называть значимый результат ниже MDE невозможным
- ✗Считать значимость доказательством точного размера эффекта
- ✗Полагать, что MDE и наблюдаемый эффект обязаны сойтись
Уточняющие вопросы
- →Что изменит пересчёт дисперсии по данным самого теста?
- →Как ранняя остановка раздувает шанс значимого результата ниже MDE?
MiddleДизайнЧастоКак вы обоснуете и организуете A/B тест для предложенного изменения? Продакт-менеджер хочет выкатить изменение и просит провести нормальный эксперимент. Разберите, как вы обоснуете тест, спроектируете и будете мониторить его, согласуете со смежными командами, учтёте его стоимость и решите, когда A/B — верный инструмент, а когда лучше альтернатива.
Как вы обоснуете и организуете A/B тест для предложенного изменения? Продакт-менеджер хочет выкатить изменение и просит провести нормальный эксперимент. Разберите, как вы обоснуете тест, спроектируете и будете мониторить его, согласуете со смежными командами, учтёте его стоимость и решите, когда A/B — верный инструмент, а когда лучше альтернатива.
Начинают с чёткой гипотезы, целевой метрики и MDE, затем проектируют разбиение и план мониторинга с защитными метриками. Согласуют со смежными командами — маркетингом, коммуникациями, разработкой, чьей работы касается тест. Оценивают стоимость, включая упущенную выгоду от задержки изменения, и обосновывают тест даже при высокой цене. Знают альтернативы (до/после, holdout) и почему A/B лучше при ограниченном времени.
Типичные ошибки
- ✗Запускать разбиение без гипотезы и целевой метрики
- ✗Игнорировать упущенную выгоду и согласование со смежными командами
- ✗Настаивать, что A/B — единственный вариант, игнорируя альтернативы
Уточняющие вопросы
- →Когда geo-holdout окажется лучше пользовательского A/B разбиения здесь?
- →Как оценить в числах упущенную выгоду от задержки изменения?
MiddleДизайнЧастоПродакт смотрит дашборд каждый день и хочет объявить итог, как только p опустится ниже 0.05. Объясните, что это повторное подглядывание делает с долей ложных срабатываний за две недели прогона и что вы предложите взамен, чтобы команда всё же следила за ходом, не портя решение.
Продакт смотрит дашборд каждый день и хочет объявить итог, как только p опустится ниже 0.05. Объясните, что это повторное подглядывание делает с долей ложных срабатываний за две недели прогона и что вы предложите взамен, чтобы команда всё же следила за ходом, не портя решение.
Каждый взгляд — ещё один шанс пересечь 0.05 при верной нулевой, поэтому ежедневное подглядывание за две недели поднимает ошибку первого рода выше номинальных 5% — часто до 20-30%. Единый порог держится лишь для одного спланированного анализа. Взамен зафиксируйте горизонт заранее или примените последовательный alpha-spending метод.
Типичные ошибки
- ✗Считать каждый дневной взгляд независимым тестом на 5%
- ✗Верить, что больше взглядов делают ранний итог надёжнее
- ✗Думать, что более строгий alpha сам гасит раздувание
Уточняющие вопросы
- →Как alpha-spending функция распределяет ошибку по взглядам?
- →Когда байесовский или always-valid подход тут предпочтительнее?
SeniorТеорияЧастоМощность требует куда больше пользователей на группу, чем даёт трафик — какие рычаги снижают требование и чего стоит каждый?
Мощность требует куда больше пользователей на группу, чем даёт трафик — какие рычаги снижают требование и чего стоит каждый?
Срежьте дисперсию через CUPED или стратификацию — это даёт чувствительность без лишнего трафика, но требует стабильного ковариата. Анализируйте только сработавшую популяцию, убирая размытие. Поднимите MDE, смирившись с пропуском малых побед. Гоняйте дольше, платя упущенной выгодой. Ослабьте alpha или мощность, жертвуя контролем ошибок.
Типичные ошибки
- ✗Верить, что лишь сырой объём выборки поднимает мощность
- ✗Считать более строгий alpha бесплатным срезом выборки
- ✗Думать, что неравный сплит максимизирует мощность двух групп
Уточняющие вопросы
- →Как метод ковариатной корректировки CUPED снижает дисперсию без лишнего трафика?
- →Почему анализ сработавшей популяции повышает чувствительность?
MiddleДизайнИногдаУ вас две недели, около 40 000 пользователей в день и новая кнопка оформления заказа. Спроектируйте эксперимент от и до — гипотеза, единица рандомизации, основная и защитные метрики, объём выборки и длительность, анализ. Затем чётко скажите, что вы откажетесь делать даже под давлением сроков и почему такие срезания углов обесценят результат.
У вас две недели, около 40 000 пользователей в день и новая кнопка оформления заказа. Спроектируйте эксперимент от и до — гипотеза, единица рандомизации, основная и защитные метрики, объём выборки и длительность, анализ. Затем чётко скажите, что вы откажетесь делать даже под давлением сроков и почему такие срезания углов обесценят результат.
Зафиксируйте одну гипотезу и одну основную метрику — конверсию в оформление — рандомизируйте по пользователю и рассчитайте мощность на реалистичный MDE при alpha 0.05. Гоняйте все две недели ради недельной сезонности, добавьте защитные метрики и анализируйте в конце. Не подглядывайте и не перебакетируйте по ходу — это раздувает ложные срабатывания.
Типичные ошибки
- ✗Смотреть много метрик без основной и без расчёта мощности
- ✗Рандомизировать по сессии, так что вернувшиеся меняют бакет
- ✗Останавливать, как только p впервые упал ниже 0.05
Уточняющие вопросы
- →Почему рандомизация по пользователю здесь лучше сессионной?
- →Как задать пороги защитных метрик ещё до запуска?
MiddleДизайнИногдаВеб и приложение дают разную конверсию — можно ли считать их равными? Есть две продуктовые воронки — веб и мобильное приложение. Конверсии в покупку близки, но не идентичны, а средняя частота покупок 3.7 на вебе против 4.3 в приложении. Как вы решите, действительно ли воронки одинаковы или различаются по-настоящему, и чем подкрепите вывод статистикой, а не оценкой чисел на глаз?
Веб и приложение дают разную конверсию — можно ли считать их равными? Есть две продуктовые воронки — веб и мобильное приложение. Конверсии в покупку близки, но не идентичны, а средняя частота покупок 3.7 на вебе против 4.3 в приложении. Как вы решите, действительно ли воронки одинаковы или различаются по-настоящему, и чем подкрепите вывод статистикой, а не оценкой чисел на глаз?
На глаз равными их назвать нельзя — разницу надо проверять на статистическую значимость, а не просто наблюдать. Для двух конверсий (долей) применяют z-тест для двух долей или хи-квадрат; для разницы средней частоты покупок (средних) — t-тест. Учитывают размеры выборок и факторы вроде аудитории или состава устройств, прежде чем заключать о различии воронок.
Типичные ошибки
- ✗Объявлять различие реальным по сырым числам без теста
- ✗Применять t-тест к долям вместо теста для долей
- ✗Игнорировать размер выборки и факторы между платформами
Уточняющие вопросы
- →Какие факторы между веб- и приложение-пользователями могут подделать различие?
- →Как рассчитать тест, чтобы надёжно поймать разрыв в частоте 0.6?
MiddleДизайнИногдаТест показывает плюс 18 процентов на 3-й день, но лишь плюс 2 процента к 14-му. Это затухающий эффект новизны или реальная, но меньшая победа? Опишите, как отличить одно от другого, какие срезы данных сделаете и как ответ меняет то, что вы в итоге выкатите и как рассчитаете мощность повторного теста.
Тест показывает плюс 18 процентов на 3-й день, но лишь плюс 2 процента к 14-му. Это затухающий эффект новизны или реальная, но меньшая победа? Опишите, как отличить одно от другого, какие срезы данных сделаете и как ответ меняет то, что вы в итоге выкатите и как рассчитаете мощность повторного теста.
Разбейте пользователей по стажу и дате первого показа: новизна концентрируется в существующих и затухает по мере старения когорты, а реальная победа держится у ранее не видевших. Чистая новизна стремится к нулю, реальный эффект выходит на плато выше. Выкатывайте по устоявшейся оценке позднего окна, а не по всплеску 3-го дня.
Типичные ошибки
- ✗Доверять всплеску 3-го дня как истинному размеру эффекта
- ✗Усреднять раннее и позднее значения в одно число
- ✗Считать, что любое затухание доказывает провал фичи
Уточняющие вопросы
- →Как когортирование по дате первого показа выделит новизну?
- →Почему повтор надо рассчитывать на меньший эффект?
MiddleДизайнИногдаВариант выиграл тест и был раскатан на 100 процентов, но метрика затем упала, а не выросла. Перечислите всё, что могло пойти не так — от статистики до инструментирования и системы в целом — и скажите, как вы подтвердите, какая именно причина стоит за регрессом, прежде чем откатывать.
Вариант выиграл тест и был раскатан на 100 процентов, но метрика затем упала, а не выросла. Перечислите всё, что могло пойти не так — от статистики до инструментирования и системы в целом — и скажите, как вы подтвердите, какая именно причина стоит за регрессом, прежде чем откатывать.
Победа могла быть ложным срабатыванием, либо winner's curse раздул эффект ниже MDE с откатом к среднему. Новизна могла выветриться, период раската отличаться сезонно, а sample-ratio mismatch перекосить группы. На 100 процентах нет холдбэка, а часть эффектов видна лишь на полном масштабе. Подтверждайте долгим holdout и проверкой пайплайна.
Типичные ошибки
- ✗Называть спад после победы математически невозможным
- ✗Считать, что доказанный победитель обязан сам восстановиться
- ✗Игнорировать winner's curse и откат к среднему
Уточняющие вопросы
- →Как долгий holdout позволяет измерять эффект после раската?
- →Почему отбор победителя смещает его размер эффекта вверх?
MiddleДизайнИногдаВариант выигрывает в целом, но проигрывает в каждом сегменте платформы — iOS, Android и веб все за контроль, а объединённое число за тритмент. Назовите работающий здесь парадокс, объясните механизм, который его порождает, и решите, что вы в итоге выкатите и почему.
Вариант выигрывает в целом, но проигрывает в каждом сегменте платформы — iOS, Android и веб все за контроль, а объединённое число за тритмент. Назовите работающий здесь парадокс, объясните механизм, который его порождает, и решите, что вы в итоге выкатите и почему.
Это парадокс Симпсона: неравный состав сегментов по группам разворачивает объединённый итог. Если тритмент набрал больше трафика с высококонверсионной платформы, его общая доля растёт, хотя в каждом сегменте он проигрывает. Этот перекос обычно sample-ratio mismatch, поэтому агрегату верить нельзя; выкатывайте направление сегментов.
Типичные ошибки
- ✗Верить объединённому числу из-за крупнейшей выборки
- ✗Называть разворот сегментов против агрегата невозможным
- ✗Игнорировать состав распределения и возможный sample-ratio mismatch
Уточняющие вопросы
- →Как обнаружить стоящий за этим sample-ratio mismatch?
- →Когда стратифицированный или взвешенный анализ спасёт тест?
SeniorДизайнИногдаТест рекомендаций показывает рост CTR, плоскую выручку и рост жалоб. Выберите ровно ОДНУ основную метрику для решения, защитите этот выбор от соблазна праздновать прирост CTR и задайте защитные метрики и пороги-триггеры, которые остановят раскат, даже если основная метрика выглядит хорошо.
Тест рекомендаций показывает рост CTR, плоскую выручку и рост жалоб. Выберите ровно ОДНУ основную метрику для решения, защитите этот выбор от соблазна праздновать прирост CTR и задайте защитные метрики и пороги-триггеры, которые остановят раскат, даже если основная метрика выглядит хорошо.
Сделайте основной метрикой выручку на пользователя, а не CTR. CTR — прокси, который кликбейтный вариант может раздуть, вредя важному вам исходу — классическая ловушка суррогата, где оптимизация прокси портит цель. Задайте защиту на жалобы, отписки и retention с триггерами, что останавливают раскат при любом пробое.
Типичные ошибки
- ✗Выбирать CTR, потому что она сдвинулась сильнее всех
- ✗Выкатывать по той метрике, что случайно улучшилась
- ✗Сливать метрики в один балл без защитных метрик
Уточняющие вопросы
- →Как закон Гудхарта объясняет разрыв CTR и выручки?
- →Как откалибровать порог-триггер по доле жалоб?
SeniorДизайнРедкоЭффект реален, но крошечный — плюс 0.3 процента конверсии, статистически значимо на огромном трафике. Стоит ли выкатывать? Постройте аргумент через MDE, на который вы считали мощность, стоимость разработки и поддержки и эффект храповика от многих малых складывающихся побед, и скажите, что перевернёт решение в любую сторону.
Эффект реален, но крошечный — плюс 0.3 процента конверсии, статистически значимо на огромном трафике. Стоит ли выкатывать? Постройте аргумент через MDE, на который вы считали мощность, стоимость разработки и поддержки и эффект храповика от многих малых складывающихся побед, и скажите, что перевернёт решение в любую сторону.
Значимость — не практическая значимость: на огромном трафике ничтожный эффект легко берёт p ниже 0.05. Если 0.3 процента ниже вашего MDE, оценка шумная и раздута winner's curse. Но малые победы работают храповиком: много независимых приростов складываются. Выкатывайте, если поддержка почти бесплатна, а нижняя граница интервала положительна.
Типичные ошибки
- ✗Путать статистическую значимость с практической
- ✗Отбрасывать любую победу меньше процента как бесполезную
- ✗Ждать, что крошечный эффект вырастет на полном масштабе
Уточняющие вопросы
- →Как winner's curse смещает едва значимый эффект?
- →Как портфельный взгляд на много малых побед меняет решение?