📉Как дизайнить эксперименты с “длинными” метриками

В классических A/B тестах мы привыкли оценивать быстрые метрики: конверсию, ARPU, средний чек и им подобные. Однако иногда нам может потребоваться оценить долгосрочную метрику, вроде Retention или LTV.

В стандартном дизайне мы работаем так:

  • посчитали требуемый размер выборки и длительность эксперимента
  • запустили эксперимент
  • набрали нужную выборку за срок эксперимента
  • на следующий день подвели итоги

Проблема в том, что с “длинными” метриками математика работает иначе, чем с метриками в моменте. Почему так?

Давайте разбираться на примере.👀

Представьте: вы посчитали размер выборки и он оказался равным 10,000 пользователей на группу. Допустим, вы набираете их за 14 дней и хотите посчитать возвращаемость на 7й день (Retention D7).

Если вы начнете считать Retention D7 на 15й день, возникнет проблема: пользователи из первого дня теста уже “созрели”, а пользователи, пришедшие в последние дни эксперимента еще нет, т.к. их 7-й день еще не наступил.

Возникает развилка: для одних пользователей прошло 14 дней, так что вы точно знаете вернулись они на 7-й день или нет, а для других - нет.

Что делать? 🤔

Теоретически мы можем забить на срок “созревания” и засчитать таким пользователям вовзвращаемость как 0. В итоге вы получите искусственный обвал метрики в последние дни теста. "Люди приходят и уходят, как тени". (с. Оскар Уайлд)

Также можно исключить их из анализа. В результате вместо выборки в 10,000 остается 5,000-6,000.

Мощность теста падает, следовательно вы можете пропустить реальный эффект или поймать ложноположительный.

Очевидно оба варианта не подойдут. Возможен только один вариант: добавлять лаг для оценки эксперимента. Как это работает 1️⃣ Считаем размер выборки. Так как он рассчитывается на завершенные наблюдения, то здесь отличий от обычного дизайна нет.

2️⃣ Определяем сроки эксперимента

Здесь ужедругая формула Срок теста = Период набора + Окно метрики Период набора - это время, за которое набирается необходимый для теста размер выборки. Окно метрики - время, за которое считается наша метрика. (В нашем случае это 7 дней)

В нашем примере срок теста = 14 + 7 = 21 день 3️⃣ Запускаем тест и держим его определенное периодом набора время (т.е. 14 дней)

4️⃣ Останавливаем эксперимент по окончании периода набора (14 дней) и…

5️⃣ Ждем (в пределах окна метрики - 7 дней)

6️⃣ Подводим результаты эксперимента

Например, Запустили 1 марта -> Выключили сплит 15 марта -> Подвели результаты 21 марта.

Конечно, бизнес-заказчики могут просить завершить эксперимент быстрее, но вы не сдавайтесь и стойте на своем. При работе с такими метриками спешка только навредит.