Eu queria fazer uma demonstração de classe em que comparasse um intervalo t com um intervalo de autoinicialização e calculasse a probabilidade de cobertura de ambos. Como eu queria que os dados viessem de uma distribuição assimétrica, decidi gerá-los como exp(rnorm(10, 0, 2)) + 1
uma amostra do tamanho 10 de um lognormal alterado. Escrevi um script para desenhar 1000 amostras e, para cada amostra, calcular um intervalo t de 95% e um intervalo percentual de 95% de bootstrap com base em 1000 réplicas.
Quando executo o script, ambos os métodos fornecem intervalos muito semelhantes e ambos têm probabilidade de cobertura de 50 a 60%. Fiquei surpreso porque pensei que o intervalo de inicialização seria melhor.
Minha pergunta é, eu tenho
- cometeu um erro no código?
- cometeu um erro no cálculo dos intervalos?
- cometeu um erro ao esperar que o intervalo de inicialização tivesse melhores propriedades de cobertura?
Além disso, existe uma maneira de construir um IC mais confiável nessa situação?
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
fonte
Respostas:
Os diagnósticos e soluções de bootstrap de Canto, Davison, Hinkley & Ventura (2006) parecem ser um ponto de partida lógico. Eles discutem várias maneiras pelas quais o bootstrap pode ser quebrado e - mais importante aqui - oferecem diagnósticos e possíveis soluções:
Não vejo problema com 1, 2 e 4 nessa situação. Vejamos 3. Como observa @Ben Ogorek (embora eu concorde com @Glen_b que a discussão sobre normalidade pode ser um arenque vermelho), a validade do bootstrap depende da dinâmica da estatística em que estamos interessados.
Seção 4 em Canty et al. sugere reamostragem dentro de reamostragens para obter uma medida de viés e variação para a estimativa de parâmetro em cada reamostragem de autoinicialização . Aqui está o código para replicar as fórmulas da p. 15 do artigo:
Observe as escalas de log - sem logs, isso é ainda mais flagrante. Vemos bem como a variação da estimativa média da auto-inicialização aumenta com a média da amostra da auto-inicialização. Para mim, isso parece uma arma de fumo suficiente para atribuir a culpa à não-centralidade como culpado pela baixa cobertura do intervalo de confiança.
No entanto, felizmente, admito que é possível acompanhar de várias maneiras. Por exemplo, podemos analisar como se o intervalo de confiança de uma replicação de bootstrap específica inclui a média verdadeira depende da média da replicação específica.
Quanto aos remédios, Canty et al. discutir transformações e os logaritmos vêm à mente aqui (por exemplo, autoinicialização e construção de intervalos de confiança, não pela média, mas pela média dos dados registrados), mas eu realmente não consegui fazê-la funcionar.
Canty et al. continue discutindo como é possível reduzir o número de bootstraps internos e o ruído restante por amostragem e suavização de importância, além de adicionar faixas de confiança às plotagens de pivô.
Este pode ser um projeto de tese divertido para um aluno inteligente. Eu apreciaria qualquer indicação de onde errei, bem como de qualquer outra literatura. E tomarei a liberdade de adicionar a
diagnostic
tag a esta pergunta.fonte
Então pensei um pouco mais sobre toda a configuração. Com apenas 10 observações e uma distribuição extremamente distorcida, não é basicamente impossível estimar não parametricamente a média e muito menos construir intervalos de confiança com a cobertura correta?
fonte
Os cálculos estavam corretos, verifiquei com a bem conhecida inicialização do pacote . Além disso, adicionei o intervalo BCa (da Efron), uma versão corrigida do viés do intervalo de autoinicialização do percentil:
Presumo que os intervalos seriam muito melhores se o tamanho da amostra original for maior que 10, digamos 20 ou 50.
Além disso, o método bootstrap-t geralmente leva a melhores resultados para estatísticas distorcidas. No entanto, ele precisa de um loop aninhado e, portanto, mais de 20 vezes mais tempo computacional.
Para o teste de hipóteses, também é muito importante que as coberturas unilaterais sejam boas. Portanto, olhar apenas para as coberturas frente e verso muitas vezes pode ser enganador.
fonte
Eu também estava confuso sobre isso e passei muito tempo nos intervalos de confiança de Bootstrap de 1996 de DiCiccio e Efron , sem muito o que mostrar.
Na verdade, isso me levou a pensar menos no bootstrap como um método de uso geral. Eu costumava pensar nisso como algo que o tiraria de um engarrafamento quando você estava realmente preso. Mas eu aprendi seu pequeno segredo sujo: os intervalos de confiança de inicialização são todos baseados na normalidade de uma maneira ou de outra. Permita-me explicar.
O bootstrap fornece uma estimativa da distribuição de amostragem do estimador, que é tudo o que você poderia esperar, certo? Mas lembre-se de que o elo clássico entre a distribuição da amostra e o intervalo de confiança se baseia em encontrar uma quantidade essencial . Para quem está enferrujado, considere o caso em que
Quando você pensa sobre o que justifica que os percentis da distribuição normal estejam relacionados a intervalos de confiança, ela é inteiramente baseada nessa quantidade dinâmica conveniente. Para uma distribuição arbitrária, não existe um vínculo teórico entre os percentis da distribuição de amostragem e os intervalos de confiança , e tomar proporções brutas da distribuição de amostragem de autoinicialização não é suficiente.
Portanto, os intervalos BCa (corrigidos pela polarização) do Efron usam transformações para chegar à normalidade aproximada e os métodos de bootstrap-t dependem das estatísticas t resultantes serem aproximadamente essenciais. Agora, o bootstrap pode estimar o máximo possível de momentos, e você sempre pode assumir a normalidade e usar o padrão +/- 2 * SE. Mas, considerando todo o trabalho que foi feito não paramétrico com o bootstrap, isso não parece muito justo, não é?
fonte
Confira o artigo de Tim Hesterberg no The American Statistician em http://www.timhesterberg.net/bootstrap#TOC-What-Teachers-Should-Know-about-the-Bootstrap:-Resampling-in-the-Undergrad-Statistics-Curriculum .
Essencialmente, o intervalo de percentil de autoinicialização não tem uma forte probabilidade de cobertura para dados distorcidos, a menos que n seja grande.
fonte