Все материалы
Продуктовая аналитикагайдстарт

Bootstrap для аналитика: как оценить интервал без сложной формулы

Понятное объяснение bootstrap для аналитика: повторная выборка с возвращением, интервалы для медианы, ratio-метрик и uplift, кластеризация по пользователю и ограничения метода.

КПКейсПрактика30 июля 2026 г.9 мин

Медиана, p90, LTV, revenue per user и разница между ratio-метриками плохо укладываются в простую формулу среднего. Bootstrap позволяет приблизить распределение оценки через многократную пересборку выборки. Но «запустили 10 000 повторов» не означает, что проблемы дизайна и смещения исчезли. Центральный вопрос материала: Как получить устойчивую оценку неопределённости для метрики, у которой нет удобной школьной формулы?

Ситуация из отчёта

Медиана, p90, LTV, revenue per user и разница между ratio-метриками плохо укладываются в простую формулу среднего. Bootstrap позволяет приблизить распределение оценки через многократную пересборку выборки. Но «запустили 10 000 повторов» не означает, что проблемы дизайна и смещения исчезли.

Bootstrap хорошо объясняется как «много разумных вариантов той же выборки». Он полезен, когда команда понимает, что интервал зависит от наблюдений и дизайна. Не продавай его как магический способ получить истину: это гибкий инструмент для неопределённости, а не замена качественному источнику данных.

пересобираем выборку, не придумывая данные

Как получить устойчивую оценку неопределённости для метрики, у которой нет удобной школьной формулы?

Статистическая модель

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

Определи estimand и уровень наблюдения, выбери число повторов и seed. Для двух групп пересэмплируй внутри каждой группы. Для paired-данных сохраняй пары. Построй распределение разницы и проверь его графиком. Сравни bootstrap interval с аналитическим методом там, где оба доступны: сильное расхождение — повод изучить данные, а не выбрать узкую границу.

Разбор чисел

В эксперименте медианное время до первой ценности снизилось на 0,7 дня, но распределение сильно скошено. Bootstrap по user_id показывает 95% interval от −1,1 до −0,2 дня. Это более содержательно, чем t-test по строкам событий, который искусственно повышает количество наблюдений.

Сначала убери дубли до уровня пользователя, затем фиксируй группы. Сохраняй каждый bootstrap estimate или агрегаты распределения, чтобы повторить расчёт. Проверь, как меняется интервал при 1 000, 5 000 и 20 000 повторах. Число повторов влияет на стабильность границ, но не исправляет выборку и не добавляет реальную информацию.

Распределение bootstrap-оценок

Условный пример: центральная масса повторов и границы интервала.

Число повторов

Что проверить в данных

До интерпретации проверь единицу наблюдения, период и правило включения. Затем пересчитай результат на небольшой выборке, где ответ известен заранее, и сравни с разумной альтернативой: другим горизонтом, зрелой когортой или user-level агрегацией.

Если показатель станет регулярным, сохрани рядом входные параметры, контрольные сверки и версию определения. Это важнее дополнительного знака после запятой.

Bootstrap-проверка перед публикацией
ШагЧто зафиксироватьРиск
Единицаuser_id или cluster_idпсевдорепликация
Estimandmedian diff / ratioдругая метрика
Seed и B42 / 10 000нерепродуцируемый результат
Intervalpercentile / BCaнеясная интерпретация
  • Зафиксируй baseline до просмотра результата.
  • Проверь пропуски, дубли и зрелость периода.
  • Покажи размер выборки и диапазон неопределённости.

Границы вывода

Нельзя пересэмплировать зависимые события как независимые. Для редкого события много bootstrap-выборок могут иметь нулевую долю. Ratio-of-sums и mean-of-ratios дают разные estimand. Не используй bootstrap, чтобы задним числом подобрать красивый метод после просмотра эффекта. И не забывай, что интервал отражает неопределённость при исходном дизайне.

Пиши: «Bootstrap по пользователям, 10 000 повторов, медианная разница −0,7 дня, 95% percentile CI [−1,1; −0,2]. В большинстве пересборок тест быстрее контроля; проверка на p90 показывает тот же знак». Читателю понятны объект, метод и устойчивость.

Факт → ограничение → действие

Сначала сообщи, что видно в данных. Затем назови, что мешает сделать более сильный вывод. В конце предложи один проверяемый следующий шаг.

Самостоятельный расчёт

Реализуй bootstrap для среднего, медианы и конверсии на одной выборке. Затем повтори расчёт по строкам и по пользователям и сравни ширину интервала. Разница покажет, почему grain важнее количества строк. Добавь seed и сохрани настройки в результат — иначе повторная проверка будет неполной.

pythonBootstrap разницы медиан по пользователям
import numpy as np

rng = np.random.default_rng(42)
diffs = []
for _ in range(10_000):
    c = rng.choice(control_users, len(control_users), replace=True)
    t = rng.choice(test_users, len(test_users), replace=True)
    diffs.append(np.median(t) - np.median(c))
np.quantile(diffs, [0.025, 0.5, 0.975])
  • Сохрани период и параметры расчёта.
  • Назови хотя бы один крайний случай.
  • Сформулируй вывод отдельно от гипотезы о причине.

Как сообщить результат

Пиши: «Bootstrap по пользователям, 10 000 повторов, медианная разница −0,7 дня, 95% percentile CI [−1,1; −0,2]. В большинстве пересборок тест быстрее контроля; проверка на p90 показывает тот же знак». Читателю понятны объект, метод и устойчивость.

Bootstrap хорошо объясняется как «много разумных вариантов той же выборки». Он полезен, когда команда понимает, что интервал зависит от наблюдений и дизайна. Не продавай его как магический способ получить истину: это гибкий инструмент для неопределённости, а не замена качественному источнику данных.

Продолжить чтение
Вся библиотека
Продуктовая аналитика21 июля 2026 г.13 мин
Ряд одинаково низких столбцов и один, поднимающийся намного выше остальных.

Выбросы в данных: что удалять, что оставить и почему правило IQR почти всегда врёт на деньгах

Разбор на модельном наборе из 2000 заказов: правило 1,5×IQR помечает 6% заказов, из которых аномальны пять. Как отличить ошибку от редкого клиента и что делать с каждым случаем.

Читать материал