Книга: Аналитическая культура

Практические рекомендации по A/B-тестированию

Практические рекомендации по A/B-тестированию

После такого вступления, описавшего преимущества применения A/B-тестирования, давайте перейдем к практическим аспектам и посмотрим, как качественно его организовать.

ПОДГОТОВИТЕЛЬНЫЙ ЭТАП

В этом разделе мы рассмотрим ряд аспектов, на которые следует обратить внимание в ходе подготовительного этапа. Первое и самое важное — сформулировать критерии, которыми вы будете руководствоваться. Затем мы рассмотрим так называемые А/А-тесты, которые важны для проверки аппарата эксперимента. Кроме того, их можно использовать для генерирования нескольких ложноположительных результатов, чтобы наглядно продемонстрировать руководителям и коллегам статистическую значимость и важность достаточно большой выборки. Далее мы детально изучим план A/B-теста (что мы тестируем, кто участники, какой анализ будет проводиться и так далее). Наконец, мы остановимся на важнейшем аспекте и фактически первом вопросе, который задают все новички: каким должен быть размер выборки?

Критерии эффективности

Рекомендация: четко сформулируйте критерии эффективности до начала тестирования.

Важно иметь четкое понимание своей цели и имеющихся средств. Зачем мы это делаем? Особенно важно до начала тестирования определить ключевые показатели, которые иногда называют критериями общей оценки. В чем будет заключаться успешный результат? Если вы этого не сделаете, у вас может появиться соблазн собрать как можно больше данных в ходе эксперимента, а на этапе анализа начать статистически тестировать всё и ухватиться за значимые результаты. Хуже того, может появиться мысль выборочно отразить в отчетах только положительные показатели и результаты. Такой подход лишь доставит вам неприятности и не принесет долгосрочной пользы компании.

А/А-тестирование

Рекомендация по проведению A/A тестов

Если А обозначает контрольную группу, то, как вы уже могли догадаться, A/A-тестирование представляет собой сравнение двух контрольных групп, все изначальные условия для которых одинаковые. Какой в этом смысл? На самом деле есть целый ряд преимуществ.

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

Во-вторых, если при сопоставимом размере двух выборок наблюдаются сильно отличающиеся показатели деятельности, это свидетельствует о проблеме с отслеживанием событий, проблеме при проведении анализа или составлении отчетности. При этом можно ожидать уровень различий при А/А-тестировании около 5 %, сделав допущение, что вы придерживаетесь стандартного статистического уровня значимости 5 %. Что действительно нужно отслеживать при многократном проведении A/A-тестов, так это наблюдаются ли у вас значительные расхождения, на порядок больше, чем стандартный уровень значимости. Если да, это может свидетельствовать о проблеме. Однако Георгий Георгиев резонно отмечает: «Даже если вам требуется всего 500 или 100 A/A-тестов, чтобы заметить статистически значимые отклонения от ожидаемых результатов, это все равно огромная потеря денег. Просто потому, что впечатления, клики, посетители — это все не бесплатно, не говоря уже о том, как вы могли бы использовать этот трафик»[132]. Нужно проводить множество A/B-тестов и постоянно внедрять инновационные решения. Однако, если у вас нет постоянного потока A/B-тестов или возник перерыв, проводите A/A-тесты.

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

Наконец, в блоге Nelio A/B Testing отмечается, что применение A/A-тестов имеет, помимо прочего, и образовательную функцию[133]. Для тех компаний, где конечные пользователи или руководители никогда раньше не имели дела с A/В-тестированием и не особо подкованы в вопросах вероятности и теории статистики, это будет весьма полезно. Не стоит торопить события и сразу переходить к A/B-тестированию, полагая, что тестируемые показатели должны быть лучше контрольных, даже когда результаты впечатляют. Статистически значимый результат может быть делом случая, и самое наглядное доказательство этого — A/A-тестирование.

Планирование A/В-теста

Рекомендация: продумайте весь ход эксперимента до его начала.

При планировании теста следует обратить внимание на многие аспекты. Тем компаниям, которые намерены внедрить у себя культуру A/В-тестирования, я рекомендовал бы заранее продумать приведенный ниже спектр вопросов. После того как вы запустите тестирование, обсуждать критерии эффективности будет поздно. Вряд ли вы захотите, чтобы кто-то подтасовывал результаты во время анализа. Этап обсуждения и всех согласований должен предшествовать этапу самого тестирования.

Цель

• В чем цель этого теста?

Зоны ответственности

• Кто представитель от бизнеса?

• Кто отвечает за реализацию тестов?

• Кто осуществляет бизнес-аналитику?

Планирование эксперимента

• Какие показатели вы планируете тестировать, а какие будут являться контрольными?

• Кто составит вашу тестовую и контрольную группы (то есть люди)?

• Каковы ваша нулевая и альтернативная гипотезы?[134]

• Какие показатели вы планируете отслеживать?

• Когда будут обсуждаться результаты и формироваться обратная связь?

• Когда начнется тестирование?

• Требуется ли время для «разогрева»? В таком случае, с какого момента пойдет отсчет эксперимента для аналитических целей?

• Сколько продлится тест?

• Как определили размер выборки?

Процесс анализа

• Кто будет проводить анализ? (В идеале должно быть разделение между теми, кто планирует эксперимент, и теми, кто оценивает результаты.)

• Какой вид анализа будет проводиться?

• Когда начнется процесс анализа?

• Когда он завершится?

• Какое программное обеспечение будет использоваться для его проведения?

Результаты

• Как будут распространяться результаты анализа?

• Как будет приниматься окончательное решение?

Список кажется довольно длинным, но по мере того как вы будете проводить все больше и больше тестов, некоторые из вопросов и ответов перейдут в разряд стандартных. Например, ответы могут быть: «При проведении анализа мы всегда используем R» или «Проведение статистического анализа входит в обязанности Сары». Этот набор вопросов станет постепенно внедряться в корпоративную культуру, процесс будет становиться все более автоматическим, пока наконец он не станет естественным и привычным.

По получившемуся у меня описанию процедура проведения эксперимента и процесс анализа — очень четкие, почти клинические и доведенные до автоматизма: тест А против теста В, какой тест выигрывает, тот и внедряется на практике. Если бы так и было, то это был бы полный процесс управления на основе данных. Но реальный мир гораздо сложнее. В игру вступают другие факторы. Во-первых, результаты не всегда четко определены. Возможна двусмысленность. Не исключено, что показатель в тестовой группе был немного завышенным на протяжении всего теста, но незначительно. Или некоторые факторы компенсировали друг друга (например, объем продаж и уровень конверсии). Или, возможно, в процессе анализа вы обнаружили фактор, способный повлиять на объективность результатов. Все это может негативно сказаться на их анализе и интерпретации. Подобная двусмысленность вполне реальна. Во-вторых, отдельный эксперимент не обязательно отражает ту долгосрочную стратегию, которой следует компания. Пи Джей Маккормик приводит пример подобной ситуации на Amazon[135]. Он описывает A/B-тест, в котором в качестве контрольного элемента выступало крошечное изображение покупаемого продукта, настолько маленькое, что его было невозможно рассмотреть. В качестве тестируемого элемента было более крупное изображение продукта. Казалось бы, результат теста очевиден. Но не все так просто: маленькое изображение, по которому даже не было понятно, на что кликает пользователь, победило! Тем не менее в компании приняли решение перейти на размер изображения крупнее. Почему?

«Мы запустили более крупные изображения, потому что так пользователи видят, что они покупают. Это более положительный опыт. Кроме того, это совпадает с тем, к чему мы стремимся в долгосрочной перспективе, и с нашим видением. Данные не мыслят в долгосрочной перспективе за вас. Они не принимают решения. Они лишь дают информацию — пищу для размышлений. Но если вы принимаете решения автоматически, не задумываясь о том, что означают эти данные, и не соотнося их с вашим долгосрочным видением относительно вашего продукта или пользователей, то, скорее всего, ваши решения будут ошибочными»[136].

(Процесс принятия решений будет темой следующей главы.)

Размер выборки

Рекомендация: используйте калькулятор размера выборки.

Вопрос, который мне чаще всего задают относительно A/B-тестирования: «Как долго нужно проводить тестирование?» Обычно я отвечаю: «Я не знаю, нужно подсчитать с помощью калькулятора размера выборки».


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

Причина, по которой непросто дать ответ на этот вопрос, заключается в том, что существует множество факторов, которые мы пытаемся оптимизировать.

Предположим, мы проводим стандартный A/B-тест. Есть четыре возможных сценария. Между сравниваемыми показателями не наблюдается различия, тогда:

1) мы приходим к верному заключению, что различия нет;

2) мы приходим к ошибочному заключению, что различия нет; это ложноположительный результат.

Или между сравниваемыми показателями наблюдается различие, тогда:

3) мы приходим к ошибочному заключению, что различия нет; это ложноотрицательный результат;

4) мы приходим к верному заключению, что различие есть.

Вышесказанное можно суммировать следующим образом.


Наша цель — попытаться оптимизировать вероятность верного заключения (1 или 4) и минимизировать вероятность сделать ложноположительное (2) или ложноотрицательное (3) заключение.

Для этого в нашем распоряжении два рычага, которыми мы можем воспользоваться.

Первый — более очевидный размер выборки. Если бы вы проводили опросы избирателей на президентских выборах, то были бы более уверены в своем прогнозе, если бы опросили 500 тыс. проголосовавших, а не 5 тыс. Это верно и относительно A/B-тестирования. Более значительная выборка повышает вашу статистическую мощность (статистический термин) при определении статистически достоверного различия, если это различие действительно существует. Возвращаясь к нашему примеру с четырьмя возможностями, если различие есть, то более крупная выборка снижает вероятность ложноотрицательного заключения (то есть более вероятно сделать вывод 4, чем 3). Обычно используется мощность 0,8. Это означает, что при существовании различия мы сможем определить его с вероятностью 80 %. Запомните это, мы вернемся к этому чуть позже.

Второй рычаг в нашем распоряжении — это статистический уровень значимости, обычно составляющий 5 %[137]. (Для масштабной выборки хороший подход — выбрать p ? 10–4.) Это означает приемлемую вероятность сделать ложноположительное заключение, если на самом деле различия между сравниваемыми показателями нет. Предположим, у нас есть обычная монета. Мы подбросили ее десять раз, и десять раз выпал орел. Кажется, сюда закралась погрешность в пользу орла. Но самая обычная монета все же могла бы упасть орлом вверх десять раз подряд, но только один раз из 1024 раз, или примерно 0,1 % от всех случаев. Если мы предположим, что монета с погрешностью, то рискуем ошибиться в 0,1 % случаев. Это кажется приемлемым риском. Далее, предположим, мы решаем, что если мы увидим восемь, девять или десять орлов или, наоборот, ноль, один или два орла, то сделаем вывод, что монета с погрешностью. При этом есть вероятность ошибиться уже в 11 % случаев. Это кажется слишком рискованным. Суть в том, чтобы сбалансировать убедительность доказательства, что тестируемое качество действительно оказывает влияние, против вероятности, что мы наблюдаем лишь случайный эффект (а фактического различия нет).

Итак, вооружившись критерием статистической мощности = 0,8 и уровнем статистической значимости = 5 %, переходим к калькулятору размера выборки (рис. 8.3). Вводим два этих значения (см. нижнюю часть рисунка), но кроме этого нужно предоставить дополнительную информацию. Этот тип калькулятора (оптимизированный для определения конверсии, то есть контроля перехода на сайт) запрашивает базовый показатель коэффициента конверсии. Это значит текущий коэффициент в вашей контрольной группе. Он также запрашивает значение минимального заметного эффекта. Это означает, что при существовании значительного различия, например 7 %, вы сможете определить его сразу же и обойтись при этом небольшим размером выборки. Если требуется определить менее значительное различие, например 1 %, потребуется выборка более крупного размера, чтобы убедиться, что различие действительно существует и оно не случайно. При коэффициенте конверсии 10 % и различии 1 % вам потребуется выборка из 28 616 человек: 14 313 составят контрольную группу и столько же — тестовую.


Рис. 8.3. Калькулятор размера выборки для определения конверсии

Источник: http://www.evanmiller.org/ab-testing/sample-size.html

Есть разные калькуляторы размера выборки, подходящие для разных ситуаций. Например, для сравнения средних значений, скажем, среднего размера корзины в контрольной группе и тестовой группе, калькулятор размера выборки будет похожим, но требования по вводимой информации станут слегка отличаться, например базовым показателем вариативности[138].

Оценить, сколько дней нужно на проведение эксперимента, можно путем деления среднего дневного трафика на общий размер выборки.

Обратите внимание, что это минимальный размер выборки. Предположим, исходя из размера выборки и уровня посещаемости вашего сайта, вам рекомендуется проводить тестирование в течение четырех дней. Если в эти дни уровень посещаемости сайта был ниже обычного среднего показателя, следует продолжить эксперимент, пока вы не достигнете минимального размера выборки. Если вы не продлите эксперимент или слишком рано его завершите, результаты будут необъективными. В итоге у вас повысится вероятность получить ложноотрицательное заключение: вы не сможете определить различие, которое существует. Более того, если наблюдается положительный результат, повышается вероятность того, что он не отражает действительность (см. Most Winning A/B Test Results Are Illusory[139]). Это чрезвычайно важный эффект. Вы видите положительное влияние, празднуете свою победу, запускаете тестируемую характеристику в массовое производство, а затем не наблюдаете никакого роста. Итог — напрасно потраченные время и силы, а кроме того, утрата доверия.

Итак, мы определили размер выборки и продолжительность тестирования. Или не совсем? Если вы проводите тестирование в течение четырех дней с понедельника по четверг, получите ли вы те же самые демографические и поведенческие характеристики пользователей, которые получили бы, проводи вы тестирование с пятницы по понедельник? В большинстве случаев они будут различаться. Это «эффект дня недели» в действии: пользователи, посещающие сайт в выходные, и их поведение отличаются от тех, что посещают сайт в другие дни. Таким образом, если согласно калькулятору размера выборки тестирование рекомендуется проводить в течение четырех дней, лучше продлите его еще на три дня, чтобы охватить неделю полностью. Если рекомендуемая продолжительность тестирования — 25 дней, проводите его в течение четырех недель.

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

ПРОВЕДЕНИЕ ТЕСТИРОВАНИЯ

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

Выбор участников тестирования

Рекомендация: предложите оценить тестируемую характеристику 50 % пользователей, отвечающих критериям отбора, и обеспечьте стабильность процесса.

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

Эта выборка пользователей представляет совокупность всех участников тестирования, которых можно разделить на две группы — контрольную и тестовую. Следующий вопрос: в каком соотношении формировать группы? В идеале совокупный трафик следует разделить 50/50, но так получается не всегда. Кохави и др. отмечают, что «распространенная практика среди новичков, которые только начинают проводить подобные эксперименты, — предложить протестировать новую характеристику лишь небольшому проценту пользователей»[140]. Вероятно, они поступают так, чтобы избежать риска и снизить негативное влияние, если с новой характеристикой возникнут проблемы. Однако это плохая стратегия, так как тогда проведение тестирования займет больше времени. Тестирование должно пройти для минимального размера выборки для обеих групп — контрольной и тестовой, поэтому, если трафик в тестовой группе снижен, например, до 10 %, очевидно, что потребуется гораздо больше времени, пока размер выборки тестовой группы достигнет требуемого. В этом случае рекомендуется, наоборот, «усилить» эксперимент, повысив пропорцию трафика в тестовой группе (подробнее мы коснемся этого чуть позже), чтобы снизить риск, но достигнуть трафика в 50 %.

Необходим надежный механизм распределения посетителей сайта в контрольную или тестовую группу. То есть необходимо сделать это случайным образом, но системно. При рекомендованном делении 50/50 у пользователя должна быть одинаковая вероятность оказаться в любой из двух групп. Один из подходов заключается в применении генератора случайных чисел, назначении пользователям их группы и сохранении этого варианта в определенной базе данных или, возможно, в куки-файле. На основании этой информации пользовательский интерфейс (UI) в дальнейшем будет отображать тот вариант сайта, который нужно для этой группы. Этот подход хорошо работает для сайтов, где все пользователи аутентифицированы. Другой подход состоит в спонтанном распределении пользователей по двум группам. При этом важно, чтобы при повторном возвращении на сайт пользователь системно попадал в одну и ту же группу, поэтому здесь необходим четко определенный процесс распределения пользователей. Например, можно применить мод или подходящую функцию хеширования (расстановки ключей) к каждому ID пользователя. (Кохави и др. подробно обсуждают разные протоколы для системного распределения.) Обеспечение стабильного опыта для пользователя имеет важное значение. Если он будет видеть разные версии сайта, это может привести его в замешательство и повлиять на качество данных и их анализа.

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

Начало тестирования

Рекомендация: постепенно наращивайте количество пользователей в тестовой группе до 50 % от совокупной выборки.

В начале эксперимента можете сразу направить 50 % трафика в тестовую группу. Сложность заключается в том, что, если закралась ошибка, в результате которой половина ваших пользователей получила негативный опыт, то вы можете просто потерять эту половину пользователей. Вместо этого можно попробовать другой подход: постепенно наращивать количество пользователей в тестовой группе и тщательно контролировать показатели. Рон Кохави предлагает следующую схему[141]:

• 1 % пользователей направляется в тестовую группу на четыре часа;

• 5 % пользователей направляются в тестовую группу на четыре часа (то есть перевод дополнительных 4 % пользователей из контрольной группы в тестовую);

• 20 % пользователей направляются в тестовую группу на четыре часа;

• 50 % пользователей направляются в тестовую группу на все оставшееся время тестирования.

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

Завершение тестирования

Рекомендация: проводите эксперимент, пока не охватите минимальный размер выборки или больше.

Я уделил пристальное внимание вопросу определения размера выборки, потому что у него могут быть серьезные последствия. Если завершить тестирование раньше срока, вероятность ошибки существенно возрастет. Можно не увидеть положительного эффекта от тестируемой характеристики, которая могла бы принести компании дополнительную прибыль, или, наоборот, можно приписать случайный положительный опыт эффекту от тестируемой характеристики (то есть имеется риск запустить в массовое производство характеристику, не имеющую никакого эффекта). Иными словами, возрастает вероятность получения ложноположительного или ложноотрицательного результата. Никогда не прекращайте эксперимент досрочно только потому, что наблюдается положительный эффект от тестируемой характеристики.

К сожалению, многие производители программного обеспечения для А/В-тестирования побуждают пользователей проводить эксперимент только до того момента, когда будут достигнуты значимые результаты. Никогда не проводите тестирование подобным образом! (Кажется, так я достаточно дал понять, что это действительно важно?) После изучения предложений четырех производителей специализированного ПО Мартин Гудсон отмечает: «Некоторое ПО для A/B-тестирования разработано таким образом, что оно постоянно отслеживает результаты и останавливает процесс, как только достигаются значимые результаты. Однако когда тестирование проводится подобным образом, вероятность ложноположительного результата может достигать 80 %»[142]. (См. также How Not To Run An A/B Test[143]).

Когда вы запустили эксперимент и убедились в отсутствии грубых ошибок, самым разумным будет поступить как Ронко: «Наладьте процесс и забудьте о нем». В период тестирования отслеживайте размер выборки, а не значения показателей.

Оглавление книги


Генерация: 0.319. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз