Вопросы на собеседовании аналитика данных
Оконные функции, когорты и воронки на SQL, p-value и мощность, дизайн A/B-тестов и их ловушки, retention, LTV и дерево метрик, pandas и кейсы вроде «метрика упала на 15%» — всё, о чём спрашивают продуктовых и дата-аналитиков.
- 01Какие эффекты искажают результаты A/B-тестов — новизна, сетевые эффекты, сезонность?
Эффект новизны — пользователи активно пробуют новое, и эффект угасает; эффект привыкания (primacy) — наоборот, сначала сопротивление. Сетевые эффекты и интерференция — группы…
Middle - 02Как выбрать единицу рандомизации в A/B-тесте — пользователь, сессия, город?
Единица рандомизации — то, что случайно попадает в группу: обычно пользователь, чтобы он всё время видел один вариант. Сессия или просмотр — только для изменений, которые…
Junior - 03Как рассчитать размер выборки и длительность A/B-теста?
Размер выборки зависит от базового значения и дисперсии метрики, MDE (минимального эффекта, который важно заметить), α и мощности. Для долей приближённо: n на группу ≈ 16p(1 − p)…
Middle - 04Как спроектировать A/B-тест от гипотезы до решения?
До запуска: гипотеза (что меняем и почему это должно сработать), главная метрика и ограничители (guardrails), единица рандомизации (пользователь, сессия, город), размер выборки и…
Junior - 05Чем ARPU отличается от ARPPU и как раскладывать выручку на множители?
ARPU — выручка на всех активных пользователей, ARPPU — на платящих. Связь: ARPU = доля платящих × ARPPU. Выручку раскладывают на множители: пользователи × конверсия в оплату ×…
Junior - 06Что такое теорема Байеса и ошибка пренебрежения базовой частотой?
Теорема Байеса пересчитывает вероятность гипотезы после наблюдения: P(H|D) = P(D|H)P(H) / P(D). Классическая ловушка — забыть базовую частоту P(H): при редком событии даже очень…
Middle - 07Чем отличаются среднее, медиана и мода и когда что использовать?
Среднее — сумма, делённая на количество; чувствительно к выбросам. Медиана — значение посередине упорядоченного ряда; устойчива к выбросам. Мода — самое частое значение; для…
Junior - 08Что такое центральная предельная теорема и доверительный интервал?
ЦПТ: среднее большой выборки распределено примерно нормально со стандартным отклонением σ/√n (стандартная ошибка), даже если сами данные не нормальны. На этом построены интервалы…
Middle - 09Что такое условная вероятность и независимость событий?
Условная вероятность P(A|B) — вероятность A, если известно, что произошло B: P(A|B) = P(A и B) / P(B). События независимы, если знание одного не меняет вероятность другого: P(A|B)…
Junior - 10В тесте выросла конверсия, но упала выручка. Выкатывать ли изменение?
Сначала проверить корректность теста (SRM, длительность, значимость обеих метрик). Затем разложить выручку: конверсия выросла, а средний чек или число покупок упали — например…
Middle - 11Чем корреляция отличается от причинно-следственной связи?
Корреляция — совместное изменение величин; причинность — изменение одной вызывает изменение другой. Корреляция возникает и без причинности: общая причина (конфаундер), обратная…
Junior - 12Как спроектировать дашборд, которым будут пользоваться?
Начинать с вопросов и решений, которые дашборд должен поддерживать, и с аудитории: руководителю — несколько ключевых метрик с динамикой и сравнением с планом, команде …
Junior - 13Как посчитать DAU, WAU, MAU и скользящий MAU на SQL?
DAU — число уникальных пользователей за день: COUNT(DISTINCT user_id) GROUP BY day. MAU календарный — то же по месяцам. Скользящий MAU на каждый день — уникальные за последние 30…
Junior - 14Что такое DAU, MAU и stickiness и как ими пользоваться?
DAU / WAU / MAU — число уникальных активных пользователей за день, неделю, месяц. Stickiness = DAU / MAU — насколько регулярно возвращаются. MAU легко раздуть привлечением…
Junior - 15Как удалить дубликаты и оставить последнюю версию записи?
Найти: GROUP BY ключ HAVING COUNT() > 1. Оставить последнюю версию: пронумеровать строки внутри ключа ROW_NUMBER() OVER (PARTITION BY ключ ORDER BY updated_at DESC) и взять rn = 1…
Junior - 16Какие вероятностные распределения нужно знать аналитику?
Бернулли и биномиальное — успех/неуспех и число успехов из n попыток (конверсия). Пуассона — число редких событий за интервал (заказы в минуту, ошибки в час). Нормальное — суммы…
Middle - 17Фичу выкатили на всех без A/B-теста. Как оценить её эффект?
Сравнение «до и после» в лоб ненадёжно — мешают сезонность, тренд и параллельные изменения. Варианты: контрольная группа, если фича доступна не всем (платформа, регион, версия…
Middle - 18Как анализировать воронку и искать, где теряются пользователи?
Воронка — последовательность шагов к цели (просмотр → корзина → оформление → оплата) с конверсией между шагами. Анализ: найти шаг с наибольшим падением относительно нормы или…
Junior - 19Как посчитать воронку конверсии на SQL?
Для каждого пользователя определить, дошёл ли он до каждого шага в правильном порядке (время шага не раньше предыдущего) и в пределах окна (например, 7 дней от первого шага)…
Middle - 20Как найти самую длинную серию дней подряд, когда пользователь был активен?
Классический приём «gaps and islands»: пронумеровать даты активности пользователя ROW_NUMBER и вычесть номер из даты — у дней одной непрерывной серии разность одинакова. Затем…
Middle - 21Почему после JOIN суммы в отчёте оказались больше, чем должны быть?
Связь один-ко-многим размножает строки: заказ с тремя позициями после JOIN с позициями превращается в три строки, и SUM(order.amount) учитывает сумму заказа трижды. Решение …
Junior - 22Что такое LTV, CAC и юнит-экономика?
CAC — стоимость привлечения одного клиента (затраты на маркетинг и продажи / число новых клиентов). LTV — валовая прибыль от клиента за всё время. Юнит-экономика сходится, если…
Middle - 23Как посчитать медиану и перцентили в SQL и почему среднее часто вводит в заблуждение?
В PostgreSQL: PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY x) — медиана с интерполяцией между значениями, PERCENTILE_DISC — ближайшее реальное значение. В ClickHouse — quantile, в…
Junior - 24Ключевая метрика вчера упала на 15%. Как будете разбираться?
Порядок: проверить данные (не сломался ли трекинг, загрузка, расчёт) → оценить, реально ли это (сезонность, день недели, праздник, сравнение с той же датой прошлой недели) →…
Middle - 25Что такое North Star Metric и дерево метрик?
North Star Metric — одна метрика, отражающая ценность, которую пользователи получают от продукта, и ведущая к выручке в долгую (число оформленных заказов, время прослушивания…
Middle - 26Как работать с пропущенными значениями в данных?
Сначала понять, почему значение пропущено: технический сбой, «не применимо» (нет второго адреса), пользователь не захотел указывать. Пропуск часто несёт информацию. Варианты…
Junior - 27Что такое проблема множественных сравнений?
При α = 0,05 каждый тест даёт 5% ложных срабатываний. Проверив 20 метрик или сегментов, вы с вероятностью около 64% найдёте хотя бы одну «значимую» случайно. Лечение: одна главная…
Middle - 28Что такое массивы NumPy и как считать без циклов?
ndarray — массив чисел одного типа в непрерывной памяти; операции над ним (a + b, a 2, np.sqrt(a), a @ b) выполняются в C над всем массивом сразу — в десятки раз быстрее цикла…
Junior - 29Как обнаруживать и обрабатывать выбросы в данных?
Сначала понять природу выброса: ошибка данных (тестовый заказ, бот, сбой трекинга, неверные единицы) — исправить или исключить; реальное редкое значение (оптовый клиент) — часть…
Junior - 30Что такое p-value и как работает проверка статистических гипотез?
Формулируют нулевую гипотезу (эффекта нет) и альтернативу. p-value — вероятность получить такие или ещё более сильные различия, если нулевая гипотеза верна. Если p-value меньше…
Junior - 31Как работают groupby и merge в pandas и какие у них ловушки?
groupby — разбить, применить агрегат, собрать (split-apply-combine): df.groupby("city")["amount"].agg(["sum", "mean"]). merge — соединение таблиц по ключам, как SQL JOIN…
Junior - 32Как работать с временными рядами в pandas — ресемплинг, скользящие окна, сдвиги?
Индекс — DatetimeIndex (pd.to_datetime и set_index). resample("D") меняет частоту с агрегатом (события → сумма по дням, дни → недели). rolling(7) — скользящее окно (среднее за 7…
Middle - 33Почему apply и циклы в pandas медленные и как писать быстрее?
Векторные операции над столбцами (df["a"] df["b"], np.where, .str, .dt) выполняются в C над массивами. apply по строкам и циклы iterrows вызывают Python-функцию на каждую строку …
Middle - 34Почему нельзя останавливать A/B-тест, как только результат стал значимым?
p-value колеблется по ходу теста, и если проверять каждый день и остановиться на первом p < 0,05, доля ложных срабатываний вырастает с 5% до 20–30%. Это те же множественные…
Middle - 35Как оценить эффект изменения, если A/B-тест провести нельзя?
Разность разностей (difference-in-differences) — сравнить изменение метрики в затронутой группе с изменением в похожей незатронутой за тот же период; допущение — параллельные…
Middle - 36Как анализировать метрики-отношения (средний чек, CTR) и метрики с длинным хвостом в A/B-тесте?
Если единица рандомизации — пользователь, а метрика считается по заказам или кликам (средний чек = выручка / число заказов, CTR = клики / показы), наблюдения внутри пользователя…
Senior - 37Как посчитать когортный retention на SQL?
Определить когорту каждого пользователя (обычно неделя или месяц первого действия), для каждого события посчитать номер периода от начала когорты, затем посчитать уникальных…
Middle - 38Какие бывают виды retention и как их интерпретировать?
N-day (classic) retention — доля пользователей когорты, активных ровно в день N (или неделю N). Rolling (unbounded) — доля активных в день N или позже — всегда выше классического…
Junior - 39Как разбить поток событий на сессии на SQL?
Сессия — серия событий пользователя без пауз дольше порога (обычно 30 минут). LAG даёт время предыдущего события; где пауза больше порога — флаг начала новой сессии; нарастающая…
Middle - 40Что такое SRM (sample ratio mismatch) и почему это повод не доверять результатам теста?
SRM — наблюдаемое соотношение групп статистически отличается от запланированного (50/50 стало 50,8/49,2 на миллионе пользователей). Это признак сломанной рандомизации или…
Middle - 41Как выбрать топ-N записей в каждой группе, например три самых дорогих заказа каждого клиента?
Пронумеровать строки внутри группы оконной функцией и отфильтровать номер во внешнем запросе: ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY amount DESC) и WHERE rn <= 3…
Junior - 42Что такое ошибки первого и второго рода и мощность теста?
Ошибка I рода (α) — найти эффект, которого нет (ложная тревога). Ошибка II рода (β) — не найти существующий эффект (пропуск). Мощность = 1 − β — вероятность обнаружить эффект…
Middle - 43Что такое CUPED и как ускорить A/B-тесты без увеличения трафика?
CUPED использует данные пользователя до эксперимента (например, его выручку за прошлый месяц): из метрики вычитают часть, объяснимую этой ковариатой: Y' = Y − θ(X − X̄). Эффект не…
Senior - 44Что такое оконные функции в SQL и чем они отличаются от GROUP BY?
GROUP BY схлопывает группу в одну строку; оконная функция считает по группе строк (окну), сохраняя все строки. Окно задаёт OVER (PARTITION BY … ORDER BY … ROWS …). Основные…
Junior
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.