Привет, Хабр! В этой статье мы затронем один из аспектов множественного тестирования, а именно определение оптимальных размеров групп в случае общей контрольной группы. Докажем теоретически, что предлагаемый способ является оптимальным и сравним его с другими популярными подходами.

Меня зовут Саша, я работаю Head of DA/DS в X5 Tech. Мы с Колей продолжаем писать серию статей по А/Б тестированию, это наша пятая статья. Первые четыре можно посмотреть тут:

  1. Стратификация. Как разбиение выборки повышает чувствительность А/Б теста

  2. Бутстреп и А/Б тестирование

  3. Проверка корректности А/Б тестов

  4. А/Б тесты с метрикой отношения. Дельта-метод

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

A1

B1

A2

B2

A3

B3

A4

B4

При этом после окончания экспериментов мы будем сравнивать A_i с B_iсоответственно. Пользователи контрольных групп не подвержены влияниям экспериментов, их поведение не должно отличаться друг от друга, поэтому их можно объединить в общую контрольную группу:

A

B1

B2

B3

B4

Таким образом, ставится вопрос об оптимальном разбиении трафика на группы при наличии одной контрольной группы и нескольких экспериментальных. Формализуем задачу:

Пусть у нас есть N пользователей, 1 контрольная группа, k экспериментальных групп. Положим, размер контрольной группы равен n, а размеры экспериментальных групп равны и равны m. Решается задача о нахождении оптимальных значений n и m:

A

B1

...

...

Bk

Соответствующие размеры групп:

n

m

...

...

m

Чтобы решить данную задачу, нам нужно определиться с терминами, а именно: что означает "оптимальное" разбиение? Так как мы говорим про А/Б тестирование, то наилучшим разбиением будем считать то, которое обеспечивает наименьшую дисперсию статистики. Одной из наиболее часто встречающихся статистик является t-статистика: 

t = \frac{\overline{X} - \overline{Y} }{\sqrt{\frac{\hat{\sigma}_X^2}{n} + \frac{\hat{\sigma}_Y^2}{m}}}

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

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

\frac{1}{n} + \frac{1}{m} \rightarrow \min\limits_{n, m}

Также есть условие регулярности, заключающееся в том, что распределяются все пользователи:

N = n + k * m

Решим данную задачу оптимизации:

Таким образом, если в эксперименте одна экспериментальная группа (k=1), то получаем ожидаемый результат – разбить всех пользователей на две равные группы.

Если же экспериментальных групп k больше, чем одна, то в каждую экспериментальную группу нужно выделить

m=\frac{N}{k+\sqrt{k}}

пользователей, а в контрольную

n = \frac{N}{\sqrt{k}+1}

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

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

В заключении сравним данное разбиение с иными разбиениями, которые могут прийти в голову без аналитических выкладок.

  1. Оптимальное разбиение:

A

B1

B2

Bk

n = \frac{N}{\sqrt{k} + 1},~ m = \frac{N}{k+\sqrt{k}}
  1. Равномерное разбиение:

A

B1

B2

Bk

n = m = \dfrac{N}{k+1}
  1. Контрольная группа занимает 50% выборки:

A

B1

B2

Bk

n = \frac{N}{2}, ~m = \frac{N}{2k}

В таблице представлены значения функционала N*\Big(\frac{1}{n} + \frac{1}{m}\Big). Чем меньше, тем лучше. В последнем столбце произведён расчёт, во сколько раз меньший эффект возможно обнаружить при оптимальном разбиении относительно типичного разбиения:

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 получаются одинаковые результаты.

\frac{1}{n} + \frac{1}{m} \Bigg|_{n = \frac{1}{k+1}; m = \frac{1}{k+1}} = (k + 1) + (k + 1) = 2 +2k = \frac{1}{n} + \frac{1}{m} \Bigg|_{n = \frac{1}{2}; m = \frac{1}{2k}}

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

Комментарии (2)


  1. iamarkadiypolukhin
    28.09.2023 10:25

    Спасибо за пост, очень информативно! Правильно ли я понимаю, что оптимизируя 1/n + 1/m -> min, и приводя в таблице ниже результаты разбиение 100 группы соотношении n=9.1%, m=0.9% предположение о равенстве дисперсий может сильно нарушиться? (Интуитивно кажется, что в группах m из-за маленькости выбросы будут играть бОльшую роль)


    1. amsakhnov Автор
      28.09.2023 10:25
      +1

      Здравствуйте. Если мы можем позволить себе проводить одновременно 100 экспериментов, значит данных много, и 0.9% от них, скорее всего, не так и мало.

      А какие альтернативы? При исходном разбиении на 100 контрольных и экспериментальных групп будет ещё меньше данных - 0.5%. При равномерном разбиении будет 0.99% - не сильно больше 0.9%.

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

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