Я отвечаю за представление результатов A / B-тестов (на разных сайтах) в моей компании. Мы запускаем тест в течение месяца, а затем регулярно проверяем p-значения до тех пор, пока не достигнем значимости (или откажемся, если значимость не будет достигнута после длительного выполнения теста), что я сейчас выясняю, что это ошибочная практика .
Я хочу прекратить эту практику сейчас, но для этого я хочу понять, ПОЧЕМУ это неправильно. Я понимаю, что размер эффекта, размер выборки (N), критерий альфа-значимости (α) и статистическая мощность или выбранная или подразумеваемая бета (β) связаны математически. Но что именно изменится, когда мы остановим наш тест, прежде чем достигнем необходимого размера выборки?
Я прочитал несколько постов здесь (а именно это , это и это ), и они говорят мне, что мои оценки будут предвзятыми, и уровень моей ошибки типа 1 резко возрастет. Но как это происходит? Я ищу математическое объяснение , которое четко продемонстрировало бы влияние размера выборки на результаты. Я предполагаю, что это как-то связано с отношениями между факторами, которые я упомянул выше, но я не смог выяснить точные формулы и выработать их самостоятельно.
Например, преждевременная остановка теста увеличивает частоту ошибок типа 1. Хорошо. Но почему? Что происходит с увеличением частоты ошибок типа 1? Мне не хватает интуиции здесь.
Помогите, пожалуйста.
Ответы:
A / B-тесты, которые просто тестируют повторно одни и те же данные с фиксированным уровнем ошибки ( ) типа 1 , в корне ошибочны. Есть как минимум две причины, почему это так. Во-первых, повторные тесты коррелируют, но тесты проводятся независимо. Во-вторых, фиксированная не учитывает многократно проводимые тесты, приводящие к увеличению ошибки типа 1.α α
Чтобы увидеть первое, предположим, что при каждом новом наблюдении вы проводите новый тест. Ясно, что любые два последующих значения р будут коррелироваться, потому что случаи не изменились между двумя тестами. Следовательно, мы видим тенденцию на графике @ Bernhard, демонстрирующую эту корреляцию p-значений.n−1
Чтобы увидеть , во - вторых, следует отметить , что даже тогда , когда испытания независимы, вероятность того , чтобы иметь р-величину ниже увеличивается с увеличением числа испытаний где является событие ложно отвергнутой нулевой гипотезы. Таким образом, вероятность получить хотя бы один положительный результат теста будет против как если бы вы неоднократно проходили a / b тестирование. Если вы просто остановитесь после первого положительного результата, вы только покажете правильность этой формулы. Иными словами, даже если нулевая гипотеза верна, вы в конечном итоге отвергнете ее. Таким образом, a / b-тест является наилучшим способом нахождения эффектов там, где их нет.α t
Поскольку в этой ситуации и корреляция, и множественное тестирование выполняются одновременно, p-значение теста зависит от p-значения . Так что если вы наконец достигнете , вы, вероятно, останетесь в этом регионе на некоторое время. Вы также можете увидеть это на графике @ Bernhard в области от 2500 до 3500 и от 4000 до 5000.t+1 t p<α
Многократное тестирование само по себе является законным, а тестирование с фиксированной - нет. Существует множество процедур, которые касаются как процедуры множественного тестирования, так и коррелированных испытаний. Одно семейство тестовых исправлений называется семейным контролем частоты ошибок . Что они делают, чтобы заверитьα
Возможно, самая известная настройка (из-за своей простоты) - это Bonferroni. Здесь мы устанавливаем для которого легко показать, что если число независимых тестов велико. Если тесты коррелируют, это, вероятно, будет консервативным, . Таким образом, самая простая настройка, которую вы можете сделать, это разделить ваш альфа-уровень на на количество тестов, которые вы уже сделали.P ( A ) ≈ α P ( A ) < α 0,05
Если мы применим Bonferroni к симуляции @ Bernhard и интервал по оси Y, мы увидим график ниже. Для ясности я предположил, что мы не проверяем после каждого броска монеты (проба), а только каждую сотую. Черная пунктирная линия - это стандартное отрезание а красная пунктирная линия - корректировка Бонферрони.α = 0,05(0,0.1) α=0.05
Как мы видим, корректировка очень эффективна и демонстрирует, насколько радикально мы должны изменить значение p, чтобы контролировать частоту ошибок по семьям. В частности, сейчас мы больше не находим значимого теста, как и должно быть, потому что нулевая гипотеза @ Berhard верна.
Сделав это, отметим, что Бонферрони очень консервативен в этой ситуации из-за коррелированных тестов. Существуют превосходные тесты, которые будут более полезными в этой ситуации в смысле наличия , такие как тест на перестановку . Кроме того, о тестировании можно сказать гораздо больше, чем просто сослаться на Бонферрони (например, посмотреть уровень ложных открытий и связанные с ним байесовские методы). Тем не менее это отвечает на ваши вопросы с минимальным количеством математики.P(A)≈α
Вот код:
источник
Если нулевая гипотеза верна, то люди часто ожидают, что значение p будет очень высоким. Это неправда. Если нулевая гипотеза верна, то p является равномерно распределенной случайной величиной. Это означает, что время от времени будет случайным образом ниже 0,05. Если вы посмотрите на множество различных подвыборок, иногда значение p будет ниже 0,05.
Чтобы это было легче понять, вот небольшая симуляция в
R
:Это бросит монету 10000 раз, и мы знаем, что это справедливая монета:
Начиная с 5-го броска, он будет выполнять биномиальный тест на справедливость после каждого броска и сохранять значения p:
И это будет строить p-значения одно за другим:
Как вы можете видеть, значение p несколько раз падает ниже 0,05, чтобы восстановиться, и в конечном итоге оказывается намного выше p = 0,05. Если бы мы остановили испытание в любое время, когда р было «значимым», мы бы пришли к неверному выводу. Кто-то может возразить: «У нас есть выборка из более чем 4000 испытаний, и р был ниже 0,05. Несомненно, мы можем прекратить выборку дальше». Чем чаще вы проверяете значение p, тем больше вероятность, что вы проверите случайное падение. В этом случае мы сгенерировали данные под и знаем, что истинно.H 0H0 H0
(Просто чтобы быть совершенно открытым, я попробовал более одного начального числа для генератора чисел, прежде чем он стал таким же понятным, как этот пример, но это справедливо для образовательных целей. Если вы
R
установили и работаете, вы можете легко поиграть с числами .)источник