Подборка вопросов

Вопросы на собеседовании аналитика данных

Оконные функции, когорты и воронки на SQL, p-value и мощность, дизайн A/B-тестов и их ловушки, retention, LTV и дерево метрик, pandas и кейсы вроде «метрика упала на 15%» — всё, о чём спрашивают продуктовых и дата-аналитиков.

44вопроса
21Junior
21Middle
2Senior
  1. 01Какие эффекты искажают результаты A/B-тестов — новизна, сетевые эффекты, сезонность?

    Эффект новизны — пользователи активно пробуют новое, и эффект угасает; эффект привыкания (primacy) — наоборот, сначала сопротивление. Сетевые эффекты и интерференция — группы…

    Middle
  2. 02Как выбрать единицу рандомизации в A/B-тесте — пользователь, сессия, город?

    Единица рандомизации — то, что случайно попадает в группу: обычно пользователь, чтобы он всё время видел один вариант. Сессия или просмотр — только для изменений, которые…

    Junior
  3. 03Как рассчитать размер выборки и длительность A/B-теста?

    Размер выборки зависит от базового значения и дисперсии метрики, MDE (минимального эффекта, который важно заметить), α и мощности. Для долей приближённо: n на группу ≈ 16p(1 − p)…

    Middle
  4. 04Как спроектировать A/B-тест от гипотезы до решения?

    До запуска: гипотеза (что меняем и почему это должно сработать), главная метрика и ограничители (guardrails), единица рандомизации (пользователь, сессия, город), размер выборки и…

    Junior
  5. 05Чем ARPU отличается от ARPPU и как раскладывать выручку на множители?

    ARPU — выручка на всех активных пользователей, ARPPU — на платящих. Связь: ARPU = доля платящих × ARPPU. Выручку раскладывают на множители: пользователи × конверсия в оплату ×…

    Junior
  6. 06Что такое теорема Байеса и ошибка пренебрежения базовой частотой?

    Теорема Байеса пересчитывает вероятность гипотезы после наблюдения: P(H|D) = P(D|H)P(H) / P(D). Классическая ловушка — забыть базовую частоту P(H): при редком событии даже очень…

    Middle
  7. 07Чем отличаются среднее, медиана и мода и когда что использовать?

    Среднее — сумма, делённая на количество; чувствительно к выбросам. Медиана — значение посередине упорядоченного ряда; устойчива к выбросам. Мода — самое частое значение; для…

    Junior
  8. 08Что такое центральная предельная теорема и доверительный интервал?

    ЦПТ: среднее большой выборки распределено примерно нормально со стандартным отклонением σ/√n (стандартная ошибка), даже если сами данные не нормальны. На этом построены интервалы…

    Middle
  9. 09Что такое условная вероятность и независимость событий?

    Условная вероятность P(A|B) — вероятность A, если известно, что произошло B: P(A|B) = P(A и B) / P(B). События независимы, если знание одного не меняет вероятность другого: P(A|B)…

    Junior
  10. 10В тесте выросла конверсия, но упала выручка. Выкатывать ли изменение?

    Сначала проверить корректность теста (SRM, длительность, значимость обеих метрик). Затем разложить выручку: конверсия выросла, а средний чек или число покупок упали — например…

    Middle
  11. 11Чем корреляция отличается от причинно-следственной связи?

    Корреляция — совместное изменение величин; причинность — изменение одной вызывает изменение другой. Корреляция возникает и без причинности: общая причина (конфаундер), обратная…

    Junior
  12. 12Как спроектировать дашборд, которым будут пользоваться?

    Начинать с вопросов и решений, которые дашборд должен поддерживать, и с аудитории: руководителю — несколько ключевых метрик с динамикой и сравнением с планом, команде …

    Junior
  13. 13Как посчитать DAU, WAU, MAU и скользящий MAU на SQL?

    DAU — число уникальных пользователей за день: COUNT(DISTINCT user_id) GROUP BY day. MAU календарный — то же по месяцам. Скользящий MAU на каждый день — уникальные за последние 30…

    Junior
  14. 14Что такое DAU, MAU и stickiness и как ими пользоваться?

    DAU / WAU / MAU — число уникальных активных пользователей за день, неделю, месяц. Stickiness = DAU / MAU — насколько регулярно возвращаются. MAU легко раздуть привлечением…

    Junior
  15. 15Как удалить дубликаты и оставить последнюю версию записи?

    Найти: GROUP BY ключ HAVING COUNT() > 1. Оставить последнюю версию: пронумеровать строки внутри ключа ROW_NUMBER() OVER (PARTITION BY ключ ORDER BY updated_at DESC) и взять rn = 1…

    Junior
  16. 16Какие вероятностные распределения нужно знать аналитику?

    Бернулли и биномиальное — успех/неуспех и число успехов из n попыток (конверсия). Пуассона — число редких событий за интервал (заказы в минуту, ошибки в час). Нормальное — суммы…

    Middle
  17. 17Фичу выкатили на всех без A/B-теста. Как оценить её эффект?

    Сравнение «до и после» в лоб ненадёжно — мешают сезонность, тренд и параллельные изменения. Варианты: контрольная группа, если фича доступна не всем (платформа, регион, версия…

    Middle
  18. 18Как анализировать воронку и искать, где теряются пользователи?

    Воронка — последовательность шагов к цели (просмотр → корзина → оформление → оплата) с конверсией между шагами. Анализ: найти шаг с наибольшим падением относительно нормы или…

    Junior
  19. 19Как посчитать воронку конверсии на SQL?

    Для каждого пользователя определить, дошёл ли он до каждого шага в правильном порядке (время шага не раньше предыдущего) и в пределах окна (например, 7 дней от первого шага)…

    Middle
  20. 20Как найти самую длинную серию дней подряд, когда пользователь был активен?

    Классический приём «gaps and islands»: пронумеровать даты активности пользователя ROW_NUMBER и вычесть номер из даты — у дней одной непрерывной серии разность одинакова. Затем…

    Middle
  21. 21Почему после JOIN суммы в отчёте оказались больше, чем должны быть?

    Связь один-ко-многим размножает строки: заказ с тремя позициями после JOIN с позициями превращается в три строки, и SUM(order.amount) учитывает сумму заказа трижды. Решение …

    Junior
  22. 22Что такое LTV, CAC и юнит-экономика?

    CAC — стоимость привлечения одного клиента (затраты на маркетинг и продажи / число новых клиентов). LTV — валовая прибыль от клиента за всё время. Юнит-экономика сходится, если…

    Middle
  23. 23Как посчитать медиану и перцентили в SQL и почему среднее часто вводит в заблуждение?

    В PostgreSQL: PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY x) — медиана с интерполяцией между значениями, PERCENTILE_DISC — ближайшее реальное значение. В ClickHouse — quantile, в…

    Junior
  24. 24Ключевая метрика вчера упала на 15%. Как будете разбираться?

    Порядок: проверить данные (не сломался ли трекинг, загрузка, расчёт) → оценить, реально ли это (сезонность, день недели, праздник, сравнение с той же датой прошлой недели) →…

    Middle
  25. 25Что такое North Star Metric и дерево метрик?

    North Star Metric — одна метрика, отражающая ценность, которую пользователи получают от продукта, и ведущая к выручке в долгую (число оформленных заказов, время прослушивания…

    Middle
  26. 26Как работать с пропущенными значениями в данных?

    Сначала понять, почему значение пропущено: технический сбой, «не применимо» (нет второго адреса), пользователь не захотел указывать. Пропуск часто несёт информацию. Варианты…

    Junior
  27. 27Что такое проблема множественных сравнений?

    При α = 0,05 каждый тест даёт 5% ложных срабатываний. Проверив 20 метрик или сегментов, вы с вероятностью около 64% найдёте хотя бы одну «значимую» случайно. Лечение: одна главная…

    Middle
  28. 28Что такое массивы NumPy и как считать без циклов?

    ndarray — массив чисел одного типа в непрерывной памяти; операции над ним (a + b, a 2, np.sqrt(a), a @ b) выполняются в C над всем массивом сразу — в десятки раз быстрее цикла…

    Junior
  29. 29Как обнаруживать и обрабатывать выбросы в данных?

    Сначала понять природу выброса: ошибка данных (тестовый заказ, бот, сбой трекинга, неверные единицы) — исправить или исключить; реальное редкое значение (оптовый клиент) — часть…

    Junior
  30. 30Что такое p-value и как работает проверка статистических гипотез?

    Формулируют нулевую гипотезу (эффекта нет) и альтернативу. p-value — вероятность получить такие или ещё более сильные различия, если нулевая гипотеза верна. Если p-value меньше…

    Junior
  31. 31Как работают groupby и merge в pandas и какие у них ловушки?

    groupby — разбить, применить агрегат, собрать (split-apply-combine): df.groupby("city")["amount"].agg(["sum", "mean"]). merge — соединение таблиц по ключам, как SQL JOIN…

    Junior
  32. 32Как работать с временными рядами в pandas — ресемплинг, скользящие окна, сдвиги?

    Индекс — DatetimeIndex (pd.to_datetime и set_index). resample("D") меняет частоту с агрегатом (события → сумма по дням, дни → недели). rolling(7) — скользящее окно (среднее за 7…

    Middle
  33. 33Почему apply и циклы в pandas медленные и как писать быстрее?

    Векторные операции над столбцами (df["a"] df["b"], np.where, .str, .dt) выполняются в C над массивами. apply по строкам и циклы iterrows вызывают Python-функцию на каждую строку …

    Middle
  34. 34Почему нельзя останавливать A/B-тест, как только результат стал значимым?

    p-value колеблется по ходу теста, и если проверять каждый день и остановиться на первом p < 0,05, доля ложных срабатываний вырастает с 5% до 20–30%. Это те же множественные…

    Middle
  35. 35Как оценить эффект изменения, если A/B-тест провести нельзя?

    Разность разностей (difference-in-differences) — сравнить изменение метрики в затронутой группе с изменением в похожей незатронутой за тот же период; допущение — параллельные…

    Middle
  36. 36Как анализировать метрики-отношения (средний чек, CTR) и метрики с длинным хвостом в A/B-тесте?

    Если единица рандомизации — пользователь, а метрика считается по заказам или кликам (средний чек = выручка / число заказов, CTR = клики / показы), наблюдения внутри пользователя…

    Senior
  37. 37Как посчитать когортный retention на SQL?

    Определить когорту каждого пользователя (обычно неделя или месяц первого действия), для каждого события посчитать номер периода от начала когорты, затем посчитать уникальных…

    Middle
  38. 38Какие бывают виды retention и как их интерпретировать?

    N-day (classic) retention — доля пользователей когорты, активных ровно в день N (или неделю N). Rolling (unbounded) — доля активных в день N или позже — всегда выше классического…

    Junior
  39. 39Как разбить поток событий на сессии на SQL?

    Сессия — серия событий пользователя без пауз дольше порога (обычно 30 минут). LAG даёт время предыдущего события; где пауза больше порога — флаг начала новой сессии; нарастающая…

    Middle
  40. 40Что такое SRM (sample ratio mismatch) и почему это повод не доверять результатам теста?

    SRM — наблюдаемое соотношение групп статистически отличается от запланированного (50/50 стало 50,8/49,2 на миллионе пользователей). Это признак сломанной рандомизации или…

    Middle
  41. 41Как выбрать топ-N записей в каждой группе, например три самых дорогих заказа каждого клиента?

    Пронумеровать строки внутри группы оконной функцией и отфильтровать номер во внешнем запросе: ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY amount DESC) и WHERE rn <= 3…

    Junior
  42. 42Что такое ошибки первого и второго рода и мощность теста?

    Ошибка I рода (α) — найти эффект, которого нет (ложная тревога). Ошибка II рода (β) — не найти существующий эффект (пропуск). Мощность = 1 − β — вероятность обнаружить эффект…

    Middle
  43. 43Что такое CUPED и как ускорить A/B-тесты без увеличения трафика?

    CUPED использует данные пользователя до эксперимента (например, его выручку за прошлый месяц): из метрики вычитают часть, объяснимую этой ковариатой: Y' = Y − θ(X − X̄). Эффект не…

    Senior
  44. 44Что такое оконные функции в SQL и чем они отличаются от GROUP BY?

    GROUP BY схлопывает группу в одну строку; оконная функция считает по группе строк (окну), сохраняя все строки. Окно задаёт OVER (PARTITION BY … ORDER BY … ROWS …). Основные…

    Junior
Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования