Как можно разработать правило остановки в анализе мощности двух независимых пропорций?

18

Я разработчик программного обеспечения, работающий над системами A / B-тестирования. Я не обладаю достаточным опытом в области статистики, но последние несколько месяцев собираю знания.

Типичный тестовый сценарий предполагает сравнение двух URL-адресов на веб-сайте. Посетитель посещает, LANDING_URLа затем случайным образом перенаправляется либо на, URL_CONTROLлибо URL_EXPERIMENTAL. Посетитель представляет собой образец, и условие победы достигается, когда посетитель выполняет некоторые желательные действия на этом сайте. Это составляет конверсию, а коэффициент конверсии - это коэффициент конверсии (обычно выражаемый в процентах). Типичный коэффициент конверсии для данного URL-адреса составляет от 0,01% до 0,08%. Мы запускаем тесты, чтобы определить, как новые URL сравниваются со старыми. Если URL_EXPERIMENTALпоказано, что превосходит URL_CONTROL, мы заменяем URL_CONTROLна URL_EXPERIMENTAL.

Мы разработали систему с использованием простых методов проверки гипотез. Я использовал ответы на другой вопрос CrossValidated здесь, чтобы разработать эту систему.

Тест настроен следующим образом:

  • Оценка коэффициента конверсии CRE_CONTROLиз URL_CONTROLрассчитываются с использованием исторических данных.
  • Требуемый коэффициент конверсии целевой CRE_EXPERIMENTALиз URL_EXPERIMENTALэтого множества.
  • Уровень значимости 0,95 обычно используется.
  • Обычно используется мощность 0,8.

Вместе все эти значения используются для вычисления желаемого размера выборки. Я использую функцию R, power.prop.testчтобы получить этот размер выборки.

Тест будет выполняться до тех пор, пока не будут собраны все образцы. На этом этапе доверительные интервалы для CR_CONTROLи CR_EXPERIMENTALвычисляются. Если они не перекрываются, то может быть объявлен победитель с уровнем значимости 0,95 и силой 0,8.

У пользователей наших тестов есть две основные проблемы:

1. Если в какой-то момент во время теста будет собрано достаточное количество образцов, чтобы показать явного победителя, нельзя ли остановить тест?

2. Если в конце теста не будет объявлено ни одного победителя, можем ли мы провести тест дольше, чтобы посмотреть, сможем ли мы собрать достаточно образцов, чтобы найти победителя?

Следует отметить, что существует множество коммерческих инструментов, позволяющих их пользователям делать именно то, что хотят наши собственные пользователи. Я читал, что с вышесказанным есть много ошибок, но я также натолкнулся на идею правила остановки и хотел бы изучить возможность использования такого правила в наших собственных системах.

Вот два подхода, которые мы хотели бы рассмотреть:

1. Используя power.prop.test, сравните текущие измеренные коэффициенты конверсии с текущим количеством выборок и посмотрите, было ли собрано достаточно выборок, чтобы объявить победителя.

Пример: был настроен тест, чтобы увидеть, существует ли в нашей системе следующее поведение:

  • CRE_CONTROL: 0.1
  • CRE_EXPERIMENTAL: 0,1 * 1,3
  • С этими параметрами размер выборки Nсоставляет 1774.

Однако, по мере того, как тест продвигается и достигает 325 образцов, CRM_CONTROL(измеренная скорость преобразования для контроля) составляет 0,08 и CRM_EXPERIMENTAL0,15. power.prop.testрассчитывается по этим коэффициентам конверсии и Nсоставляет 325. Именно количество образцов должно быть объявлено CRM_EXPERIMENTALпобедителем! На данный момент мы надеемся, что тест может быть закончен. Точно так же, если тест достигает 1774 выборок, но победитель не найден, но затем он достигает 2122 выборок, что достаточно, чтобы показать, что CRM_CONTROL0,1 и CRM_EXPERIMENTAL0,128 - это результат, в котором можно объявить победителя.

В связанном вопросе пользователи сообщили, что такой тест менее достоверен из-за поощрения ранних остановок с меньшим количеством выборок, а также из-за уязвимости к ошибкам оценки и увеличению числа ошибок типа I и типа II. Есть ли способ заставить это правило остановки работать? Это наш предпочтительный подход, так как он означает меньше времени для программирования. Возможно, это правило остановки может сработать, предлагая какой-либо числовой балл или баллы, которые измеряют достоверность теста, если он будет остановлен досрочно?

2. Используя последовательный анализ или SPRT .

Эти методы тестирования предназначены именно для той ситуации, в которой мы находимся: как наши пользователи могут начать тестирование и завершить его таким образом, чтобы не тратить лишнее время на тестирование? Либо слишком длительное выполнение теста, либо необходимость повторного запуска теста с другими параметрами.

Из двух вышеупомянутых методов я предпочитаю SPRT, потому что мне немного легче понять математику, и, похоже, ее легче программировать. Однако я не понимаю, как использовать функцию правдоподобия в этом контексте. Если бы кто-то мог построить пример того, как вычислить отношение правдоподобия, совокупную сумму отношения правдоподобия, и продолжить на примере, иллюстрирующем ситуацию, когда можно было бы продолжать мониторинг, когда кто-то принял бы нулевую гипотезу и альтернативную гипотезу, это поможет нам определить, является ли SPRT верным путем.

jkndrkn
источник
2
Я рекомендую вам не прибегать к вуду. Когда вы используете инструмент и не понимаете, что именно он делает или как он работает, вы не можете интерпретировать результаты этого инструмента. Когда анализ определяет деловое решение, а вы вкладываете время и деньги в результат, он показывает право собственности, если вы потратите время на понимание источника данных. Это та тяжелая работа, которая дает вам больше возможностей, чем быть «в стаде».
EngrStudent - Восстановить Монику

Ответы:

7

Это интересная проблема, и связанные с ней методы имеют множество применений. Их часто называют стратегиями «временного мониторинга» или «последовательным экспериментальным дизайном» (к сожалению, статья в википедии, на которую вы ссылаетесь, немного скудна), но есть несколько способов сделать это. Я думаю, что @ user27564 ошибается, говоря, что эти анализы обязательно должны быть байесовскими - безусловно, существуют и частые подходы для временного мониторинга.

AsBsAВп(A)знак равноп(В)знак равно0,558Икс такой, что 1-F(Икс;100;0,5)<αF

Подобная логика позволяет найти «точки неизбежности» для других тестов, где:

  1. Общий размер выборки * фиксирован, и
  2. Каждое наблюдение вносит ограниченную сумму в выборку.

Возможно, вам будет легко реализовать это - рассчитать критерии остановки в автономном режиме, а затем просто подключить его к коду своего сайта - но зачастую вы можете добиться еще больших результатов, если хотите прекратить эксперимент не только тогда, когда результат неизбежен , но когда это тоже очень вряд ли изменится.

AВA

Есть также ряд других подходов. Групповые последовательные методы предназначены для ситуаций, когда вы не сможете получить определенное количество предметов, и предметы будут влиять с переменной скоростью. В зависимости от трафика вашего сайта, вы можете или не захотите посмотреть на это.

Есть довольно много пакетов R, плавающих вокруг CRAN, если это то, что вы используете для своего анализа. Хорошим местом для начала может быть представление задач клинических испытаний , так как большая часть этой работы вышла из этой области.


[*] Просто несколько дружеских советов: будьте осторожны при взгляде на значения значимости, рассчитанные по очень большому количеству точек данных. Как вы собираете все больше и больше данных, вы будете в конечном итоге найти значимый результат, но эффект может быть пренебрежимо мал. Например, если вы спросите всю планету, предпочитают ли они A или B, очень маловероятно, что вы увидите точное разделение 50:50, но, вероятно, не стоит переоснащать ваш продукт, если разделение составляет 50.001: 49.999. Продолжайте проверять размер эффекта (то есть разницу в коэффициентах конверсии) тоже!

Мэтт Краузе
источник
1
Чтобы явно решить проблемы ваших пользователей: Да, вы можете определенно завершить анализ рано. Это происходит все время для клинических испытаний - препарат либо настолько успешен, что у них достаточно данных для его эффективности и он хочет дать его людям, которые застряли в контрольной группе (или, что более вероятно, препарат огромен перебор / ухудшение ситуации). Однако продление эксперимента является более спорным - есть методы для исправления нескольких «взглядов», но лучше было бы заранее установить максимальное N - вы всегда можете остановиться рано!
Мэтт Краузе
2
Спасибо за это, я полностью согласен с остановкой, если эксперимент неизбежен, это действительно имеет смысл! С этой «остановкой, если это действительно маловероятно», я бы сомневался, что настоящий частый человек согласится. Это не что иное, как сказать: эй, 95%? Я бы сказал, 93% это тоже хорошо! Я имею в виду, что было бы неплохо просто быть довольным 90% -ной уверенностью, но как частый человек, прежде чем смотреть на данные!
Себастьян
1
Я не частый арх, и я не играю один по телевизору, но я думаю, что у вас все еще может быть разумное частое толкование правила ранней остановки - если бы я провел этот эксперимент 100 раз, как часто я получал бы другой ответ, если я остановился сейчас против, если я побежал к завершению? В обзоре, на который я ссылаюсь, указывается, что это один из тех хороших случаев, когда возможно удовлетворить Байесов и Фрикалистов одновременно ...
Мэтт Краузе
α
1
@ RussellS.Pierce: Я думаю, что это зависит. Очевидно, что сокращение не будет, но некоторые другие методы делают. Например, тест О'Брейна и Флемминга может использовать больше данных, но также может отклонить и раньше, а тест Покока - тем более. Очевидно, это зависит от специфики: в приведенной выше книге есть пример с некоторыми разумными значениями (размер эффекта: 0,25, альфа = 0,05, мощность = 0,9, 5 просмотров). Фиксированная версия N требует 170 предметов для отклонения; Для версии OBF требуется максимум 180, а для Pocock - максимум 205, но ожидаемое количество предметов составляет 130 и 117 соответственно.
Мэтт Краузе
1

Вы можете остановиться рано, но если вы это сделаете, ваши p-значения не легко интерпретируются. Если вас не волнует интерпретация вашего p-значения, то то, каким образом ответ на ваши первые два вопроса «нет», не имеет значения (слишком много). Ваш клиент кажется прагматичным, поэтому истинное толкование p-значения, вероятно, не является той тонкостью, о которой вы заботитесь.

Я не могу говорить о втором подходе, который вы предлагаете.

Тем не менее, первый подход не на твердом основании. Нормальные аппроксимации биномиальных распределений недопустимы для таких низких пропорций (который использует метод power.prop.test, а также метод, использованный Коэном в его классической книге о мощности). Более того, насколько мне известно, не существует решения для анализа мощности в замкнутой форме для тестов пропорции двух выборок (ср. Как можно выполнить анализ биномиальной мощности двух групп без использования нормальных приближений? ). Однако существуют лучшие методы аппроксимации доверительных интервалов пропорций (см. Пакет Пакетный бином). Вы можете использовать неперекрывающиеся доверительные интервалы в качестве частичного решения ... но это не то же самое, что оценка p-значения и, следовательно, не обеспечивает прямой путь к питанию. Я надеюсь, что у кого-то есть хорошее решение для закрытых форм, которым они поделятся с остальными. Если я наткнусь на один, я обновлю вышеупомянутый вопрос. Удачи.

Изменить: Пока я думаю об этом, позвольте мне на минуту прагматично. Ваш клиент хочет, чтобы этот эксперимент закончился, когда он уверен, что экспериментальный сайт работает лучше, чем контрольный сайт. После того, как вы получите достойную выборку, если вы не готовы принять решение, просто начните регулировать отношение вашего случайного назначения к той стороне, которая является «выигрышной». Если это был всего лишь всплеск, регрессия к среднему будет проскальзывать, вы станете менее уверенными и снизите соотношение. Если вы достаточно уверены, позвоните, он уйдет и объявит победителя. Оптимальный подход, вероятно, будет включать байесовское обновление, но я не знаю достаточно об этой теме, чтобы направить вас. Однако я могу заверить вас, что, хотя иногда это может показаться нелогичным, сама математика не так уж сложна.

russellpierce
источник
0

У вас есть типичные вопросы, возникающие в статистических тестах. Есть две «разновидности» статистики: частый и байесовский. Частый ответ на оба ваших вопроса очень прост:

  • НЕТ
  • Нет, ты не можешь остановиться рано
  • Нет, ты не можешь измерить просто дольше

После того, как вы определили свою настройку, вы не можете даже смотреть на данные (слепой анализ). С частой точки зрения, нет пути назад, нет обмана, нет уловок! (РЕДАКТИРОВАТЬ: Конечно, есть попытки сделать это, и они также будут работать, если используются правильно, но большинство из них, как известно, вносят уклон.)

Но есть и байесовская точка зрения, которая совершенно иная. Байесовский подход, в отличие от специалистов, нуждается в дополнительном входе, априорном распределении вероятностей. Мы можем назвать это также предыдущим знанием или предубеждением. Имея это, мы можем использовать данные / измерения, чтобы обновить наши знания до апостериорной вероятности. Дело в том, что мы можем использовать данные и даже больше, мы можем использовать данные в каждой промежуточной точке измерения. В каждом обновлении последним последним является наш новый априор, и мы можем обновлять его новым измерением, насколько нам известно. Нет проблем с ранней остановкой вообще!

Я нашел доклад, в котором обсуждались довольно похожие проблемы, которые у вас есть, и я описал выше: http://biostat.mc.vanderbilt.edu/wiki/pub/Main/JoAnnAlvarez/BayesianAdaptivePres.pdf

Но кроме этого, ты действительно уверен, что тебе это вообще нужно? Кажется, у вас работает какая-то система, решающая, где связать запрос. Для этого вам не нужно доказывать, что ваши решения верны в статистическом смысле с помощью проверки гипотезы. Вы когда-нибудь покупали кока-колу, потому что вы могли бы исключить, что пепси «сейчас» с вероятностью 95%? Достаточно взять тот, который лучше, не исключая гипотезу. Это был бы тривиальный алгоритм: вычислите неопределенность ставки A, вычислите неопределенность B. Возьмите разницу обеих скоростей и разделите ее на неопределенность разности. Результатом является что-то вроде значимости разницы в сигме. Тогда просто возьмите все ссылки, где есть больше чем две или три сигма-разницы. Минус,

SebastianNeubauer
источник
1
Я думаю, что ваши первые четыре абзаца - это нечто вроде красной селедки - существуют частые подходы к промежуточному мониторингу. Это правда, что (байесовское) апостериорное обновление прекрасно подходит для этого, но вы могли бы решить эту проблему многими различными способами. Спасибо за указатель на слайды!
Мэтт Краузе
+1 в любом случае - байесовский подход, вероятно, здесь яснее, чем любое частое исправление.
Расселпирс
2
Э-э, есть такой ... мем ... что байесовские методы позволяют бесконечно заглядывать в данные без каких-либо осложнений. Тем не менее, общий уровень ошибок типа I фактически не контролируется (с чего бы это?), И он может стать сколь угодно большим, если после многих «проверок». Вы можете улучшить это с помощью соответствующего предварительного или доказать, что контроль над ошибкой типа I неэффективен, но это не так, как если бы все байесовские методы были панацеей.
Мэтт Краузе
0

может быть, некоторые методы могут быть использованы как

  • Pocock
  • О'Брайен и Флемминг
  • Пето

это отрегулирует отсечение P на основе результатов и поможет вам прекратить сбор данных и экономить ресурсы и время.

может быть, другие работы могут быть добавлены здесь.

Счастливый человек
источник
Не могли бы вы предоставить ссылки или дополнительную информацию для ваших пунктов маркера?
Антуан
У меня нет таких точных статей, потому что я использовал обзорную статью, которая цитирует их, я имею в виду, что подходы разные, но я могу порекомендовать вам статью, которая решает вопрос в области медицины: адаптивное изменение размера выборки в клинических испытаниях: начните с малого проси добавку? Кристофер Дженнисона * † и Брюс В. Turnbullb
HappyMan