Колонка Виталия Черемисинова, Head of data unit в AIC
При планировании эксперимента важный этап — cформировать и приоритизировать метрики. Принято считать, что эксперимент должен валидироваться большим количеством метрик (что крайне разумно) и одна из них — деньги, является наиболее сложным предметом для исследования.
Предположим, один большой интернет-магазин решил протестировать новую рекомендательную систему товаров. Ее основная задача — увеличивать выручку с корзины одного пользователя, то есть сделать так, чтобы пользователь покупал больше товаров за одну транзакцию.
Такой эксперимент можно проанализировать большим количеством метрик, но прежде всего в таком эксперименте нас интересуют деньги, и тут начинаются сложности.
Распределение выручки выглядит так:

Видно по графику, что данные далеки от нормального распределения, следовательно, посчитать на нем среднее значение проблемно — очень сильно влияет длинный хвост из значений, которые редко встречаются, но вносят большой вклад.
При этом, нам необходимо посмотреть размер среднего чека и ответить на вопрос, есть ли статистически значимое различие.
Вариант 1: ранги
Самый популярный способ оценить эксперимент на двух ненормально распределенных выборках — это использовать непараметрические ранговые критерии. Один из них — критерий Манна-Уитни.
Если коротко описать этот критерий, то работает он так:
- Объедините все данные в единый ряд, пометив те из них, которые принадлежат разным выборкам.
- Проранжируйте значения, приписывая меньшему значению меньший ранг.
- Подсчитайте сумму рангов отдельно для каждой выборки.
- Определите большую из двух ранговых сумм.
- Определите значение U по формуле:

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

Разность средних мы делим на шум в данных (дисперсию).
Критерий Стьюдента — один из самых популярных критериев из параметрического семейства. Но мы не можем его использовать на изначальных данных. Ненормальное распределение даст большой дисбаланс в среднее и шум (дисперсия) сделает неточным результат применения критерия.
Но мы можем попробовать использовать методы трансформации данных. Например, взять логарифм от выручки и посмотреть, что будет с распределением. При этом логарифм не панацея. Можно использовать метод Бокса-Кокса для поиска оптимального способа трансформации данных к нормальным.

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

Но в этом случае мы можем потерять большое количество наблюдений, что может сильно изменить результат эксперимента.Такой вариант нам тоже не подойдет.
Что в итоге?
Разобравшись с популярными вариантами, которые скорее всего вам не подойдут, самое время подойти к подходящему. Будем делать bootstrap

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

Данные не стали нормальными — мы их не трансформировали. За счет того, что мы многократно вычленяем среднее с возвращением, они сконцентрировались вокруг своего истинного среднего c отклонением.
Вывод сделать просто — мы получим две плотности вероятности для каждой ветки эксперимента и сможем сравнивать, как пересекаются эти плотности. Если у нас перекрываются 05 и 95 квантили, значит нет статистически значимой разницы.

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