Дано: DataFrame `ab_data` с колонками group, stratum (платформа: ios/android/web), converted (0/1). Посчитайте стратифицированную оценку эффекта A/B теста и сравните с нестратифицированной (наивной). Формулы: - Внутри каждой страты: конверсии, размеры выборок - delta_strat = sum(w_s × delta_s), где w_s = n_s / N - SE = √(sum(w_s² × SE_s²)) - z-stat и p-value Сохраните dict {"stratified": {"delta":..., "se":..., "z":..., "p_value":...}, "naive": {"delta":..., "p_value":...}, "strata_details": {...}} (округлённые до 4 знаков) в `result`.
stratification ztest ab_test simpson_paradox statistics
Задача «Стратифицированный z-тест» учит применять статистику и научные методы через scipy. Такие задачи дают на собеседованиях в Сбер и других IT-компаниях. Уровень сложный — проверяет глубину и умение собрать решение из нескольких приёмов.
Сначала разбери условие и формат входа-выхода, прикинь крайние случаи (пустой ввод, дубли, NaN). Затем выбери структуру данных и собери решение по шагам — начни с простого рабочего варианта, потом оптимизируй сложность. Код пишешь и запускаешь прямо в браузере: Python-тренажёр исполняет его через Pyodide (pandas, numpy, scipy) и проверяет результат автоматически.
На собеседовании по Python для аналитика ценят чистый читаемый код, корректную обработку крайних случаев (пустой ввод, дубли, None) и умение вслух оценить сложность по времени и памяти. Часто просят не просто решить, а разобрать альтернативные подходы и показать, где наивное решение сломается на большом объёме данных.
Прокачать Python для аналитики — бесплатный курс «Pandas с нуля» и Python-тренажёр.
Открыть задачу в тренажёре → ← Все Python-задачи