A/B-тест: z-test для разницы пропорций

Medium Python ab-testing Yandex / Ozon

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

Реализуй функцию `ab_ztest(success_a, n_a, success_b, n_b)` — **двусторонний z-тест для разности двух пропорций**. Это базовый стат-тест для A/B на бинарной метрике (конверсия, CTR, retention). **Аргументы:** - `success_a`, `n_a` — конверсии и размер контрольной группы - `success_b`, `n_b` — то же для тестовой группы **Что вернуть:** двустороннее p-value, округлённое до 4 знаков (`float`). **Ограничения:** - `scipy` запрещён — используй только `math` (`sqrt`, `erf`) - Если стандартная ошибка получается равной 0 (вырожденные данные) — верни `1.0` **Пример:** `ab_ztest(360, 12000, 402, 12200)` → конверсии 3.0% и 3.30%, разница есть, но достаточно ли её для статзначимости? Подсказка в `Подсказке` (если нужно вспомнить формулу). Эталон — в `Эталонном решении`.

Темы

statistics A/B z-test proportions erf

Подсказки

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

Задача «A/B-тест: z-test для разницы пропорций» учит решать задачи на Python так, как это спрашивают на собеседовании аналитика данных. Такие задачи дают на собеседованиях в Yandex / Ozon и других IT-компаниях. Уровень средний — типичная боевая задача на уверенный Python.

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

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

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

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

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