Holdouts (Холдауты)
О возможностях
Определение
Holdout (холдаут) – это псевдо-эксперимент, раскатанный на небольшом траффике, на который не действуют никакие эксперименты, кроме него самого. В холдауте не подразумевается делать какие-либо изменения. Можно воспринимать холдаут как одну большую контрольную группу для всех привязанных экспериментов.
Механизм работы схож с концепцией слоёв (layers), но имеет следующую иерархию: Холдаут → Слой → Эксперимент.
Основное преимущество холдаутов перед слоями заключается в возможности оценки чистого эффекта от всех A/B-тестов на метрике. Это достигается за счёт того, что часть пользователей попадает в холдаут-группу (контрольную), а часть — в экспериментальные группы. Таким образом, пользователи из холдаут группы и экспериментальных групп никак не пересекаются.
Мотивация и use-cases
В качестве примера применения холдаутов можно привести следующие кейсы:
- Квартальное/годовое оценивание вклада A/B-тестов в общую экономику
- Возможность оценивания аддитивного и мультипликативного эффекта (т.е. индивидуальных и “грязных” эффектов от множества экспериментов) по какой-либо фиче на сайте или в приложении
Иерархия распределения траффика
Схема
На схеме показано как определяется пользователь в эксперимент и холдаут. На ней можно заметить, что холдаут имеет приоритет выше над слоями и настройками эксперимента.
К примеру, если пользователь был записан в “Принудительный список холдаута”, то дальнейшие правила в цепочке игнорируются.
Как использовать Holdout'ы
Создание Holdout'а в интерфейсе Sigma
- Перейдите в раздел Холдауты и нажать Создать
- Определить необходимые настройки (Тип идентификатора, Платформа и т.п.)
- Выбрать э ксперименты, которые будут взаимодействовать с холдаутом во вкладке “Включенные эксперименты”
- Запустить холдаут
Технические детали и ограничения
- Группы: нельзя создавать. Всегда только одна группа
- Аллокация: Можно выбрать любое значение от 0% до 100%
- Тип единицы рандомизации (тип идентификатора): аналогичный другим экспериментам (profileid, userid, deviceid). Нельзя использовать разные типы идентификаторов у экспериментов и холдаута. Типы идентификаторов всегда должны быть одинаковыми.
- Платформа: Нельзя определять эксперименты в холдаут, если у них выбраны разные платформы. Исключением является тип ALL (Все платформы).
- Подключение к слоям: Слои не поддерживаются в холдауте
- Фича-флаги: Фича-флаги пока не поддерживаются. Только в эксперименте.
- Целевые аудитории: Поддерживаются аналогично другим экспериментам
- Запуск и остановка: Аналогично другим экспериментам. При остановке холдаута с активными экспериментами показывается предупреждение, действие не блокируется.
- Принудительные списки: Если пользователь включен в эксперименты и в холдаут, приоритет будет у холдаута.
Совмещение экспериментов и холдаутов: анализ на примере данных из Sigma
Запуская эксперименты и холдауты в Sigma, вы получаете удобную отправную точку для анализа данных и оценки влияния изменений. Рассмотрим типичный пример:
Допустим, у вас запущено:
- 2 эксперимента, привязанных к одному холдауту (например,
exp_1
иexp_2
); - 1 эксперимент, который не привязан к холдауту (
exp_3
).
Итого: 3 эксперимента и 1 холдаут.
Исходные данные: структура таблицы
В Sigma таблица с пользователями может выглядеть так (если вы использовали метода
sigma.getAllUserExperiments()
):
userId | experiments |
1 | exp_1.0|exp_2.0|exp_3.1 |
2 | exp_1.1|exp_2.0|exp_3.0 |
3 | holdout_1|exp_3.1 |
4 | exp_1.1|exp_2.1 |
5 | holdout_1 |
Каждое значение exp_X.Y
означает, что пользователь участвует в эксперименте X
и находится в
группе Y
, где 0
— контрольная группа, 1
— тестовая.