Ответ
Бутстрап — это компьютерный метод ресэмплинга (повторного выбора), используемый для оценки точности статистик (среднего, медианы, дисперсии) и построения доверительных интервалов. Его ключевая идея — многократное извлечение выборок с возвращением из исходного набора данных для эмпирической оценки распределения интересующей статистики.
Основные шаги метода:
- Имеется исходная выборка размера
n. - Генерируется
Bбутстрап-выборок (обычноB = 1000-10000). Каждая бутстрап-выборка формируется путём случайного отбораnнаблюдений из исходной выборки с возвращением (т.е. одно наблюдение может попасть в выборку несколько раз). - Для каждой бутстрап-выборки вычисляется интересующая статистика ( theta^* ) (например, выборочное среднее).
- Распределение этих
Bзначений ( theta^* ) используется как аппроксимация выборочного распределения исходной статистики.
Пример на Python: построение 95% доверительного интервала для медианы.
import numpy as np
# Исходные данные (например, время отклика сервиса в мс)
data = np.array([120, 135, 98, 155, 210, 103, 178, 145])
n = len(data)
B = 10000
bootstrap_medians = []
for _ in range(B):
# Генерация бутстрап-выборки с возвращением
bootstrap_sample = np.random.choice(data, size=n, replace=True)
# Вычисление статистики для этой выборки
bootstrap_medians.append(np.median(bootstrap_sample))
# Построение перцентильного доверительного интервала
ci_lower = np.percentile(bootstrap_medians, 2.5)
ci_upper = np.percentile(bootstrap_medians, 97.5)
print(f"Бутстрап 95% ДИ для медианы: ({ci_lower:.2f}, {ci_upper:.2f})")
Преимущества бутстрапа:
- Не требует строгих предположений о форме исходного распределения (например, нормальности).
- Применим к сложным статистикам, для которых нет аналитической формулы.
- Хорошо работает даже с небольшими выборками.
Ограничения: Может давать смещённые оценки для статистик, сильно зависящих от "хвостов" распределения, или данных со сложной структурой (например, временные ряды).