Как проводить A/B тесты, если ожидаемый результат не статзначим. Увеличиваем чувствительность метрик с помощью математики (Виталий Черемисинов)

by engulatovapublished on 27.04.2021

Виталий Черемисинов, Co-founder, EXPF

Сегодня мы поговорим не столько про проверку гипотезы, сколько про то, чем мы пытаемся проверять гипотезу. Это метрики. Поговорим про их свойства, особенности. Я сооснователь компании EXPF, мы занимаемся консалтинговой и образовательной деятельностью, и целевая история для нас — это именно эксперименты, автоматизация процессов и разработка метрик через проверку их свойств, качеств, и так далее.

Сегодня мы будем говорить про оценку характеристики метрики. Что нашу метрику характеризует с точки зрения базовой статистики? Мы поговорим о том, что такое чувствительность как понятие метрики, и зачем она нужна. И как, и зачем управлять чувствительностью — так же исходя из того, зачем она нужна. Давайте попробуем для начала погрузиться в некий контекст, и внутри него мы будем вести весь диалог внутри этого доклада. У нас есть два персонажа, которые будут сопровождать нас в течение всего доклада. Это аналитик Леня вместе с продактом Петей.

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

И казалось бы, что рост к метрике ARPU — средний доход на одного привлеченного пользователя — известен и уже очевиден. Давайте представим себе, что аналитик Леня и продакт Петя работают в неком e-commerce. Пусть это будет фуд-ритейл — продают и доставляют продукты. Они в основном комитятся на эту метрику и хотят ее значимо и регулярно растить.

Но так случилось, что в этом эксперименте, который был очень продуманным, в основе которого лежала большая идея и очень большое количество данных, случилось примерно следующее. Эффект в эксперименте составил 7,3%. Эффект — это относительная разница бэка, то есть на сколько относительных процентов у нас приросла наша метрика ARPU. Леня говорит, что при p-value 0,05 мы не можем доказать, что этот эффект является статистически значимым. То есть мы получили какой-то эффект, но не можем в эксперименте заверить, что он статистически значим.

И это уже 42-й эксперимент в этой команде. То есть 42-й эксперимент закрывается тем, что Леня как аналитик и Петя как менеджер не могут заключить, что весь их колоссальный труд приведет к росту каких-то показателей. Как у Лени с Петей, так и у их руководства начинают возникать вопросы — что вообще происходит? Туда ли движется команда, и, может быть, нам стоит поменять команду? Это вполне резонные переживания и вполне резонные заблуждения.

Давайте попробуем типизировать возможные проблемы, которые могут быть связаны с тем, что происходит в команде у Лени и Пети. Проблема может быть в самих гипотезах: они слабые и не решают бизнес-задачи. Такое бывает регулярно. Гипотезы-пустышки, я думаю, каждый из вас тестировал и, возможно, неоднократно. Я тестировал много раз. Может быть, команда слабая. Или есть проблемы с самой метрикой.

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

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

Есть очень простая формула. У нас есть некий сигнал, и есть некий шум. Если мы попробуем посмотреть на статистику и на эксперимент с точки зрения одного типового статистического инструмента, это t-критерий Стьюдента. Он используется, наверное, в 99,5% случаев всеми аналитиками, которые считают эксперименты. Т-критерий Стьюдента — это не более чем отношение нашего сигнала к шуму, где сигналом будет являться разница оцениваемых параметров, а именно — средних, а шумом будет являться дисперсия. На всякий случай напомню, что дисперсия — это мера шума. То есть это величина отклонения каждого значения в нашей выборке от среднего значения в нашей выборке. Если бы мы считали средний чек, то дисперсия была бы величиной отклонения от среднего чека каждого нашего чека, то есть это то, насколько сильно наши данные отдалены друг от друга.

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

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

Есть типовая история: у нас маленький эффект и высокая дисперсия. Метрика ARPU считается как все деньги, которые привлекли все пользователи, которые к нам пришли, и средние из них. Соответственно, у нас распределение денег. Оно сложное, у нас длинный хвост редко встречающихся значений. Очевидно, что в такой метрике будет высокая дисперсия. Чем больше продукт, с которым мы работаем, тем сложнее точечно внутри каждого эксперимента получить большой прирост, то есть большой эффект. Поэтому нужно научиться давать какую-то характеристику нашим метрикам, чтобы заключать, насколько метрика чувствительная или нечувствительная.

Давайте попробуем разобраться, что такое чувствительность метрики на бытовом примере, потому что дальше мы этим термином будем очень много оперировать. Кто из вас сдавал тесты на антитела? А кто сдавал тесты на коронавирус? А кто делал прививку? Хорошо, типовая чувствительность экспресс-теста на антитела (тесты, которые берутся из вены, более чувствительные) 78%. Это говорит о том, что, если есть антитела, то вероятность их обнаружить 78%. При этом на чувствительность теста будет влиять и количество антител, то есть чем больше у вас антител, тем выше чувствительность теста. Это примерно как с тестом на беременность. Тесты на беременность на 14-й день задержки демонстрируют чувствительность, близкую к 100%, потому что содержание гормона в крови стремится к оптимальному, которое тест заметит.

И любые операции, которые мы проделываем на выявление чего-то, определяются чувствительностью. Точно так же, как и в эксперименте — у нашей метрики есть чувствительность.

Это был бытовой пример. Давайте попробуем перейти в аналитическую плоскость. В аналитике и с нашей метрикой происходит то же самое. Чувствительностью, или мощностью, или true positive rate будем являться вероятность обнаружить эффект метрики в эксперименте, если эффект действительно есть. И аналитически это будет считаться такой не самой внятной формулой, мы на нее не будем смотреть. Она просто для того, чтобы забить место на слайде, и попробуем потом на следующем слайде разобраться, как это делать эмпирически. То есть на живых данных, отодвинув в сторону формулы.

Давайте еще раз зафиксируем, что чувствительность — это вероятность обнаружить эффект там, где эффект действительно есть. Еще очень часто ее называют статистической мощностью. Мы можем рассчитать true positive rate нашей метрики эмпирическим путем. И для этого нам необходимо иметь просто набор исторических данных, которые есть за какой-то период до самого эксперимента.

Давайте представим себе, что мы выгрузили данные за месяц.

За последний месяц у нас есть такой набор данных по интересующей нас метрике. Полученную выборку мы разделим на две подвыборки: группу А1 и группу А2. И группу А2 мы будем смещать на какой-то эффект: 1%, 2%, 3%. Собственно говоря, мы будем делать то, что мы хотим получать в эксперименте, чтобы среднее в одной группе отличалось от среднего в другой группе. И будем это делать n 1 000 раз, где одна итерация в этой 1 000 раз — это как будто наш один эксперимент. И в одной итерации мы будем считать наш p-value, и смотреть, является ли он статистически значимым или нет.

Количество случаев в моделированиях на каждой величине эффекта, который получил статистическую значимость, и будет являться нашей мощностью. Давайте посмотрим это на таблице. У нас есть 1%, 2%, 3% и далее, до 10% прироста. Это наш эффект, который мы хотим замерить. Цифра внутри ячейки — это наша чувствительность, то есть вероятность увидеть эффект там, где он есть. Обратите внимание, какие у нас низкие эффекты на экономических метриках — на С1, С2, на среднем gmv и на среднем чеке. С2 у нас неплохой — стремится к 80 на 10%. В среднем, хорошая чувствительность — это 80%. То есть хорошая статистическая мощность у критерия, у метрики — это 80%, и мы берем это как некий референс, и стараемся к этому референсу приблизиться.

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

Это был гипотетический пример. Вернемся к Пете и Лене. True positive rate — чувствительность метрики ARPU при 10%-ном эффекте составила 57%. Это немного. При этом Петя и Леня знают, что такие эффекты, как 10% в их экспериментах почти никогда не встречаются. То есть обычно эксперименты закрываются с гораздо меньшим эффектом: 5%, 6%, 7% — 10% почти не бывает. При этом при 10% — 57%.

Давайте теперь вернемся в плоскость тестов. Хотели бы вы с такой чувствительностью сдавать тест на антитела? Скорее всего, нет. Но при этом почему-то наши эксперименты и A/B тесты мы считаем с такой чувствительностью метрик. То есть в бытовой жизни мы бы такие решения не принимали, а при этом решения, которые касаются жизнедеятельности и развития нашего продукта, мы с такой чувствительностью принимаем. Вроде нелогично, потому что мы продукт развиваем — кто-то для того, чтобы были премии, кто-то для того, чтобы была работа, кто-то развивает собственный бизнес. Вопрос мотивации — это личный вопрос, но тем не менее.

Что мы можем сделать? Во-первых, стоит понимать, что на нашу чувствительность у метрики влияет разное количество факторов. На нее влияет величина самого эффекта, дисперсия нашей метрики и количество наблюдений, то есть размер нашей выборки. Чем больше значений в выборке, тем больше чувствительность. Чем больше эффект, тем больше чувствительность. Чем меньше дисперсия, тем больше чувствительность. Можем ли мы управлять эффектами в эксперименте? Нет, не можем. Мы сколько получили, столько и получили. Мы не можем заставить пользователя жать на красную кнопку вместо синей. Уговорить — да, заставить — нет. Можем ли мы управлять количеством трафика? В теории — да. Мы можем нагнать дешевого, плохо монетизируемого трафика, то есть вроде бы увеличить, но бизнес-показатели от этого не изменятся. И в целом количество отведенного трафика на один эксперимент ограничено. Даже Netflix не может на один эксперимент увеличить объем трафика. Да, Netflix проводит 6 000 — 8 000 экспериментов в год, но на один эксперимент трафика приходится немного.

Можем ли мы управлять дисперсией нашей метрики? Да, можем. Это тот параметр, на который мы можем влиять и который мы можем оптимизировать. Значит, мы можем увеличить чувствительность нашей метрики. А если мы можем это сделать, значит, мы можем либо доказывать статистически значимый эффект в экспериментах на текущих эффектах, либо уменьшать время на один проведенный эксперимент. И тот, и другой кейс нам хорошо подходит, потому что, если мы оптимизируем время на эксперимент, мы можем проводить большее количество экспериментов. А если мы можем оптимизировать дисперсию для того, чтобы наш сигнал в эксперименте был более заметный, это тоже прекрасно.

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

Какие есть варианты управления нашей чувствительностью? Первый вариант: мы можем найти чувствительную, направленную прокси-метрику к ARPU. Прокси-метрика — это метрика, которая случается чуть раньше во времени, чем ARPU. Она хорошо коррелирована с нашим ARPU, и, например, она имеет лучшую чувствительность. Весь этот набор упражнений — это большая исследовательская работа, которая причем имеет определенную итеративность. То есть мы должны не разово это проделать, а в течение какого-то времени.

Есть потрясающая статья от Microsoft — самой передовой компании, с точки зрения разработки качества метрик. При этом у них очень большое количество гайдлайнов, как правильно управлять чувствительностью, как правильно замерять качество метрик, и как правильно метрики трансформировать.

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

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

Вот график, который будет показывать то же самое, что мы показывали на табличке, только в графическом представлении. То есть по оси X — величина эффекта, по оси Y — наша чувствительность. И мы здесь сравниваем уже по другой метрике, по другому эксперименту два инструмента, где темно-синяя линия — это чувствительность нашей исходной метрики. А светло-синяя линия — это чувствительность нашей метрики после некой трансформации, после того как мы взяли из нее логарифм. Видно, как значительно наша чувствительность растет. То есть true positive rate многократно возрастает за счет того, что мы взяли базовую трансформацию. Это круто, с точки зрения того, что мы оптимизировали нашу выборку, чувствительность метрики растет, значит, мы можем доказывать статистически значимо более низкие эффекты. Это хороший рост, хороший результат.

Но возникает маленькая проблема. Как нам теперь интерпретировать эту метрику, если эта метрика — новая, трансформированная величина, причем еще с каким-то непонятным логарифмом. Вроде все помнят, слышали, что это такое, но если вы регулярно не занимаетесь анализом данных, data science, экспериментами, то, наверное, нерегулярно с этим сталкиваетесь.

Нам необходимо доказать направленность нашей старой метрики к новой метрики. Звучит опасно, но на самом деле ничего страшного. Эффект — это разница между A и B. Мы бы хотели, чтобы размер эффекта и направленность эффекта, то есть знак изменчивости до трансформации был такой же, как после трансформации. То есть если знак изменчивости нашей трансформированной метрики остается минусом, если в исходной метрике был минус, и мы можем проверить это на исторических экспериментах или на моделированиях, то это хорошо направленная метрика. То есть мы не сможем в логарифме говорить об эффектах, но мы сможем говорить, есть наличие статистически значимой разницы или нет, при условии, что метрика сонаправлена, то есть имеет такую же направленность изменения знака. Это называется направленность прокрасов.

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

Страшная формула. Есть интерпретируемые методы трансформации. Компания Microsoft в 2014 году популяризировала такой инструмент, как CUPID.

Дисперсия нашей метрики объясняется набором внутренних факторов и внешних факторов. Внутренние факторы — это сама метрика, количество наблюдений и историческое значение нашей метрики. На нашу точечную дисперсию влияет то, какая метрика была в истории. CUPID позволяет избавиться от фактора истории. То есть мы будем оптимизировать нашу метрику, исходя из того, какой она была неделю, две, три назад, и так далее, и за счет этого сокращать дисперсию. У нас в блоге есть статья, которая описывает, как работает этот инструмент, плюс, есть хорошие исследования от Валерия Бабушкина, Романа Поборчева, от Microsoft.

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

На этом у меня всё. У нас есть образовательный продукт expf.ru, есть промокод на скидку. Мы учим экспериментам и статистике, помимо консалтинга. Всем спасибо. Рад буду ответить на вопросы.

Смотреть дальше

Никита Юрьев, Директор по развитию, ADV Launchpad
Татьяна Матайс, Руководитель группы по клиентским исследованиям, ЦУМ
Арсений Ольховский, Head of Growth, LegionFarm
Андрей Михайлюк, VP Product, Flo
Елена Серёгина, Founder, DataLatte
Ольга Ерёмина, Head of Trends, UXSSR
Будьте первым, кто прокомментирует “Как проводить A/B тесты, если ожидаемый результат не статзначим. Увеличиваем чувствительность метрик с помощью математики (Виталий Черемисинов)”

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Пока нет комментариев