Выбрать между z-тестом и bootstrap для сравнения среднего чека в A/B

hard A/B-тесты E-commerce

Условие задания

**Контекст.** Маркетплейс тестирует новую рекомендательную ленту на карточке товара. Гипотеза: она повышает средний чек (AOV, average order value). Классический t-тест по средним чекам показал p-value = 0.03, но лид отдела сомневается: распределение чеков сильно скошено вправо (много мелких заказов, редкие крупные), несколько заказов на сотни тысяч рублей. Нужно перепроверить результат методом, устойчивым к тяжёлым хвостам.

**Дано.** DataFrame `orders` — одна строка на оплаченный заказ:

| колонка | тип | описание |
|---|---|---|
| `order_id` | int | ID заказа |
| `group` | str | `control` / `treatment` |
| `revenue` | float | сумма заказа, руб. |

Примерные размеры: ~9 000 заказов в control, ~9 000 в treatment. Распределение `revenue` логнормальное с редкими выбросами.

**Задание.**
1. Объясните, почему на скошенных данных t-тест по среднему может вводить в заблуждение, и предложите альтернативу.
2. Реализуйте bootstrap-проверку разницы средних AOV: 10 000 ресэмплов, посчитайте 95% перцентильный ДИ разницы и bootstrap p-value.
3. Дополнительно сравните медианы (Mann-Whitney U) и прокомментируйте, что метрика меняет вывод.

**Формат ответа.** AOV и медиана по группам, bootstrap-ДИ разницы средних, bootstrap p-value, p-value Манна-Уитни, итоговая рекомендация с оговорками.

Пример данных

Структура для ориентира — реальные значения из эталонного решения.

orders = pd.DataFrame({
    'group': ['control']*len(ctrl) + ['treatment']*len(treat),
    'revenue': np.concatenate([ctrl, treat]),
})

Темы

A/B тест bootstrap t-тест AOV асимметричное распределение Mann-Whitney

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Выбрать между z-тестом и bootstrap для сравнения среднего чека в A/B"?

Это задание для уровня hard. Senior-уровень — глубокое понимание темы, опыт решения нестандартных задач, обсуждение trade-off на собеседовании.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «A/B-тесты» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: A/B тест, bootstrap, t-тест, AOV, асимметричное распределение.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 30-60 минут с обсуждением подходов, оптимизаций и trade-off. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «A/B-тесты»?

На zasqlpython.ru есть другие задания в категории «A/B-тесты», продуктовые кейсы, справочник метрик, AI мок-собеседование с разбором ваших ответов.

← Все задания