Что такое бутстрэппинг и почему мы его используем?

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

Брэдли Эфрон впервые опубликовал идею бутстрэппинга в 1979 году. Этот ресурсоемкий метод стал более популярным и полезным, поскольку вычислительные мощности стали дешевле и доступнее. Действительно, исследователи упоминали метод самозагрузки более 20 000 раз.

При работе с большими наборами данных мы стремимся сделать выводы о популяции, из которой взяты наши данные. Хотя мы можем вычислить среднее или медианное значение, мы не знаем достоверности этой оценки. Если мы увеличим размер нашей выборки, мы сможем уменьшить ошибку и приблизиться к параметрам генеральной совокупности. Однако, если мы проводим секвенирование РНК или собираем большие объемы данных, увеличение размера выборки дорого или даже невозможно. Начальная загрузка - это метод повторной выборки, который помогает нам определять ошибки и доверительные интервалы. Результаты бутстрэппинга позже послужат основой для выводов независимо от того, смотрите ли вы на данные фондового рынка, филогенетические деревья или изобилие транскриптов генов.

Определение Bootstrap

Бутстраппинг - это метод ресэмплинга с заменой. Мы рассмотрим пример, чтобы объяснить, как это работает, а также предположения для этого метода.

Предположим, у нас есть набор данных, показывающий стоимость, которую баскетболисты взимают за выступления в дни рождения. Однако вам сложно связаться с более чем 8 игроками, поэтому ваш набор данных, D, в этом примере содержит 8 значений. Поскольку мы разговаривали с широким кругом разных баскетболистов, от скамейщиков запаса, чтобы убедиться, что ваша выборка достаточно похожа на все население игроков.

В этом заключается наше статистическое предположение: наша выборка данных аппроксимирует распределение населения.

D = {100, 200, 200, 300, 500, 1000, 1000, 750}

Здесь среднее значение для нашей выборки D составляет 506,25. Если мы загрузим этот образец несколько раз, мы получим лучшее представление о дисперсии в этом наборе данных. При загрузке выполняется повторная выборка с заменой. Каждый из наших восстановленных бутстрапов будет иметь 8 значений, однако, поскольку они передискретизируются с заменой, одно и то же значение (например, 100) может появляться несколько раз. Таким образом, начальная загрузка может генерировать разные оценки при каждом запуске. Однако при наличии достаточного количества бутстрапов мы генерируем приблизительную дисперсию данных. Обратите внимание на следующее:

  1. Мы не добавляем новые точки в наш набор данных.
  2. Каждый восстановленный бутстрап содержит то же количество значений, что и наш исходный образец.
  3. Поскольку мы передискретизируем с заменой, вероятность передискретизации любого значения одинакова на протяжении всего процесса начальной загрузки. Каждое значение рисуется как независимое событие. Если первое значение, которое мы пересчитали, равно 200, это не меняет вероятность того, что второе значение в этом бутстрапе также будет 200.
D₁ = {100, 1000, 500, 300, 200, 200, 200, 100}
D₂ = {300, 1000, 1000, 300, 500, 100, 200, 750}
D₃ = {750, 300, 200, 200, 100, 300, 750, 1000}

Средние значения D₁, D₂, D₃ составляют 325, 518,75, 450. Затем мы можем использовать эти значения для генерации стандартной ошибки, доверительных интервалов и других представляющих интерес мер. Используя Python, R или другие языки, легко сгенерировать 50, 100 или даже 1000 загрузочных образцов. Знание систематической ошибки, дисперсии и разброса нашей выборки помогает нам делать более точные выводы о популяции, из которой она была взята. Это поможет вам включить надежность вашего образца в остальные ваши выводы.

Для этого примера мы использовали небольшой набор данных. Как правило, самозагрузка не применяется к небольшим наборам данных, наборам данных с большим количеством выбросов или наборам данных, включающим зависимые меры данных.

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

Использование Bootstrap для биоинформатики

Пример 1: Филогенетические деревья²

Самостоятельная загрузка помогает нам определить степень достоверности определенных ветвей филогенетического дерева. Мы могли бы смотреть на аминокислотную последовательность из белка или нуклеотидную последовательность из гена. Наш исходный образец можно быстро пересчитать 1000 раз, реконструируя 1000 бутстрэп-деревьев. Если ваше исходное дерево показывает, что конкретный белок или последовательность гена разветвляются, вы можете проверить свое начальное дерево, чтобы увидеть, как часто возникает это ветвление. Если это происходит более 950 раз, вы можете быть уверены, что ваши данные надежны. Если это происходит всего около 400 раз, то это может быть результатом выброса.

Пример 2: Оценка количества транскриптов гена

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

Другие варианты использования начальной загрузки включают агрегирование для ансамблевого машинного обучения. По сути, наш набор данных пересчитывается много раз. Затем каждый образец начальной загрузки проходит через наш классификатор или модель машинного обучения. Мы можем использовать все выходные данные вместе, чтобы создать более точный классификатор. Это предохраняет нас от переобучения данных, основанных на нашей ограниченной выборке.

Ссылки

  1. Эфрон, Б. Методы начальной загрузки: новый взгляд на складной нож. Аня. Статист. 7 (1979), нет. 1, 1–26. DOI: 10.1214 / aos / 1176344552. Https://projecteuclid.org/euclid.aos/1176344552
  2. Эфрон, Брэдли, Элизабет Холлоран и Сьюзен Холмс. «Уровни достоверности начальной загрузки для филогенетических деревьев». Труды Национальной академии наук 93.23 (1996): 13429–13429.
  3. Https://hbctraining.github.io/DGE_workshop_salmon/lessons/09_sleuth.html