Bootstrap на собеседовании аналитика

Что такое bootstrap

Bootstrap (бутстреп) — метод статистического вывода, основанный на многократном ресемплировании исходных данных. Идея: если у вас есть выборка из n наблюдений, вы создаёте тысячи «новых» выборок размера n, каждый раз случайно выбирая наблюдения из исходной с возвращением. Для каждой такой выборки считаете интересующую статистику — и получаете её распределение.

На собеседовании bootstrap — это показатель того, что кандидат умеет работать со статистикой без строгих предположений о распределении данных. Это универсальный инструмент, который решает задачи, неподъёмные для аналитических формул.

Когда применять bootstrap

Нет аналитической формулы. Для среднего или пропорции формулы CI известны. Но как построить доверительный интервал для медианы, 95-го перцентиля или отношения двух метрик? Bootstrap справляется с любой статистикой.

Малая выборка. Когда ЦПТ работает плохо (n < 30, скошенные данные), bootstrap даёт более точные интервалы, потому что не предполагает нормальность.

Сложная метрика. Ratio-метрики (revenue per paying user), взвешенные средние, разницы медиан — bootstrap строит CI для всего, что можно вычислить из данных.

Проверка результатов. Bootstrap полезен как «второе мнение»: если аналитическая формула даёт CI, bootstrap позволяет проверить, насколько он надёжен. Расхождение сигнализирует о нарушении предположений.

Bootstrap не создаёт новые данные и не увеличивает информацию. Он использует имеющуюся выборку, чтобы оценить неопределённость статистики — то, насколько она могла бы измениться при другой выборке из той же популяции.

Parametric vs non-parametric bootstrap

Non-parametric bootstrap — стандартный вариант. Ресемплирование из исходных данных с возвращением. Не требует предположений о распределении. Подходит для большинства задач.

Parametric bootstrap — предполагает модель распределения. Сначала оцениваете параметры (например, mean и std для нормального), затем генерируете выборки из этого распределения. Точнее, если модель верна; хуже, если нет.

Когда что выбрать. Non-parametric — по умолчанию, когда распределение неизвестно или сложное. Parametric — когда вы уверены в модели и хотите более точную оценку (например, для малых выборок из известного распределения).

Доверительные интервалы через bootstrap

Percentile method. Самый простой: 2.5-й и 97.5-й перцентили bootstrap-распределения дают 95% CI. Интуитивно понятен, но может быть смещённым при асимметричных распределениях.

BCa (Bias-Corrected and Accelerated). Корректирует смещение и асимметрию bootstrap-распределения. Более точен, чем percentile method, но сложнее в реализации. Рекомендуется как стандартный метод.

Количество итераций. Для CI обычно достаточно 1000-10000 ресемплов. Для p-value может потребоваться больше. Практическое правило: начните с 1000, увеличивайте, если результат нестабилен между запусками.

Bootstrap в A/B-тестах

Bootstrap применяется для построения CI разницы метрик между группами. Алгоритм: ресемплируйте контроль и тест отдельно, для каждой пары посчитайте разницу, постройте CI по распределению разниц. Если CI не содержит ноль — эффект значим.

Преимущества для A/B. Работает для любых метрик, включая ratio и percentile. Не требует нормальности. Легко визуализировать распределение эффекта.

Ограничения. Вычислительно дороже аналитических формул. При очень малых выборках (n < 10-15) bootstrap ненадёжен — слишком мало уникальных ресемплов.

Типичные вопросы на собеседовании

  • «Как построить CI для медианы?» — bootstrap: ресемплируйте данные 10000 раз, посчитайте медиану для каждого ресемпла, возьмите 2.5-й и 97.5-й перцентили
  • «Чем bootstrap лучше аналитической формулы?» — универсальность: работает для любой статистики без предположений о распределении
  • «Можно ли использовать bootstrap для маленькой выборки?» — с оговорками: при n < 15 качество падает, но всё равно лучше, чем нормальное приближение для скошенных данных

Частые ошибки

Забывают про «с возвращением». Ресемплирование без возвращения даёт ту же самую выборку каждый раз (только в другом порядке). Bootstrap работает только с возвращением — именно это создаёт вариативность.

Применяют к зависимым данным. Если наблюдения зависимы (временные ряды), обычный bootstrap ломается. Нужны специальные методы: block bootstrap или circular bootstrap.

Путают с генерацией данных. Bootstrap не создаёт новую информацию. Он оценивает вариабельность статистики на основе имеющихся данных. Если выборка нерепрезентативна — bootstrap это не исправит.

На собеседовании важно не только знать алгоритм, но и понимать ограничения. Фраза «bootstrap решает все проблемы» — красный флаг для интервьюера.

FAQ

Сколько bootstrap-итераций нужно?

Для доверительных интервалов — 1000-10000. Для проверки гипотез (permutation test) — 10000+. Проверяйте стабильность: запустите bootstrap дважды и сравните результаты. Если CI отличается больше, чем на 1-2% — увеличьте число итераций.

Чем bootstrap отличается от permutation test?

Bootstrap ресемплирует внутри каждой группы с возвращением и оценивает распределение статистики. Permutation test перемешивает метки групп и оценивает распределение под нулевой гипотезой. Bootstrap строит CI, permutation test проверяет гипотезу. Они отвечают на разные вопросы.

Можно ли использовать bootstrap в продакшене?

Да, но с учётом вычислительных затрат. Для онлайн-систем (real-time CI на дашборде) bootstrap может быть слишком медленным — лучше аналитические формулы. Для offline-анализа (отчёт по итогам теста) bootstrap — отличный выбор. Многие крупные компании используют его как стандарт.

Смотрите также