Урок курса
Bootstrap в A/B-тестах: доверительный интервал
A/B тесты и анализ данных на PythonBootstrap приближает выборочное распределение статистики повторным ресемплированием наблюдений с возвращением. Из исходной выборки размера n много раз собирают новую выборку того же размера, каждый раз считают метрику и получают распределение оценок.
Для A/B-теста обычно ресемплируют группы отдельно, вычисляют метрику A, метрику B и их разницу. Квантили распределения разниц дают percentile-интервал.
for _ in range(iterations):
a_star = rng.choice(a, size=len(a), replace=True)
b_star = rng.choice(b, size=len(b), replace=True)
effects.append(metric(b_star) - metric(a_star))
Метод особенно удобен для медианы, квантиля и сложной метрики, у которой неудобна аналитическая формула стандартной ошибки.
Единица ресемплирования
Bootstrap должен сохранять структуру данных. Если вариант назначается пользователю, а таблица содержит события, ресемплируют пользователей вместе со всеми их событиями, а не отдельные строки. Иначе зависимые события искусственно увеличат эффективный размер выборки.
Для временных рядов простой независимый bootstrap часто разрушает автокорреляцию; используют block bootstrap или временную модель. Для кластерного эксперимента ресемплируют кластеры. Метод не исправляет плохую рандомизацию, утечку между группами и систематическое смещение.
Число итераций влияет на стабильность хвостовых квантилей. Фиксируйте seed для воспроизводимости и проверяйте, что увеличение итераций заметно не меняет вывод.
Ограничения и интерпретация
Percentile bootstrap прост, но может работать плохо при сильном смещении, малой выборке или статистике на границе допустимых значений. Существуют basic и BCa-интервалы; выбор метода нужно зафиксировать до просмотра желаемого результата.
Bootstrap не означает «метод без предположений». Он предполагает, что наблюдаемая выборка достаточно представляет генеральную совокупность и что схема ресемплирования отражает механизм получения данных.
В отчёте укажите метрику, единицу ресемплирования, число итераций, seed и тип интервала. Сравните результат с простым аналитическим методом на тестовой задаче: резкое расхождение часто обнаруживает ошибку реализации или неверную единицу анализа.
Попробуйте решить
Что нужно ресемплировать, если вариант A/B назначается пользователю, а у пользователя много событий?
Продолжить с проверкой и прогрессом
Откройте интерактивный раннер с заданиями урока.
