• неверная конфигурация теста;
• плохой генератор частот;
• неверный статистический критерий;
• проблема подглядывания;
• отсутствие пост-анализа;
• принятие решения, когда нельзя отвергнуть нулевую гипотезу.
Неверная конфигурация теста – самая частая проблема. Допустим, вы придумали гипотезу, у вас есть метрика, вы написали техническое задание на проведение теста. Если это ML-модель, то вы заранее провели офлайн-тесты – все было хорошо. После реализации теста и выкладки его в рабочую систему его нужно обязательно проверить. Если это сайт, то прощелкать нужные ссылки, проверить, что обеим группам показываются нужные версии страниц. А теперь представим, что тест запущен и в нем есть ошибка. Прошел месяц, пора считать результаты. Наше сознание заставляет нас искать ошибки, если результаты получились плохими, и просто радоваться, если результаты положительные. Но если в тесте была ошибка, то много времени было потрачено впустую и тест придется перезапускать. У меня на практике такое было сплошь и рядом. В результате мы в Retail Rocket разработали целый бизнес-процесс по запуску тестов с инструкциями по проверке. Такие ошибки очень дорого обходятся.
Плохой генератор случайных чисел для разделения всех пользователей на тестовую и контрольную группы тоже может быть проблемой. Надежный способ обнаружения такой проблемы – A/A-тесты. Второй вариант – симуляция. Тогда вам нужно точно повторить код разработчиков, который назначает сегменты, и проверить его работу на старых логах пользователей, то есть произвести имитацию A/B-теста. С такими генераторами часто возникают проблемы, поэтому команда инженеров написала свой вариант и выложила его исходный код в сеть [85].
Неверный критерий тоже может дать свою погрешность. Я бы рекомендовал в целях проверки делать симуляционные тесты выбранного статистического критерия. Это можно делать как с помощью генераторов распределений, так и с помощью уже имеющихся логов действий пользователя (если есть). Например, сделав два случайных генератора с одинаковыми исходными данными, нужно убедиться, что статистический критерий не показывает значимость. Затем сделать небольшую разницу между генераторами и убедиться, что статистическая значимость появилась. Также рекомендую сделать анализ мощности – сколько данных нужно, чтобы этот критерий показал статистическую значимость на какой-то минимальной для вас важности. Например, вы готовы внедрить новое улучшение только в том случае, если оно улучшает метрику на 1 %. Тогда вы делаете два генератора с этой разностью и моделируете работу критерия, чтобы понять, сколько точек данных вам нужно, чтобы заметить эту разницу. Это и будет вашим минимальным объемом выборки данных.
Проблема подглядывания за результатами теста лично мне хорошо знакома. Она возникает, когда тест не набрал еще необходимых данных, а мы уже пытаемся увидеть его результаты. Статистическая значимость теста – это тоже случайная величина, и она «скачет» в первое время после запуска теста. Так происходит и на симуляциях тестов, и в реальных условиях. Я столкнулся с этим впервые в компании Ostrovok.ru, когда А/Б-тесты были выведены на дашборды офисных мониторов. Мне позвонил CEO с вопросом, почему результаты значимости недавно запущенного теста прыгают туда-сюда. Поэтому если вы примете решение в этот момент, признав тест успешным, то совершите ошибку, так как через некоторое время тест «устаканится» и будет показывать отсутствие статистической значимости. Я считаю, что единственный способ решить проблему подглядывания – определить минимально детектируемую разницу в метриках, которая вас устроит. По ней с помощью калькулятора мощности или симуляций вычисляется нужный объем выборки. И именно после достижения нужного объема данных можно смотреть на результат и принимать решения. Здесь вы столкнетесь с дилеммой – если разница слишком мала, то понадобится очень много данных, что плохо для бизнеса. Потому что чтобы получить много данных, придется долго ждать – тратить время. Рекомендую понять, сколько времени вы готовы ждать, и уже исходя из этого определить минимально детектируемую разницу. Минимальная длительность теста также ограничена бизнес-циклом принятия решений клиентами. Например, если мы знаем, что среднее время принятия решения о покупке составляет три дня, то тест должен идти не меньше двух бизнес-циклов – шесть дней. До этого времени за тестом можно приглядывать, но только с целью обнаружить пропущенные технические ошибки.
Читать дальше
Конец ознакомительного отрывка
Купить книгу