Воронки и когортные рассуждения: вопросы для собеседования (часть 4)

Логика построения воронок: какие шаги включить, как обрабатывать повторные визиты, почему конверсия между шагами может быть больше 100%. На собеседовании дают ошибочную воронку и просят найти проблему. Когортные рассуждения проверяют, умеет ли кандидат корректно сравнивать группы пользователей во времени.

Булева логика и фильтрыКачество данных и инвариантыJOIN и кардинальностьПостановка задачиДоли и процентыSanity-check и оценкаСегментация и конфаундингТеория множеств и дедупликацияВзвешенные средние и смешение

Вопросы 1620 из 20

16Аналитик считает удержание так: берёт всех активных пользователей на неделе 1 и смотрит, сколько из них активны на неделе 2. В чём риск такого подхода и что корректнее для когортного анализа?
AРиска нет: это и есть стандартный способ считать удержание для любого продукта без оглядки на возраст пользователей
BСмешиваются пользователи разного возраста: лучше зафиксировать когорту по первой активности и считать удержание по возрасту когорты
CПроблема только в знаменателе: достаточно умножить число активных на коэффициент 2 и считать удержание дальше как обычно
DНужно считать только по событиям, а не по уникальным пользователям, и тогда смешения возрастов когорт не будет
Ответ: Удержание для сравнения групп считают относительно фиксированной когорты, иначе база постоянно меняется и сравнение теряет смысл.

Подход «активные на неделе 1 → активные на неделе 2» смешивает новых и старых пользователей. Из-за этого показатель похож больше на общую повторную активность, а не на когортное удержание. Для корректного анализа нужно определить когорту (например, по дате регистрации или первой активности) и считать удержание W1, W2 и далее для этой же базы.

Подробный разбор →
17Вы сравниваете удержание на 30-й день для когорты сентября и когорты ноября. Для ноябрьской когорты прошло только 15 дней с момента дня 0. В чём проблема и как корректнее поступить?
AНоябрьская когорта ещё не «созрела» для удержания на 30-й день, поэтому нужно дождаться полного окна или сравнивать когорты одинакового возраста.
BПроблемы здесь нет: удержание на 30-й день одинаково считается для любого возраста когорты, и сравнение можно делать прямо сейчас.
CНужно заменить знаменатель на число активных пользователей в ноябре, тогда сравнение между сентябрьской и ноябрьской когортами станет честным.
DНужно удалить сентябрьскую когорту из расчёта, потому что старые когорты систематически показывают худшее удержание из-за оттока.
Ответ: Для `D30 retention` когорты должны быть достаточно «старыми», иначе сравнение искажает `right censoring`.

Если с дня 0 прошло меньше 30 дней, часть пользователей физически не могла попасть в день 30. Тогда удержание на 30-й день будет занижено не из-за поведения, а из-за неполного окна наблюдения и эффекта правостороннего цензурирования. Корректнее дождаться полного горизонта или сравнивать когорты одинакового возраста.

Подробный разбор →
18В воронке покупки: шаг 1 = `view_product`, шаг 2 = `add_to_cart`, шаг 3 = `purchase`. Часть пользователей покупает через `buy_now` и не делает `add_to_cart`. Что правильнее сделать, чтобы воронка отражала реальный путь и шаговая конверсия была интерпретируема?
AСчитать таких пользователей «потерянными» на шаге 2 и не менять воронку, объясняя падение шага 2 техническими особенностями отчёта
BУдалить пользователей с событием `buy_now` из данных, чтобы шаговая конверсия выглядела стабильной и сравнимой с предыдущими периодами
CПостроить отдельную воронку для `buy_now` или переопределить шаг 2 как `start_checkout`, включив оба пути и считая шаговую конверсию по нему
DЗаменить знаменатель шага 2 на размер шага 3, чтобы шаговая конверсия точно выросла и воронка визуально выглядела здоровее
Ответ: Определение шагов воронки должно соответствовать реальным путям пользователя, иначе шаговая конверсия вводит в заблуждение.

Текущая воронка измеряет путь через корзину, поэтому пользователи `buy_now` не обязаны проходить шаг 2. В результате воронка будет недооценивать часть покупок и смещать интерпретацию «узкого места». Правильнее явно учесть альтернативный путь: отдельной воронкой или шагом `start_checkout`, который покрывает оба сценария и даёт корректную шаговую конверсию.

Подробный разбор →
19Вы считаете уникальных пользователей, воронку и удержание по `device_id`, но один человек может пользоваться двумя устройствами. Какое искажение наиболее вероятно?
AНикакого искажения не возникнет: `device_id` всегда соответствует ровно одному пользователю и подходит как идентификатор для расчёта когорт и удержания
BУникальные пользователи будут завышены: один человек может попасть в разные когорты, и пошаговая конверсия в воронке вместе с удержанием исказятся в сторону роста
CЭто приведёт только к сдвигу даты первого визита, но не повлияет на знаменатель в когортах и не исказит расчёт удержания и пошаговой конверсии в воронке
DНужно перейти на сырые события без какой-либо дедупликации по идентификатору, тогда проблема двух устройств одного пользователя автоматически исчезнет из расчётов
Ответ: Неверный идентификатор пользователя завышает число уникальных пользователей, искажает когорты и расчёты удержания.

Если один человек использует два значения `device_id`, то он будет посчитан как два разных пользователя. Это раздувает знаменатель, меняет размеры когорты и влияет на пошаговую конверсию и удержание. Для аналитики обычно используют единый идентификатор `user_id` или объединяют устройства в одного пользователя по правилам. Версии «никакого искажения», «только сдвиг даты» или «убрать дедупликацию» либо игнорируют проблему, либо ухудшают её, добавляя ещё больше шума в расчёты.

Подробный разбор →
20В отчёте по воронке общая конверсия шага выросла, но в разрезе по каждому каналу трафика она снизилась. Какое объяснение наиболее вероятно и что стоит проверить?
AИзменился состав каналов (парадокс Симпсона): проверьте доли каналов на шаге 1 и пересчитайте при фиксированных весах сегментов
BТакая ситуация исключена: конверсия по шагам посчитана случайными числами или есть ошибка в расчёте знаменателя
CЗаменить знаменатель на шаг 3 и пересчитать конверсию заново: тогда разрезы по каналам совпадут с общим результатом
DИгнорировать разрезы по каналам и доверять только общей конверсии шага: общий показатель корректнее по природе
Ответ: Противоречие между общим результатом и сегментами часто объясняется смещением состава и парадоксом Симпсона.

Общий показатель — это смесь сегментов, и он может расти, если увеличилась доля канала с более высокой базовой конверсией. При этом внутри каждого канала метрика может падать. Проверьте распределение пользователей по каналам в шаге 1 и сравнивайте сегменты на одинаковых весах либо отдельно по каждому каналу.

Подробный разбор →
1234

Хотите тренировать интерактивно?

В приложении — таймер, прогресс, стрики и 1700+ вопросов по всем темам.

Открыть Карьерник в Telegram

Другие темы: Логика

Булева логика и фильтрыКачество данных и инвариантыJOIN и кардинальностьПостановка задачиДоли и процентыSanity-check и оценкаСегментация и конфаундингТеория множеств и дедупликацияВзвешенные средние и смешение