Regra geral para o número de amostras de bootstrap


40

Gostaria de saber se alguém conhece alguma regra geral relativa ao número de amostras de bootstrap que se deve usar, com base nas características dos dados (número de observações, etc.) e / ou nas variáveis ​​incluídas?


2
Também fiquei curioso sobre isso, pois estou planejando uma análise de simulação. Existe alguma razão para não buscar tantas amostras quanto possível / praticável? Além de preocupações ambientais (por exemplo, gastos com eletricidade) e preocupações pessoais (por exemplo, exceder os limites críticos de nerdidade sustentável, fazer a transição para um puro nerd ), não estou vendo nenhuma contra-indicação nas respostas até agora (+ 1s em todo o BTW) .. .
Nick Stauner

4
@ Nick Eu concordo amplamente - eu geralmente uso o máximo que posso esperar (geralmente chegando a um milhão, embora nem sempre), mas geralmente considero 1000 como um limite inferior bastante claro. Na primeira tentativa, geralmente faço 1K para obter informações sobre o tempo e depois calculo quantos múltiplos estou preparado para aguardar a resposta real.
Glen_b -Reinstala Monica

1
Se a parte demorada do processo está gerando simulações, e as observações delas podem ser agregadas facilmente (como costumam ser com um pouco de codificação extra), parece que há pouca desculpa para não errar ao lado da superação. Eu acho que isso pode se tornar fora de controle com o tempo, se todas as pessoas fizerem isso e esquecerem o porquê, mas como provavelmente nunca será esse o caso ... Ter um limiar mínimo que as pessoas buscam desnecessariamente parece um pouco contraproducente, se a alternativa - apenas procurar mais até que não haja realmente espaço para dúvidas - é assim desencorajado implicitamente.
22413 Nick Stauner

Eu apenas inicializo até ver uma convergência clara. Se você quiser aliviar as preocupações dos revisores, incluiria apenas uma visualização das iterações de autoinicialização versus estimativa resultante para ilustrar a convergência.
RTbecard

North et al. 2002 fornece algumas diretrizes que achei úteis DOI: 10.1086 / 341527 [ ncbi.nlm.nih.gov/pmc/articles/PMC379178/pdf/AJHGv71p439.pdf]
Michael

Respostas:


33

Minha experiência é que estatísticos não levarão a sério simulações ou bootstraps a menos que o número de iterações exceda 1.000. O erro MC é um grande problema pouco apreciado. Por exemplo, este documento costumava Niter=50demonstrar o LASSO como uma ferramenta de seleção de recursos. Minha tese levaria muito menos tempo para ser executada se 50 iterações fossem consideradas aceitáveis! Eu recomendo que você sempre inspecione o histograma das amostras de inicialização . Sua distribuição deve parecer bastante regular. Eu não acho que qualquer regra numérica seja suficiente, e seria um exagero executar, digamos, um bootstrap duplo para avaliar o erro do MC.

Suponha que você esteja estimando a média a partir de uma razão de duas variáveis ​​aleatórias normais padrão independentes, algum estatístico pode recomendar inicializá-la, pois a integral é difícil de calcular. Se você tem uma teoria básica das probabilidades, reconheceria que essa razão forma uma variável aleatória Cauchy com uma média inexistente. Qualquer outra distribuição leptocúrtica exigiria várias iterações de inicialização adicionais em comparação com uma contraparte de densidade gaussiana mais regular. Nesse caso, as amostras de inicialização de 1000, 100000 ou 10000000 seriam insuficientes para estimar o que não existe. O histograma desses bootstraps continuaria parecendo irregular e errado.

Existem mais algumas rugas nessa história. Em particular, o bootstrap só é realmente justificado quando existem momentos do modelo de probabilidade de geração de dados. Isso ocorre porque você está usando a função de distribuição empírica como um homem de palha para o modelo de probabilidade real e assumindo que eles tenham a mesma média, desvio padrão, assimetria, percentil 99, etc.

Em suma, uma estimativa de bootstrap de uma estatística e seu erro padrão só é justificada quando o histograma das amostras com bootstrap parece regular além da dúvida razoável e quando o bootstrap é justificado.


3
Eu sempre vi grandes amostras de bootstrap também. No entanto, em "Uma Introdução ao Bootstrap" (1994) de Efron e Tibshirani, eles relatam que você pode obter uma estimativa decente com B = 25 e B = 200 se aproxima de um coeficiente de variação semelhante ao infinito. Eles fornecem uma tabela dos coeficientes de variação para vários B (p. 52-53, ambas as páginas estão disponíveis no google books).
jeramy Townsley

19

editar:

Se você é sério sobre ter amostras suficientes, o que você deve fazer é executar o procedimento de inicialização, o que você espera, amostras suficientes várias vezes e ver o quanto as estimativas de inicialização "pulam". Se as estimativas repetidas não diferirem muito (onde "muito" depende da sua situação específica), você provavelmente está bem. Obviamente, você pode estimar quanto as estimativas repetidas saltam calculando o SD da amostra ou similar.

Se você deseja uma referência e uma regra prática, Wilcox (2010) escreve "599 é recomendado para uso geral". Mas isso deve ser considerado apenas uma diretriz ou talvez o número mínimo de amostras que você deve considerar. Se você deseja estar do lado seguro, não há razão (se for computacionalmente viável) por que você não deve gerar uma ordem de magnitude em mais amostras.

Em uma observação pessoal, costumo executar 10.000 amostras ao estimar "por mim" e 100.000 amostras ao estimar algo transmitido a outras pessoas (mas isso é rápido, pois trabalho com pequenos conjuntos de dados).

Referência

Wilcox, RR (2010). Fundamentos dos métodos estatísticos modernos: Melhorando substancialmente a potência e a precisão. Springer.


17
599? Quinhentos e noventa e nove? O que na Terra poderia ser um argumento a favor desse número?
ameba diz Reinstate Monica

Pergunte a Wilcox (2010), eu acho ... eu também estou curioso; talvez Rasmus nos agracie com um pouco mais de contexto em torno da citação?
Nick Stauner

não está claro para mim de onde vem o 599 ... acrescentou alguns conselhos melhores para a resposta ...
Rasmus Bååth

8
@amoeba Você pode ler a "passagem" por si mesmo . Este é um exemplo de redação excepcionalmente obscura nas estatísticas e, em particular, é aplicada apenas à inferência na média aparada com estimativas de erro padrão Windsorized .
AdamO

11

Existem algumas situações em que você pode dizer antecipadamente ou após algumas iterações que um grande número de iterações de autoinicialização não ajudará no final.

  • Esperamos que você tenha uma idéia prévia da ordem da magnitude da precisão necessária para uma interpretação significativa dos resultados. Caso contrário, talvez seja hora de aprender um pouco mais sobre o problema por trás da análise de dados. De qualquer forma, após algumas iterações, você poderá estimar quantas mais iterações são necessárias.

  • Obviamente, se você tem muito poucos casos (digamos, o comitê de ética permitiu 5 ratos), não precisa pensar em dezenas de milhares de iterações. Talvez seja melhor olhar para todos os empates possíveis. E talvez seja ainda melhor parar e pensar em como qualquer tipo de conclusão pode (não) ser baseada em 5 ratos.

  • Pense na total incerteza dos resultados. No meu campo, a parte da incerteza que você pode medir e reduzir com o bootstrapping pode ser apenas uma parte menor da incerteza total (por exemplo, devido a restrições no projeto dos experimentos, fontes importantes de variação geralmente não são cobertas pelo experimento - digamos , começamos com experimentos em linhas celulares, embora o objetivo final seja, naturalmente, o paciente). Nessa situação, não faz sentido executar muitas iterações - de qualquer maneira, não ajudará no resultado final e, além disso, pode induzir uma falsa sensação de certeza.

  • Um problema relacionado (embora não exatamente o mesmo) ocorre durante a validação cruzada ou fora do bootstrap dos modelos: você tem duas fontes de incerteza: a finita (e, no meu caso, geralmente um número muito pequeno de casos independentes) e a (in) estabilidade dos modelos de inicialização. Dependendo da configuração da validação de reamostragem, você pode ter apenas um deles contribuindo para a estimativa de reamostragem. Nesse caso, você pode usar uma estimativa da outra fonte de variação para avaliar qual certeza você deve obter com a reamostragem e quando ela para para ajudar no resultado final.

  • Finalmente, enquanto até agora meus pensamentos eram sobre como fazer menos iterações, aqui está uma consideração prática a favor de fazer mais :
    Na prática, meu trabalho não é feito depois que o bootstrap é executado. A saída do bootstrap precisa ser agregada em estatísticas e / ou figuras resumidas. Os resultados precisam ser interpretados como artigo ou relatório a ser escrito. Muito disso já pode ser feito com resultados preliminares de algumas iterações do bootstrap (se os resultados forem claros, eles já serão exibidos após algumas iterações; se forem limítrofes, permanecerão limítrofes). Portanto, costumo configurar o bootstrap de uma maneira que me permita obter resultados preliminares para continuar trabalhando enquanto o computador calcula. Dessa forma, não me incomoda muito se a inicialização demorar mais alguns dias.


10

TLDR.10.000 parece ser uma boa regra geral, por exemplo, os valores de p deste grande ou maior número de amostras de bootstrap estarão dentro de 0,01 do "verdadeiro valor de p" para o método em cerca de 95% das vezes.

Eu considero apenas a abordagem de bootstrap de percentil abaixo, que é o método mais comumente usado (que eu saiba), mas também possui falhas e não deve ser usada com amostras pequenas .

Reformulando um pouco. Pode ser útil calcular a incerteza associada aos resultados do bootstrap para ter uma idéia da incerteza resultante do uso do bootstrap. Observe que isso não trata de possíveis fraquezas no bootstrap (por exemplo, consulte o link acima), mas ajuda a avaliar se há amostras "suficientes" de bootstrap em um aplicativo específico. Geralmente, o erro relacionado ao tamanho da amostra do bootstrapn chega a zero e nao infinito, e a pergunta é: qual deve ser o tamanhon ser o tamanho do erro associado ao tamanho pequeno da amostra de bootstrap?

Incerteza de inicialização em um valor-p. A imprecisão em um valor p estimado, digamos, pv_est é o valor p estimado no bootstrap, é sobre 2 x sqrt(pv_est * (1 - pv_est) / N), onde Né o número de amostras de bootstrap. Isso é válido se pv_est * Ne (1 - pv_est) * Nsão ambos>= 10 . Se um deles for menor que 10, será menos preciso, mas aproximadamente no mesmo bairro que essa estimativa.

Erro de autoinicialização em um intervalo de confiança. Se estiver usando um intervalo de confiança de 95%, observe como a variabilidade dos quantis da distribuição de autoinicialização se aproxima de 2,5% e 97,5%, verificando os percentis em (para o percentil 2,5) 2.5 +/- 2 * 100 * sqrt(0.025 * 0.975 / n). Essa fórmula comunica a incerteza da extremidade inferior do intervalo de confiança de 95% com base no número de amostras de autoinicialização coletadas. Uma exploração semelhante deve ser feita na extremidade superior. Se essa estimativa for um pouco volátil, colha mais amostras de bootstrap!


n

7

599

αB

α(1+B)=inteiro

α1=0,1α2=0,05

Nós temos

B1=inteiro0,1-1,B2=inteiro0,05-1

599

Tirei as seguintes informações de Davidson, R., & MacKinnon, JG (2000). Testes de bootstrap: quantas bootstraps? Comentários Econometric, 19 (1), 55-68. (a versão do documento de trabalho pode ser baixada gratuitamente).

0,053990.011499

B

"É fácil entender por que o procedimento de pré-teste funciona bem. Quando a hipótese nula é verdadeira, B pode ser pequeno com segurança, porque não estamos preocupados com o poder. De maneira semelhante, quando o nulo é falso e o poder do teste é extremamente alto, B não precisa ser grande, porque a perda de energia não é um problema sério. No entanto, quando o nulo é falso e a potência de teste é moderadamente alta, B precisa ser grande para evitar perda de energia. O procedimento de pré-teste tende a B pequeno quando puder ser pequeno e grande com segurança quando precisar ser grande. "

B


4

A maioria dos aplicativos de inicialização que eu já vi relatou cerca de 2.000 a 100k iterações. Na prática moderna, com software adequado, os principais problemas do bootstrap são os estatísticos, mais do que tempo e capacidade de computação. Para usuários iniciantes com Excel, era possível executar apenas várias centenas antes de exigir o uso de programação avançada do Visual Basic. No entanto, o R é muito mais simples de usar e torna fácil e direta a geração de milhares de valores de inicialização.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.