Короткий ответ
Единственного правильного решения нет: можно считать метрику по изначальной полной когорте пользователей, включая тех, кто перестал быть активным (явно отражая их как "0" или "отток" в расчёте), либо явно разделять метрику "для оставшихся" и метрику "для исходной когорты" — важно не подменять одно другим незаметно для читателя отчёта.
Как это работает подробнее
смещение выжившего возникает, когда из расчёта метрики (например, среднего чека или вовлечённости) исключаются пользователи, переставшие быть "активными", из-за чего оставшаяся выборка систематически смещена в сторону более лояльных/успешных пользователей, и метрика выглядит лучше, чем есть на самом деле для всей исходной когорты.
Пример кода
Пример на Python
import pandas as pd
cohort = pd.DataFrame({'user_id': [1, 2, 3, 4], 'initial_month_revenue': [50, 30, 20, 40]})
active_later = pd.DataFrame({'user_id': [1, 3], 'month3_revenue': [60, 25]})
merged = cohort.merge(active_later, on='user_id', how='left')
merged['month3_revenue'] = merged['month3_revenue'].fillna(0)
avg_all_cohort = merged['month3_revenue'].mean()
avg_only_active = merged.dropna(subset=['month3_revenue'])['month3_revenue'].mean() if False else active_later['month3_revenue'].mean()
print(avg_all_cohort, avg_only_active)Что использовать на практике
- На практике. при построении, например, "среднего дохода на пользователя" важно явно определить знаменатель — это все пользователи исходной когорты или только оставшиеся активные; для метрик удержания и роста обычно содержательнее считать от исходного размера когорты, даже если часть пользователей больше не генерирует событий (их вклад тогда равен нулю, а не отсутствует из расчёта).
- Проверка. avg_all_cohort (учитывающий всех 4 пользователей исходной когорты с нулями для выбывших) окажется заметно ниже, чем avg_only_active (только среди 2 оставшихся активных пользователей) — именно эта разница и показывает величину смещения выжившего при неверном выборе знаменателя.
Подводные камни
- Частые ошибки. незаметно меняют знаменатель метрики от периода к периоду (например, "активные пользователи" определяются по-разному в разные месяцы), из-за чего рост метрики частично или полностью объясняется исключением менее успешных пользователей, а не реальным улучшением; не документируют явно, какое именно определение "активного пользователя" использовано, что затрудняет проверку и сравнение метрики другими аналитиками.