Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Привет, Хабр! В этой статье мы затронем один из аспектов множественного тестирования, а именно определение оптимальных размеров групп в случае общей контрольной группы. Докажем теоретически, что предлагаемый способ является оптимальным и сравним его с другими популярными подходами.
Меня зовут Саша, я работаю Head of DA/DS в X5 Tech. Мы с Колей продолжаем писать серию статей по А/Б тестированию, это наша пятая статья. Первые четыре можно посмотреть тут:
Стратификация. Как разбиение выборки повышает чувствительность А/Б теста
Бутстреп и А/Б тестирование
Проверка корректности А/Б тестов
А/Б тесты с метрикой отношения. Дельта-метод
Предположим, что мы проводим множество независимых А/Б тестов, тогда типичный способ разделения пользователей на группы выглядит следующим образом:
A1 | B1 |
A2 | B2 |
A3 | B3 |
A4 | B4 |
При этом после окончания экспериментов мы будем сравнивать с соответственно. Пользователи контрольных групп не подвержены влияниям экспериментов, их поведение не должно отличаться друг от друга, поэтому их можно объединить в общую контрольную группу:
A | B1 | B2 | B3 | B4 |
Таким образом, ставится вопрос об оптимальном разбиении трафика на группы при наличии одной контрольной группы и нескольких экспериментальных. Формализуем задачу:
Пусть у нас есть N пользователей, 1 контрольная группа, k экспериментальных групп. Положим, размер контрольной группы равен n, а размеры экспериментальных групп равны и равны m. Решается задача о нахождении оптимальных значений n и m:
A | B1 | ... | ... | Bk |
Соответствующие размеры групп:
n | m | ... | ... | m |
Чтобы решить данную задачу, нам нужно определиться с терминами, а именно: что означает "оптимальное" разбиение? Так как мы говорим про А/Б тестирование, то наилучшим разбиением будем считать то, которое обеспечивает наименьшую дисперсию статистики. Одной из наиболее часто встречающихся статистик является t-статистика:
Предполагается, что оценки дисперсий групп не являются случайными величинами и равны, что может быть адекватным предположением при больших размерах групп.
Поэтому задача сводится к нахождению такого разбиения, которое бы минимизировало следующий функционал:
Также есть условие регулярности, заключающееся в том, что распределяются все пользователи:
Решим данную задачу оптимизации:
Таким образом, если в эксперименте одна экспериментальная группа , то получаем ожидаемый результат – разбить всех пользователей на две равные группы.
Если же экспериментальных групп больше, чем одна, то в каждую экспериментальную группу нужно выделить
пользователей, а в контрольную
пользователей. Ниже приведена таблица с размерами групп в процентном соотношении для разного количества экспериментов:
k | n, % | m, % |
1 | 50 | 50 |
2 | 41.4 | 29.3 |
3 | 36.6 | 21.1 |
4 | 33.3 | 16.7 |
5 | 30.9 | 13.8 |
10 | 24.0 | 7.6 |
20 | 18.3 | 4.1 |
50 | 12.4 | 1.8 |
100 | 9.1 | 0.9 |
В заключении сравним данное разбиение с иными разбиениями, которые могут прийти в голову без аналитических выкладок.
Оптимальное разбиение:
A | B1 | B2 | … | … | Bk |
Равномерное разбиение:
A | B1 | B2 | … | … | Bk |
Контрольная группа занимает 50% выборки:
A | B1 | B2 | … | … | Bk |
В таблице представлены значения функционала . Чем меньше, тем лучше. В последнем столбце произведён расчёт, во сколько раз меньший эффект возможно обнаружить при оптимальном разбиении относительно типичного разбиения:
k | Оптимальное разбиение | Равномерное разбиение | 50/50 | MDE_uniform / MDE_optimal |
1 | 4.0 | 4 | 4 | 1 |
2 | 5.8 | 6 | 6 | 1.01 |
3 | 7.5 | 8 | 8 | 1.04 |
4 | 9.0 | 10 | 10 | 1.05 |
5 | 10.5 | 12 | 12 | 1.07 |
10 | 17.3 | 22 | 22 | 1.13 |
20 | 29.9 | 42 | 42 | 1.18 |
50 | 65.1 | 102 | 102 | 1.25 |
100 | 121.0 | 202 | 202 | 1.29 |
Так, если у вас k=10 экспериментальных групп, то при оптимальном разбиении вы бы смогли обнаружить эффект в 1.13 раз меньший, чем при ином типичном разбиении.
Как это неудивительно, при равномерном разбиении и при разбиении 50 на 50 получаются одинаковые результаты.
Итого, когда в эксперименте присутствует всего одна экспериментальная группа, результаты согласуются и между собой, и со здравым смыслом. Происходит разделение на две равные части. При увеличении количества экспериментальных групп оптимальное разбиение помогает достичь большей чувствительности тестов по сравнению с другими способами разбиения.