Расчёт размера выборки для A/B теста

Medium SciPy статистика Сбер

Условие задачи

Дано: baseline конверсия p1 = 0.10, ожидаемый MDE = 0.01, alpha = 0.05, power = 0.80. Посчитайте необходимый размер каждой группы для нескольких MDE [0.005, 0.01, 0.015, 0.02, 0.03] по формуле n = (z_alpha/2 + z_beta)² × (p1×(1-p1) + p2×(1-p2)) / (p2 - p1)², где p2 = p1 + MDE. Дополнительно посчитайте общий объём (2n) и сколько дней потребуется при 1000 пользователей в день. Сохраните dict {"sample_sizes": {MDE: n_per_group}, "total_users": {MDE: 2*n}, "days_at_1000_per_day": {MDE: ceil(2*n/1000)}} в `result`.

Темы

sample_size power_analysis ab_test statistics

Подсказки

Что проверяет эта задача

Задача «Расчёт размера выборки для A/B теста» учит применять статистику и научные методы через scipy. Такие задачи дают на собеседованиях в Сбер и других IT-компаниях. Уровень средний — типичная боевая задача на уверенный Python.

Как подступиться к решению

Сначала разбери условие и формат входа-выхода, прикинь крайние случаи (пустой ввод, дубли, NaN). Затем выбери структуру данных и собери решение по шагам — начни с простого рабочего варианта, потом оптимизируй сложность. Код пишешь и запускаешь прямо в браузере: Python-тренажёр исполняет его через Pyodide (pandas, numpy, scipy) и проверяет результат автоматически.

На собеседовании по Python для аналитика ценят чистый читаемый код, корректную обработку крайних случаев (пустой ввод, дубли, None) и умение вслух оценить сложность по времени и памяти. Часто просят не просто решить, а разобрать альтернативные подходы и показать, где наивное решение сломается на большом объёме данных.

Прокачать Python для аналитики — бесплатный курс «Pandas с нуля» и Python-тренажёр.

Открыть задачу в тренажёре → ← Все Python-задачи