бутстрэп, или как вытащить себя за шнурки.
у тебя одна выборка и одна оценка — скажем, среднее. но насколько ей можно верить? раньше для этого нужна была формула и предположение о распределении. бутстрэп отвечает иначе: размножь свою выборку из самой себя — и посмотри, как пляшет оценка.
| тема | бутстрэп · Эфрон 1979 · ресэмплинг · доверительный интервал · непараметрическая статистика |
| читать | ~7 минут |
| связано | Монте-Карло · симуляция · ЦПТ · A/B · закон малых чисел |
Ты измерил что-то на выборке: средний чек, медиану зарплаты, эффект в A/B-тесте. Получил одно число. Но если бы выборка случайно вышла чуть другой, число было бы другим — и вопрос «насколько другим?» решает всё: это и есть доверительный интервал, мера того, можно ли оценке верить. Классически на него выводят формулу — но формула почти всегда требует предположений: что данные нормальны, что оценка — среднее, что выборка большая. А если у тебя медиана, перекошенные данные и полсотни точек?
Бутстрэп отвечает нагло и просто: раз настоящего распределения у тебя нет, считай свою выборку лучшим, что есть, — её копией мира. И насэмплируй из неё новые выборки. Берёшь исходные n точек и тянешь из них n штук обратно — с возвращением: вытащил точку, записал, вернул, тянешь снова1. Какие-то наблюдения попадут дважды, какие-то не попадут вовсе — это и есть случайная вариация, которую ты имитируешь. Получается новая выборка того же размера, чуть другая. Считаешь на ней ту же оценку. Повторяешь тысячу раз.
Своя выборка — единственное окно в мир, который ты не видел. Бутстрэп трясёт это окно, чтобы понять, насколько дрожит вид.
Тысяча пересэмплов — тысяча слегка разных оценок. Их разброс и есть оценка неопределённости: стандартную ошибку берёшь как разброс этого облака, а 95% доверительный интервал — попросту отсортировав тысячу значений и взяв 2.5-й и 97.5-й перцентили2. Никакой формулы, никакого предположения о нормальности — только сами данные и генератор случайных чисел. Метод непараметрический: он работает там, где аналитика молчит — для медианы, для перекошенных распределений, для странных составных оценок3.
Придумал это Брэдли Эфрон в 1979 году, развив более старый трюк — джекнайф, где выборку прощупывали, выбрасывая по одной точке4. Название — отсылка к барону Мюнхгаузену, который вытащил себя из болота за собственные волосы (по-английски — за «bootstraps», ремешки сапог): выборка сама себя вытаскивает, без внешней опоры. Звучит как жульничество, но за этим строгая идея — выборка относится к насэмпленным из неё копиям так же, как генеральная совокупность относится к выборке.
Бутстрэп — родной брат Монте-Карло, но с другого конца. В симуляции турнира мы выдумываем данные из модели; в бутстрэпе модели нет — мы пересэмплируем то, что уже собрали. Оба меняют сложную аналитику на грубую силу компьютера: вместо того чтобы выводить распределение оценки, мы его просто разыгрываем5. До 1979-го так не делали не потому, что не догадывались, а потому что не на чем было считать тысячу пересэмплов; бутстрэп — дитя дешёвого процессора.
В этом и красота: не нужно знать, как устроен мир, чтобы измерить, насколько ты в нём не уверен. Достаточно той горстки данных, что есть, и готовности потрясти её тысячу раз. Одна выборка молчит о своей точности — но если заставить её отвечать самой себе, она проговаривается. Вытащить себя за шнурки нельзя в физике, но в статистике — ровно так и считают неопределённость.