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?
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?
Respostas:
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=50
demonstrar 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.
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).
Wilcox, RR (2010). Fundamentos dos métodos estatísticos modernos: Melhorando substancialmente a potência e a precisão. Springer.
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.
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 n
ao 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 * N
e (1 - pv_est) * N
sã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ós temos
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).
"É 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. "
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.