**Данные:** DataFrame с результатами A/B-теста, запущенного без предварительного расчёта: `user_id`, `variant` (control/test), `converted` (0/1), `revenue`.
Тест уже завершён, нужен пост-хок анализ.
**Задание:**
1. Рассчитайте CR1, CR2, абсолютный и относительный uplift
2. Постройте 95% доверительные интервалы для разницы конверсий
3. Проведите t-test (Welch) для revenue
4. Реализуйте упрощённый байесовский подход (Beta-распределение) — оцените P(B > A)
Структура для ориентира — реальные значения из эталонного решения.
data = pd.DataFrame({
'user_id': range(n_control + n_test),
'variant': ['control'] * n_control + ['test'] * n_test,
'converted': np.concatenate([
np.random.binomial(1, 0.082, n_control),
np.random.binomial(1, 0.095, n_test),
]),
'revenue': np.concatenate([
np.random.exponential(450, n_control) * np.random.binomial(1, 0.082, n_control),
np.random.exponential(470, n_test) * np.random.binomial(1, 0.095, n_test),
]),
})
pandas scipy A/B-тест доверительные интервалы байесовский подход t-test
Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.
Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: pandas, scipy, A/B-тест, доверительные интервалы, байесовский подход.
На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.
На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.
← Все задания