Règle de base pour le nombre d'échantillons bootstrap

40

Je me demande si quelqu'un connaît des règles générales concernant le nombre d'échantillons bootstrap à utiliser, en fonction des caractéristiques des données (nombre d'observations, etc.) et / ou des variables incluses?

Hoyem
la source
2
Je suis également curieux à ce sujet, car je prépare une analyse de simulation. Y a-t-il une raison de ne pas prélever autant d'échantillons que possible / réalisable? Hormis les préoccupations environnementales (par exemple, les dépenses en électricité) et les préoccupations personnelles (par exemple, dépasser les seuils critiques pour une sécurité durable, passer au geekdom pur ), je ne vois aucune contre-indication dans les réponses à ce jour (+1 autour de BTW). .
Nick Stauner
4
@ Nick, je suis largement d'accord. J'utilise généralement tout ce que je peux me permettre d'attendre (généralement un million, mais pas toujours), mais je considère généralement que 1000 est une limite assez claire. Dans un premier temps, je fais souvent 1K pour obtenir des informations de minutage, puis je calcule combien de multiples je suis prêt à attendre pour obtenir la réponse réelle.
Glen_b -Reinstate Monica
1
Si la partie fastidieuse du processus génère des simulations et que les observations qui en découlent peuvent être agrégées facilement (comme souvent avec un peu de codage supplémentaire), il semble y avoir peu d’excuse pour ne pas pécher par excès. J'imagine que cela pourrait dégénérer avec le temps si tout le monde agissait de la sorte en oubliant pourquoi, mais puisque ce ne sera probablement jamais le cas ... Avoir un seuil minimal que les gens visent inutilement semble un peu contre-productif, si l'alternative ... aller plus loin jusqu'à ce qu'il n'y ait plus vraiment de place pour le doute - est ainsi découragé implicitement.
Nick Stauner
Je viens d'amorcer jusqu'à ce que je vois une convergence claire. Si vous voulez apaiser les inquiétudes des relecteurs, je voudrais simplement inclure une visualisation des itérations bootstrap par rapport à l'estimation résultante pour illustrer la convergence.
RTbecard le
North et al. 2002 fournit certaines directives que j'ai trouvées utiles. DOI: 10.1086 / 341527 [ ncbi.nlm.nih.gov/pmc/articles/PMC379178/pdf/AJHGv71p439.pdf]
Michael

Réponses:

33

D'après mon expérience, les statisticiens ne prendront pas les simulations ou les démarches au sérieux, à moins que le nombre d'itérations ne dépasse 1 000. L’erreur MC est un gros problème qui est un peu sous-estimé. Par exemple, cet article utilisé Niter=50pour démontrer LASSO comme outil de sélection de fonction. Ma thèse aurait pris beaucoup moins de temps si 50 itérations avaient été jugées acceptables! Je vous recommande de toujours inspecter l'histogramme des échantillons bootstrap . Leur distribution devrait paraître assez régulière. Je ne pense pas qu'une règle numérique simple suffira, et il serait excessif d'exécuter, par exemple, un double bootstrap pour évaluer l'erreur MC.

Supposons que vous estimiez la moyenne à partir d'un rapport de deux variables aléatoires normales indépendantes indépendantes, certains statisticiens pourraient recommander de l'amorcer, car l'intégrale est difficile à calculer. Si vous avez la théorie des probabilités de base à votre actif, vous reconnaîtrez que ce rapport forme une variable aléatoire de Cauchy avec une moyenne inexistante. Toute autre distribution leptokurtique nécessiterait plusieurs itérations bootstrap supplémentaires par rapport à une contrepartie de densité gaussienne plus régulière. Dans ce cas, 1 000, 100 000 ou 10 000 000 échantillons de bootstrap seraient insuffisants pour estimer ce qui n'existe pas. L'histogramme de ces bootstraps continuerait à paraître irrégulier et faux.

Il y a encore quelques rides dans cette histoire. En particulier, le bootstrap n'est réellement justifié que lorsque les moments du modèle de probabilité de génération de données existent. En effet, vous utilisez la fonction de distribution empirique en tant qu'homme de paille pour le modèle de probabilité réelle, et supposez qu'elle a la même moyenne, l'écart type, l'asymétrie, le 99e centile, etc.

En résumé, l'estimation statistique d'une statistique par bootstrap et son erreur-type ne sont justifiées que lorsque l'histogramme des échantillons bootstrap apparaît régulièrement au-delà de tout doute raisonnable et que cette dernière est justifiée.

AdamO
la source
3
J'ai toujours vu de grands échantillons de bootstrap aussi. Cependant, dans "An Introduction to the Bootstrap" (1994) d'Efron et Tibshirani, ils indiquent que vous pouvez obtenir une estimation décente avec B = 25 et B = 200, si vous approchez d'un coefficient de variation similaire à l'infini. Ils fournissent un tableau des coefficients de variation pour divers B (p. 52-53, les deux pages sont disponibles sur Google Books).
Jeramy Townsley
19

modifier:

Si vous voulez sérieusement avoir suffisamment d’échantillons, vous devez exécuter votre procédure de bootstrap avec ce que vous espérez être assez d’échantillons un certain nombre de fois et voir à quel point les estimations de bootstrap "sautent". Si les estimations répétées ne diffèrent pas beaucoup (où "beaucoup" dépend de votre situation spécifique), vous êtes très probablement bien. Bien sûr, vous pouvez estimer l’importance des estimations répétées en calculant l’échantillon SD ou un résultat similaire.

Si vous voulez une référence et une règle générale, Wilcox (2010) écrit: "599 est recommandé pour une utilisation générale". Mais cela ne devrait être considéré que comme une recommandation ou peut-être le nombre minimum d'échantillons que vous devriez considérer. Si vous voulez être du bon côté, il n'y a aucune raison (si cela est réalisable sur le plan du calcul) de ne pas générer un ordre de grandeur supplémentaire d'échantillons.

Sur une note personnelle, j'ai tendance à analyser 10 000 échantillons lors de l'estimation "pour moi-même" et 100 000 échantillons lors de l'estimation d'un élément transmis à d'autres (mais cela est rapide car je travaille avec de petits ensembles de données).

Référence

Wilcox, RR (2010). Principes fondamentaux des méthodes statistiques modernes: Amélioration substantielle de la puissance et de la précision. Springer.

Rasmus Bååth
la source
17
599? Cinq cent quatre vingt dix neuf? Qu'est-ce qui pourrait être un argument en faveur de ce nombre?
amibe dit de réintégrer Monica
Demandez à Wilcox (2010), je suppose ... je suis curieux aussi; peut-être que Rasmus nous offrirait un peu plus de contexte autour de la citation?
Nick Stauner
On ne sait pas trop d'où vient 599 ... ajouté de meilleurs conseils à la réponse ...
Rasmus Bååth
8
@ amoeba Vous pouvez lire le "passage" par vous-même . Ceci est un exemple d'écriture exceptionnellement peu claire dans les statistiques, et en particulier s'applique uniquement à l'inférence sur la moyenne ajustée avec des estimations d' erreur standard sous Windsor .
AdamO
11

Dans certaines situations, vous pouvez dire, soit à l’avance, soit après quelques itérations, qu’un très grand nombre d’itérations par bootstrap n’aidera pas.

  • J'espère que vous avez une idée préalable de l'ordre de grandeur de la précision nécessaire pour une interprétation significative des résultats. Si vous ne le faites peut-être pas, il est temps d'en apprendre un peu plus sur le problème qui se cache derrière l'analyse des données. Quoi qu'il en soit, après quelques itérations, vous pourrez peut-être estimer le nombre d'itérations supplémentaires nécessaires.

  • Évidemment, si vous avez très peu de cas (par exemple, le comité d'éthique autorise 5 rats), vous n'avez pas besoin de penser à des dizaines de milliers d'itérations. Peut-être serait-il préférable de regarder tous les tirages possibles. Et il serait peut-être encore mieux de s'arrêter et de penser à quel point toute conclusion peut (ne pas) être basée sur 5 rats.

  • Pensez à l'incertitude totale des résultats. Dans mon domaine, la partie de l’incertitude que vous pouvez mesurer et réduire en procédant par bootstrap n’est peut-être qu’une partie mineure de l’incertitude totale (par exemple, en raison de restrictions dans la conception des expériences, des sources importantes de variation ne sont souvent pas couvertes par l’expérience - par exemple , nous commençons par des expériences sur des lignées cellulaires bien que l’objectif final soit bien entendu celui des patients). Dans cette situation, il n'est pas logique d'exécuter trop d'itérations - cela ne contribuera en aucun cas au résultat final et, en outre, cela pourrait induire un faux sentiment de certitude.

  • Un problème connexe (bien que pas tout à fait identique) se produit lors de la validation hors-bootstrap ou croisée de modèles: vous avez deux sources d'incertitude: le nombre fini (et dans mon cas généralement un très petit nombre de cas indépendants) et le (in) stabilité des modèles bootstrapped. Selon la configuration que vous avez choisie pour la validation du rééchantillonnage, il est possible qu’un seul d’entre eux contribue à l’estimation du rééchantillonnage. Dans ce cas, vous pouvez utiliser une estimation de l'autre source de variance pour juger de la certitude à obtenir avec le rééchantillonnage et de la date à laquelle elle s'arrête pour améliorer le résultat final.

  • Enfin, alors que je pensais jusqu'à présent à la réduction du nombre d' itérations, voici une considération pratique en faveur de la réalisation de tâches supplémentaires :
    dans la pratique, mon travail n'est pas terminé après l'exécution du bootstrap. La sortie du bootstrap doit être agrégée dans des statistiques et / ou des chiffres résumés. Les résultats doivent être interprétés comme le document ou le rapport à rédiger. Une bonne partie de celles-ci peut déjà être réalisée avec les résultats préliminaires de quelques itérations du bootstrap (si les résultats sont clairs, ils apparaissent déjà après quelques itérations, s'ils sont à la limite, ils resteront à la limite). Donc, je configure souvent le démarrage d’une manière qui me permet d’obtenir des résultats préliminaires pour pouvoir continuer à travailler pendant que l’ordinateur calcule. De cette façon, cela ne me dérange pas beaucoup si le démarrage prend encore quelques jours.

cbeleites soutient Monica
la source
10

TLDR. 10 000 semble être une bonne règle empirique, par exemple, les valeurs p de ce grand ou plus grand échantillon bootstrap seront à moins de 0,01 de la "valeur p réelle" pour la méthode environ 95% du temps.

Je ne considère que l'approche du centile bootstrap ci-dessous, qui est la méthode la plus couramment utilisée (à ma connaissance) mais présente également des faiblesses et ne devrait pas être utilisée avec de petits échantillons .

Recadrer légèrement. Il peut être utile de calculer l’incertitude associée aux résultats du bootstrap pour avoir une idée de l’incertitude résultant de l’utilisation du bootstrap. Notez que cela ne traite pas des faiblesses possibles dans le bootstrap (par exemple, voir le lien ci-dessus), mais cela aide à évaluer s'il y a "suffisamment" d'échantillons bootstrap dans une application particulière. Généralement, l'erreur liée à la taille de l'échantillon bootstrap n va à zéro comme nà l'infini, et la question posée est la suivante: quelle doit nêtre la taille de l'erreur associée à la petite taille de l'échantillon bootstrap?

Incertitude bootstrap dans une valeur p. L'imprécision dans une valeur p estimée, par exemple, pv_est est la valeur p estimée à partir du bootstrap, est d'environ 2 x sqrt(pv_est * (1 - pv_est) / N), où Nest le nombre d'échantillons bootstrap. Ceci est valable si pv_est * Net (1 - pv_est) * Nsont les deux >= 10. Si l'une de ces valeurs est inférieure à 10, alors elle est moins précise mais très approximativement dans le même voisinage que cette estimation.

Erreur d'amorçage dans un intervalle de confiance. Si vous utilisez un intervalle de confiance de 95%, examinez la variabilité des quantiles de la distribution bootstrap autour de 2,5% et 97,5% en vérifiant les centiles à (pour le 2,5e centile) 2.5 +/- 2 * 100 * sqrt(0.025 * 0.975 / n). Cette formule communique l'incertitude de l'extrémité inférieure de l'intervalle de confiance de 95% en fonction du nombre d'échantillons bootstrap pris. Une exploration similaire devrait être faite à l'extrémité supérieure. Si cette estimation est quelque peu volatile, assurez-vous de prélever davantage d'échantillons bootstrap!

OpenIntro
la source
Choisissez n'importe lequel net toute valeur multiplicative (2 fois, 10 fois?), je peux vous donner un modèle de probabilité pour lequel le maximum de vraisemblance a cette valeur comme efficacité relative par rapport au bootstrap.
AdamO
7

Je commence par répondre à quelque chose soulevé dans une autre réponse: pourquoi un nombre aussi étrange que "599"(nombre d'échantillons bootstrap)?

Ceci s’applique également aux tests de Monte Carlo (auquel bootstrapping est équivalent lorsque la statistique sous-jacente est pivot ), et provient de ce qui suit: si le test doit être exact , alors, siα est le niveau de signification souhaité, et B est le nombre d'échantillons, la relation suivante doit être vérifiée:

α(1+B)=entier

Considérons maintenant les niveaux de signification typiques α1=0,1 et α2=0,05

On a

B1=entier0,1-1,B2=entier0,05-1

Ce "moins un" est ce qui conduit aux nombres proposés comme "599", afin d'assurer un test exact.

J'ai pris les informations suivantes de Davidson, R. et MacKinnon, JG (2000). Tests d'amorçage: combien d'amorces?. Revues économétriques, 19 (1), 55-68. (la version papier est téléchargeable gratuitement).

En ce qui concerne la règle empirique, les auteurs examinent le cas de l’amorçage des valeurs p et suggèrent que, pour les tests au début 0,05 le nombre minimum d'échantillons est d'environ 400 (donc 399) alors que pour un test à la 0,01 niveau il est 1500 donc (1499).

Ils proposent également une procédure de pré-test pour déterminer Bde manière endogène. Après avoir simulé leur procédure, ils concluent:

"Il est facile de comprendre pourquoi la procédure de test préliminaire fonctionne bien. Lorsque l'hypothèse nulle est vraie, B peut sans risque être petit, car nous ne sommes pas concernés par le pouvoir. De même, lorsque le zéro est faux et que la puissance de test est extrêmement élevée, B n'a pas besoin d'être volumineux, car la perte de puissance n'est pas un problème grave. Toutefois, lorsque la valeur null est fausse et que la puissance de test est modérément élevée, B doit être volumineux pour éviter une perte de puissance. B petit quand il peut être sans danger petit et grand quand il doit être grand. "

À la fin du document, ils le comparent également à une autre procédure proposée pour déterminer B et ils trouvent que le leur fonctionne mieux.

Alecos Papadopoulos
la source
4

La plupart des applications d'amorçage que j'ai vues rapportaient environ 2 000 à 100 000 itérations. Dans la pratique moderne, avec un logiciel adéquat, les problèmes essentiels du bootstrap sont les problèmes statistiques, plus encore que le temps et la capacité de calcul. Pour les utilisateurs novices disposant d’Excel, il est possible d’en exécuter seulement plusieurs centaines avant d’avoir besoin de la programmation avancée Visual Basic. Cependant, R est beaucoup plus simple à utiliser et rend la génération de milliers de valeurs initialisées facile et simple.

Germaniawerks
la source