Как деление 90/10 может убить репрезентативность A/B-теста
Предположим, мы хотим протестировать изменение в продукте с помощью A/B-теста. Самый быстрый способ набрать выборку нужной мощности – сразу делить трафик 50/50 между A и B.
Но иногда это слишком рискованно: если в тесте окажется баг, мы в моменте поломаем опыт половине аудитории. Поэтому для управления рисками часто делят, например, 90/10.
Статистические критерии не требуют, чтобы A и B были одинакового размера. Но при делении 90/10 тесту нужно значительно больше времени, чтобы набрать ту же мощность при прочих равных, что при 50/50.
Чтобы не ждать вечность, обычно приходят к гибридному варианту – Ramp Up: постепенно наращиваем долю тестовой группы, чтобы ускорить набор данных.
И вот тут появляется соблазн «включить всех» и идти, например, по схеме: 90/10 → 70/30 → 50/50. Т. е. весь трафик участвует в эксперименте, просто меняются доли A и B.
Звучит логично, но есть ловушка
Если посмотреть на пример из картинки выше, видно, что при таком подходе (см. вариант 1) мы теряем репрезентативность. Доли временных когорт в контроле и тесте не будут совпадать.
Решение – наращивать трафик симметрично (см. вариант 2): 10/10 → 30/30 → 50/50. Т. е. отказаться от части пользователей в начале. Так мы всё ещё управляем рисками (подвергаем изменению лишь небольшую часть пользователей), но при этом сохраняем репрезентативность.
A/B-тесты
Хочешь глубже разобраться в аналитике?
Посмотри программу курса по продуктовой аналитике и экспериментам.