## Введение, мотивация
Цель – детектить минимальный эффект. При этом объём данных мы не можем увеличивать (новых пользователей привлекать – отдельная задача). Значит, нужно понижать с дисперсию в тестовой и контрольной выборках, чтобы повышать чувствительность АБ-тестов.
Также мы запускаем тесты с офферами, где даём скидки пользователям. Скидка – недополученная прибыль, поэтому решение об окончании теста нужно совершать как можно скорее.
## Стратификация
Предположим, что нам удалось найти один или несколько признаков, которые коррелируют с исследуемой бизнес-метрикой Y. Такие признаки X мы будем называть ковариатами. Эти величины должны быть измеримы до эксперимента.
Например, это могут быть пол, возраст, местоположение или иные характеристики пользователя. Спецефичные для more.tv: заинтересованность в турецких сериалах/originals/фильмах.
Ковариаты используются для того, чтобы разделить всю генеральную совокупность на K непересекающихся подмножеств, называемых стратами.
Стратификационное семплирование подразумевает, что в тестовой и контрольной выборке доля страт будет такой же, как и в генеральной совокупности.
Пример: 1000 пользователей, 400 из них – женщины из Москвы, 300 – мужчины из СПб, 200 – женщины из СПб и 100 – мужчины из Москвы.
В эксперимент мы хотим набрать по 100 пользователей в тестовую и контрольную группы.
Значит, в каждой из этих групп должно быть 40 женщин из Москвы, 30 мужчин из СПб, 20 женщин из СПб и 10 мужчин из Москвы. Будет сохранено распределение из генеральной совокупности для каждой из страт.
За счёт чего идёт снижение дисперсии? За счёт того, что мы убираем дисперсию между стратифицированными группами.
## CUPED
Controlled-experiment Using Pre-Experiment Data. Мы используем данные по пользователям, которые у нас были до эксперимента. На основе этих данных считаем ковариату, которая при этом коррелируют с бизнес-метрикой.
Идея: смотреть не изменение самой метрики по себе, а на изменение разности между целевой метрикой и ковариатой.
Нюанс: ковариатой может быть и сама целевая метрика, только на момент до эксперимента.
Пример:
Рассмотрим изменение длительности просмотровой сессии для пользователей из тестовой и контрольной группы.
- тестовая группа
| t сессии до эксперимента | t сессии после начала эксперимента |
| -------- | -------- |
| 7 | 7.1 |
| 8 | 8.1 |
| 12 | 12.1 |
- контрольная группа
| t сессии до эксперимента | t сессии после начала эксперимента |
| -------- | -------- |
| 9 | 9 |
| 6 | 6 |
| 11 | 11 |
Как будто бы есть прирост на 0.1, но стандартное отклонение для времени значительно больше этого эффекта (~2 > 0.1).
Однако, если мы будем рассматрвать разницу во времени на сессии до и после начала эксперимента, то дисперсия снизится до 0 (ведь это синтетический пример!), но эффект останется:
| t сессии до эксперимента | t сессии после начала эксперимента | Разница |
| -------- | -------- | -------- |
| 7 | 7.1 | 0.1 |
| 8 | 8.1 | 0.1 |
| 12 | 12.1 | 0.1 |
| t сессии до эксперимента | t сессии после начала эксперимента | Разница |
| -------- | -------- | -------- |
| 9 | 9 | 0|
| 6 | 6 | 0|
| 11 | 11 | 0|
На самом деле, CUPED это не просто вычет из целевой метрики ковариаты, это вычет ковариаты с домножением на коэффициент $\theta$:
$Y_{cuped} = Y - \theta X$
Оптимальная $\theta$:
$\theta = \frac{cov(Y, X)}{var(X)}$
## Оставшиеся проблемы
1. Как для ретеншена понизить дисперсию с помощью CUPED – вроде бы и пользовательская метрика, а вроде бы и не очень? *Очень даже пользовательская, пробовали вычитать число активных дней за период от начала подписки до начала экспа*
2. Долго ждать конверсий – что можно сделать:
- брать пользователей в конце подпски
- смотреть коррелирующие метрики, например, [как долго пользователь смотрит контент](https://www.kdd.org/kdd2016/papers/files/adp0945-xieA.pdf).