Почему мой интервал начальной загрузки имеет ужасное покрытие?


29

Я хотел сделать демонстрацию класса, где я сравниваю интервал t с интервалом начальной загрузки и вычисляю вероятность охвата обоих. Я хотел, чтобы данные поступали из искаженного дистрибутива, поэтому я решил сгенерировать данные в exp(rnorm(10, 0, 2)) + 1виде выборки размером 10 из смещенного логнормаляра. Я написал сценарий, чтобы нарисовать 1000 образцов и рассчитать для каждого образца 95-процентный интервал и 95-процентный интервал начальной загрузки на основе 1000 повторностей.

Когда я запускаю скрипт, оба метода дают очень похожие интервалы, и оба имеют вероятность покрытия 50-60%. Я был удивлен, потому что я думал, что интервал начальной загрузки будет лучше.

Мой вопрос, есть ли у меня

  • ошиблись в коде?
  • ошиблись в расчете интервалов?
  • допустили ошибку, ожидая, что интервал начальной загрузки будет иметь лучшие свойства покрытия?

Кроме того, есть ли способ построить более надежный КИ в этой ситуации?

 tCI.total <- 0
 bootCI.total <- 0
 m <- 10 # sample size
 true.mean <- exp(2) + 1

for (i in 1:1000){
 samp <- exp(rnorm(m,0,2)) + 1
 tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)

 boot.means <- rep(0,1000)
 for (j in 1:1000) boot.means[j] <- mean(sample(samp,m,replace=T))
 bootCI <- sort(boot.means)[c(0.025*length(boot.means), 0.975*length(boot.means))]

 if (true.mean > min(tCI) & true.mean < max(tCI)) tCI.total <- tCI.total + 1
 if (true.mean > min(bootCI) & true.mean < max(bootCI)) bootCI.total <- bootCI.total + 1 
}
tCI.total/1000     # estimate of t interval coverage probability
bootCI.total/1000  # estimate of bootstrap interval coverage probability

3
Люди часто забывают другое использование начальной загрузки: выявить и исправить предвзятость . Я подозреваю, что, если бы вы включили коррекцию смещения в вашу загрузку, вы могли бы получить гораздо лучшую производительность от CI.
whuber

@whuber: хорошая точка, +1. Насколько я помню, методы Bootstrap и их применение от Davison & Hinkley дают хорошее и доступное введение в исправление смещения и другие улучшения в начальной загрузке.
С. Коласса - Восстановить Монику

1
Стоит попробовать другие варианты начальной загрузки, особенно базовую загрузку.
Фрэнк Харрелл

3
Самозагрузка - это процедура большого образца. невелико, особенно для нормальных данных журнала . Nзнак равно10
Клифф А.Б.

Ответы:


16

Диагностика и методы начальной загрузки Canto, Davison, Hinkley & Ventura (2006) , по-видимому, являются логической отправной точкой. Они обсуждают несколько способов, с помощью которых бутстрап может сломаться, и, что более важно, предлагают диагностику и возможные способы устранения:

  1. Выпадающие
  2. Неверная модель повторной выборки
  3. Nonpivotality
  4. Несоответствие метода начальной загрузки

Я не вижу проблемы с 1, 2 и 4 в этой ситуации. Давайте посмотрим на 3. Как отмечает @Ben Ogorek (хотя я согласен с @Glen_b в том, что обсуждение нормальности может быть красной сельдью), валидность начальной загрузки зависит от стержня интересующей нас статистики.

Раздел 4 в Канти и соавт. предлагает выполнить повторную выборку внутри выборки, чтобы получить меру смещения и дисперсии для оценки параметра в каждой начальной загрузке . Вот код для репликации формул из р. 15 статьи:

library(boot)
m <- 10 # sample size
n.boot <- 1000
inner.boot <- 1000

set.seed(1)
samp.mean <- bias <- vars <- rep(NA,n.boot)
for ( ii in 1:n.boot ) {
    samp <- exp(rnorm(m,0,2)) + 1
    samp.mean[ii] <- mean(samp)
    foo <- boot(samp,statistic=function(xx,index)mean(xx[index]),R=inner.boot)
    bias[ii] <- mean(foo$t[,1])-foo$t0
    vars[ii] <- var(foo$t[,1])
}

opar <- par(mfrow=c(1,2))
    plot(samp.mean,bias,xlab="Sample means",ylab="Bias",
        main="Bias against sample means",pch=19,log="x")
    abline(h=0)
    plot(samp.mean,vars,xlab="Sample means",ylab="Variance",
        main="Variance against sample means",pch=19,log="xy")
par(opar)

начальная диагностика

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

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

Что касается средств защиты, Canty et al. здесь обсуждаются преобразования, и на ум приходят логарифмы (например, начальная загрузка и построение доверительных интервалов не для среднего значения, а для среднего значения зарегистрированных данных), но я не мог заставить его работать.

Canty et al. Продолжайте обсуждать, как можно уменьшить как количество внутренних загрузчиков, так и оставшийся шум путем выборки и сглаживания важности, а также добавить доверительные полосы на сводные графики.

Это может быть забавный дипломный проект для умного студента. Я был бы признателен за любые указания, где я ошибся, а также любую другую литературу. И я позволю себе добавить diagnosticтег к этому вопросу.


13

μ^-μ
μ^T
мμ^-μσ^

Затем я подумал немного больше обо всей установке. Имеет ли всего 10 наблюдений и крайне искаженное распределение, тогда не является ли в принципе невозможным непараметрическая оценка среднего значения, не говоря уже о построении доверительных интервалов с правильным охватом?

е2+1знак равно8,39п(Икс2)знак равно0,84Икс~N(0,4)0,840,8410знак равно0,178, Таким образом, чуть менее чем в 18% случаев самое большое наблюдение меньше среднего. Чтобы получить покрытие, превышающее 0,82, нам нужно построить доверительный интервал для среднего значения, выходящего за пределы самого большого наблюдения. Мне трудно представить, как такая конструкция может быть (и оправдана) без предварительных предположений о том, что распределение крайне искажено. Но я приветствую любые предложения.


Я согласен. Я действительно хотел подумать об этом с точки зрения кого-то, кто получил один образец из этого дистрибутива. Откуда мне знать, что в этом случае небрежно использовать загрузчик? Единственное, о чем я могу думать, - это то, что я вполне мог взять логи, прежде чем приступить к анализу, но один из других ответчиков сказал, что это не очень помогает.
Камбала

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

6

Расчеты были правильными, я перепроверил с известным пакетом загрузки . Кроме того, я добавил BCa-интервал (от Efron), исправленную смещения версию интервала начальной загрузки:

for (i in 1:1000) {
  samp <- exp(rnorm(m, 0, 2)) + 1

  boot.out <- boot(samp, function(d, i) sum(d[i]) / m, R=999)
  ci <- boot.ci(boot.out, 0.95, type="all")

  ##tCI <- mean(samp) + c(1,-1)*qt(0.025,df=9)*sd(samp)/sqrt(10)
  tCI <- ci$normal[2:3]
      percCI <- ci$perc[4:5]
  bcaCI <- ci$bca[4:5]
      boottCI <- ci$student[4:5]

  if (true.mean > min(tCI) && true.mean < max(tCI)) tCI.total <- tCI.total + 1
  if (true.mean > min(percCI) && true.mean < max(percCI)) percCI.total <- percCI.total + 1 
  if (true.mean > min(bcaCI) && true.mean < max(bcaCI)) bcaCI.total <- bcaCI.total + 1
}

tCI.total/1000     # estimate of t interval coverage probability
0.53
percCI.total/1000  # estimate of percentile interval coverage probability
0.55
bcaCI.total/1000  # estimate of BCa interval coverage probability
0.61

Я предполагаю, что интервалы будут намного лучше, если исходный размер выборки будет больше 10, скажем, 20 или 50.

Кроме того, метод bootstrap-t обычно приводит к лучшим результатам для искаженной статистики. Однако для этого требуется вложенный цикл и, следовательно, в 20 раз больше вычислительного времени.

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


1
N<100

5

Меня это тоже смутило, и я потратил много времени на бумажные доверительные интервалы DiCiccio и Efron 1996 года, но особо ничего не показал.

Это фактически заставило меня меньше думать о начальной загрузке как о методе общего назначения. Раньше я думал об этом как о чем-то, что могло бы вытащить вас из варенья, когда вы действительно застряли. Но я узнал его грязный маленький секрет: доверительные интервалы начальной загрузки все так или иначе основаны на нормальности. Позвольте мне объяснить.

Икс~N(μ,σ2)
σ
Zзнак равноИкс-μσ~N(0,1)
μPr(-1,96Икс-μσ1,96)знак равно0,95

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

Таким образом, интервалы BCa (с поправкой на смещение) Эфрона используют преобразования, чтобы приблизиться к нормальности, а методы начальной загрузки полагаются на получающуюся t-статистику, которая является приблизительно центральной. Теперь бутстрап может оценить адские моменты, и вы всегда можете принять нормальность и использовать стандарт +/- 2 * SE. Но, учитывая всю работу, которая пошла на непараметрическую загрузку, она выглядит не совсем честно, не так ли?


2
Возможно, я что-то упустил, но тот факт, что самозагрузка связана с основными или близкими основными значениями, сама по себе не подразумевает никакой связи с нормальностью. Основные количества могут иметь все виды распределения в определенных обстоятельствах. Я также не вижу, как следует выделение курсивом в вашем втором последнем абзаце.
Glen_b

1
Как тогда следует утверждение, касающееся нормальности?
Glen_b

1
FΦ-1[F(Икс)]

2
F

2
Чтобы добавить к @Glen_b: преобразование в нормальное распределение должно существовать только для подтверждения правильности метода. Вам не нужно найти его, чтобы использовать метод. Кроме того, если вам не нравятся нормальные распределения, вы можете переписать все доказательство с другим симметричным непрерывным распределением. Использование нормальных распределений технически полезно, но не является строго обязательным, оно ничего не говорит об источнике данных или образце среднего значения.
Питер

0

Прочтите статью Тима Хестерберга в «Американском статистике» по адресу ,

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.