Может ли бутстрап рассматриваться как «лекарство» для небольшого размера выборки?

71

Этот вопрос был вызван тем, что я прочитал в этом учебнике по статистике для выпускников, а также (независимо) услышал во время этой презентации на статистическом семинаре. В обоих случаях утверждение было следующим: «поскольку размер выборки довольно мал, мы решили выполнить оценку с помощью начальной загрузки вместо (или вместе с) этого параметрического метода ».X

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

На мой взгляд, это не то, для чего нужен бутстрап. Вот как я это вижу: начальная загрузка может дать преимущество, когда более или менее очевидно, что данных достаточно, но нет решения в закрытой форме для получения стандартных ошибок, p-значений и аналогичной статистики. Классическим примером является получение КИ для коэффициента корреляции по выборке из двумерного нормального распределения: решение в замкнутой форме существует, но оно настолько запутанно, что начальная загрузка проще. Тем не менее, ничто не подразумевает, что бутстрап может как-то помочь избежать небольшого размера выборки.

Правильно ли мое восприятие?

Если вам интересен этот вопрос, у меня есть еще один, более конкретный вопрос о начальной загрузке:

Bootstrap: проблема переоснащения

PS Я не могу не поделиться одним вопиющим примером «бутстрапного подхода». Я не раскрываю имя автора, но он один из «квантов» старшего поколения, который написал книгу о количественных финансах в 2004 году. Пример взят из этого.

Рассмотрим следующую проблему: предположим, у вас есть 4 актива и 120 ежемесячных наблюдений за возвращением для каждого. Цель состоит в том, чтобы построить объединенный 4-мерный cdf годовых доходов. Даже для одного актива эта задача вряд ли достижима только с 10 ежегодными наблюдениями, не говоря уже об оценке 4-мерного cdf. Но не волнуйтесь, «бутстрап» поможет вам: возьмите все доступные 4-мерные наблюдения, произведите повторную выборку 12 с заменой и составьте их, чтобы построить единый «загруженный» 4-мерный вектор годовой доходности. Повторите это 1000 раз, и, о чудо, вы получили «образец самозагрузки» из 1000 годовых доходов. Используйте это как образец iid размером 1000 для оценки cdf или любого другого вывода, который можно извлечь из тысячелетней истории.

Джеймс
источник
18
Я слышу или читаю подобные чувства к вашему первому абзацу, но я склонен не соглашаться. Обычно я не считаю, что начальная загрузка может быть полезна в небольших выборках. Его обоснование - асимптотическая / большая выборка, и во многих случаях на практике ее небольшая выборочная производительность проблематична; Например, покрытие интервалов часто сильно отличается от номинального показателя. Это еще один полезный инструмент, но, как и многие другие, которые были объявлены на протяжении многих лет, это не панацея, о которой некоторые думают. Я действительно не думаю, что это решение для очень маленьких образцов.
Glen_b
В книге Саймона Шизера (рис. 3.40) есть блок-схема регрессии, которая предлагает начальную загрузку для вывода, когда размер выборки невелик и ошибки обычно не распределяются.
Тони Ладсон
2
Ответ на вопрос в четвертом абзаце - «да» (или, по крайней мере, вы получили бы оценку за свои аргументы, если бы дали этот ответ на экзамене в моем классе). Вы проверили это обсуждение ? В своем ответе я дал объяснение приближений, которые делает бутстрап, и дал ссылку на документ с умопомрачением, который должен прочитать каждый загрузчик, чтобы знать об ограничениях метода. Было бы неплохо увидеть ссылки на книги / документы / презентации, которые вызвали ваш вопрос
StasK
Разве бутстрап не дает вам дополнительный термин в расширении Edgeworth - как нормальное приближение с поправочным членом?
вероятностная

Ответы:

34

Я помню, что читал, что использование процентного доверительного интервала для начальной загрузки эквивалентно использованию Z-интервала вместо T-интервала и использованию вместо для знаменателя. К сожалению, я не помню, где я читал это и не смог найти ссылку в моих быстрых поисках. Эти различия не имеют большого значения, когда n велико (а преимущества начальной загрузки перевешивают эти незначительные проблемы, когда велико), но при малых это может вызвать проблемы. Вот код R для моделирования и сравнения:n - 1 n nnn1nn

simfun <- function(n=5) {
    x <- rnorm(n)
    m.x <- mean(x)
    s.x <- sd(x)
    z <- m.x/(1/sqrt(n))
    t <- m.x/(s.x/sqrt(n))
    b <- replicate(10000, mean(sample(x, replace=TRUE)))
    c( t=abs(t) > qt(0.975,n-1), z=abs(z) > qnorm(0.975),
        z2 = abs(t) > qnorm(0.975), 
        b= (0 < quantile(b, 0.025)) | (0 > quantile(b, 0.975))
     )
}

out <- replicate(10000, simfun())
rowMeans(out)

Мои результаты за один прогон:

     t      z     z2 b.2.5% 
0.0486 0.0493 0.1199 0.1631 

Таким образом, мы можем видеть, что использование t-критерия и z-критерия (с истинным стандартным отклонением совокупности) дают частоту ошибок типа I, которая по существу равна как и планировалось. Неправильный z-тест (деление на выборочное стандартное отклонение, но с использованием критического значения Z вместо T) отклоняет ноль более чем в два раза чаще, чем следует. Теперь для начальной загрузки она отклоняет нулевое значение в 3 раза чаще, чем следовало бы (смотря, находится ли 0, истинное среднее значение, в интервале или нет), так что для этого небольшого размера выборки простая начальная загрузка не имеет правильного размера и поэтому делает не исправить проблемы (а это когда данные оптимально нормальные). Улучшенные интервалы начальной загрузки (BCa и т. Д.), Вероятно, будут лучше, но это должно вызвать некоторую обеспокоенность по поводу использования начальной загрузки в качестве панацеи для небольших выборок.α

Грег Сноу
источник
6
Ваше последнее предложение вызвало у меня любопытство, поэтому я попробовал это на вашем примере. Я использовал bootпакет и предоставил ему все возможные интервалы: интервал нормального приближения первого порядка, базовый интервал начальной загрузки, стандартизированный интервал начальной загрузки, интервал начальной загрузки (который уже есть в вашем коде) и скорректированный процент начальной загрузки (BCa) интервал. Результаты были практически одинаковыми (показатели отклонения около .16-.17), за исключением студенческого интервала, который имел номинальный (.05) коэффициент отклонения (что имеет смысл, поскольку он больше похож на стандартный t-критерий).
Вольфганг
2
@ Вольфганг, спасибо за дополнительные симуляции. Я немного удивлен, что другие интервалы не сделали немного лучше, но не удивлен, что они не встретили уровень 0,05.
Грег Сноу
1
Да, я тоже был немного удивлен! Иногда наша интуиция терпит неудачу. Вот почему так замечательно иметь возможность написать небольшой сценарий на R в течение нескольких минут, запустить его 10,000 \times 10,000итерации (что заняло еще пару минут) и иметь возможность проверять вещи. И ваш пример прекрасно показывает, что загрузчик может работать очень плохо с небольшими выборками, даже когда все «хорошо» (то есть данные на самом деле нормальные).
Вольфганг
На самом деле, проблема, наблюдаемая в этой симуляции, является именно той, о которой я только что спросил здесь и на которую ответил @whuber: stats.stackexchange.com/questions/323455/… . Следовательно, я не думаю, что проблема заключается в размере выборки, а в нарушении независимости для параметрического вывода в каждой выборке.
полупансион
2
Ваш комментарий к процентилю доверительного интервала быть эквивалентен использованием вместо от здесь , только для записи. tzt
Daeyoung Lim
14

Если вам предоставляется небольшой размер выборки (в качестве побочного эффекта то, что кажется «маленьким», зависит от некоего базового обычного правила в каждой области исследований), никакой начальной загрузки не поможет. Предполагая, что база данных содержит три наблюдения для каждой из двух исследуемых переменных, никакой вывод не будет иметь смысла. По моему опыту, непараметрический начальный загрузчик (1000 или 10000 повторений) хорошо работает при замене t-критерия, когда распределения выборки (не менее 10-15 наблюдений в каждом) искажены и, следовательно, предпосылки для обычного t-критерия не выполняются. Кроме того, независимо от количества наблюдений, непараметрическая начальная загрузка может быть обязательным выбором, когда данные имеют положительный перекос, как это всегда происходит для затрат на здравоохранение.

Карло Лаззаро
источник
1
Начальная загрузка может быть обязательным выбором, когда данные имеют положительный перекос - почему бы вместо этого не использовать логнормальное или подобное асимметричное распределение? У SAS и R есть много вариантов.
Джеймс
1
Ответ Джеймса заслуживает рассмотрения. Однако обычная проблема, с которой я сталкиваюсь при регистрации данных о расходах - обратное преобразование в исходную метрику, прежде чем представлять результаты лицам, принимающим решения. Вы можете избежать этой проблемы с помощью непараметрической начальной загрузки.
Карло Лаззаро
Карло, так как у вас есть опыт преобразования журналов, вы можете ответить на другой мой вопрос ( награда
Джеймс
Джеймс, я дал соблазнительный ответ на твой вопрос несколько минут назад.
Карло Лаззаро
χ 2 1t тесты могут быть скорректированы для искаженных групп населения, см. jstor.org/stable/2286597 - предложенные исправления хорошо работали с довольно искаженными такими как с 10 наблюдениями. χ12
StasK
13

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

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

Если вы действительно хотите найти проблемы с использованием непараметрической начальной загрузки, вот две проблемы:

(1) Проблемы с передискретизацией.

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

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

Как бы вы повторили выборку при сохранении зависимости неизвестной структуры?

(2) Узкие выборки начальной загрузки и доверительные интервалы начальной загрузки для небольших выборок .

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

Предположим, что , где - это скорость. Используя вероятность профиля, вы можете получить приблизительный доверительный интервал (приблизительный доверительный интервал 95% - это интервал вероятности профиля уровня 0,147) следующим образом:λ > 0x1,x2Exp(λ)λ>0

set.seed(1)
x <- rexp(2,1)
# Maximum likelihood estimator
1/mean(x)

# Profile likelihood: provides a confidence interval with right-end point beyond the maximum inverse of the mean
Rp <- Vectorize(function(l) exp(sum(dexp(x,rate=l,log=T))-sum(dexp(x,rate=1/mean(x),log=T))))

curve(Rp,0,5)
lines(c(0,5),c(0.147,0.147),col="red")

Этот метод создает непрерывную кривую, из которой можно извлечь доверительный интервал. Максимальная оценка правдоподобия : . Путем повторной выборки есть только три возможных значения, которые мы можем получить для этой оценки, чей максимум и минимум определяют границы для соответствующих доверительных интервалов начальной загрузки. Это может выглядеть странно даже для больших выборок начальной загрузки (вы не сильно увеличите это число):А , = 2 / ( х 1 + х 2 )λλ^=2/(x1+x2)

library(boot)
set.seed(1)
x <- rexp(2,1)
1/mean(x)
# Bootstrap interval: limited to the maximum inverse of the mean
f.boot <- function(data,ind) 1/mean(data[ind])
b.b <- boot(data=x, statistic=f.boot, R=100000)
boot.ci(b.b, conf = 0.95, type = "all")
hist(b.b$t)

В этом случае, чем ближе и , тем уже распределение начальной загрузки и, следовательно, уже доверительный интервал (который может быть расположен далеко от реального значения). Этот пример, фактически, связан с примером, представленным @GregSnow, хотя его аргумент был более эмпирическим. Границы, которые я упоминаю, объясняют плохую производительность всех доверительных интервалов начальной загрузки, проанализированных @Wolfgang.х 2x1x2

Troilo
источник
6

Bootstrap хорошо работает с небольшими размерами выборки, обеспечивая правильность тестов (например, номинальный уровень значимости 0,05 близок к фактическому размеру теста), однако бутстреп магически не дает вам дополнительной мощности. Если у вас маленький образец, у вас мало силы, конец истории.

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

Для прогнозирования начальная загрузка даст вам лучшие (более честные) оценки внутренней достоверности, чем проверка с разделенной выборкой.

Самозагрузка часто дает вам меньше энергии в результате непреднамеренной коррекции процедур среднего вменения / горячей декки (например, при нечетком сопоставлении). Самозагрузка была ошибочно направлена ​​на то, чтобы дать больше возможностей в сопоставленном анализе, где отдельные лица были пересчитаны для соответствия достаточному размеру кластера, давая загруженные сопоставленные наборы данных с большим чем набор данных анализа.n

Adamo
источник
2
(например, номинальный уровень значимости 0,05 близок к реальному размеру теста), - но в приведенном выше коде R мы только что увидели, что загрузчик не сохраняет размер теста, верно?
Джеймс
Я вижу, вы имеете в виду ответ, предоставленный Грегом Сноу. Я был удивлен этим результатом. Мне нужно будет перепроверить мои факты и отредактировать мой ответ. Благодарю.
AdamO