Короткий ответ
Покажите руководству таблицу из двух частей: конверсию A и B внутри каждого сегмента и долю сегмента в каждой группе. Разворот общего эффекта создаёт не арифметическая ошибка, а смешение эффекта варианта с различием состава аудитории.
Как это работает подробнее
Если сегмент определён до эксперимента и дисбаланс случаен, можно оценить стандартизированный эффект с одинаковыми весами сегментов. Если дисбаланс указывает на ошибку назначения, результат нельзя спасать выбором выгодной агрегации: нужно расследовать рандомизацию.
Не сегментируйте по переменной, появившейся после воздействия варианта: это может внести post-treatment bias. Решение должно опираться на дизайн эксперимента и целевую популяцию.
Пример кода
conversion_by_segment.sql
WITH stats AS (
SELECT segment, variant, COUNT(*) AS users,
AVG(CASE WHEN converted THEN 1.0 ELSE 0.0 END) AS conversion
FROM experiment_users
GROUP BY segment, variant
)
SELECT segment, variant, users, conversion,
users * 1.0 / SUM(users) OVER (PARTITION BY variant) AS segment_weight
FROM stats
ORDER BY segment, variant;Что использовать на практике
- Покажите веса. Без них сегментированные проценты не объясняют общий итог.
- Проверьте баланс. Сравните распределение предэкспериментальных признаков и SRM в сегментах.
- Зафиксируйте estimand. Определите, для какой популяции и при каком составе трафика нужен эффект.
Подводные камни
- Выбирать красивую цифру. Общая и сегментированная оценки отвечают на разные вопросы.
- Автоматически считать сегменты истиннее. Дисбаланс может означать сломанный эксперимент.
- Контролировать переменную после воздействия. Это способно создать новое смещение.