Je voulais faire une démonstration de classe où je compare un intervalle t à un intervalle de bootstrap et calcule la probabilité de couverture des deux. Je voulais que les données proviennent d'une distribution asymétrique, j'ai donc choisi de générer les données sous la forme d' exp(rnorm(10, 0, 2)) + 1
un échantillon de taille 10 à partir d'un lognormal décalé. J'ai écrit un script pour dessiner 1000 échantillons et, pour chaque échantillon, calculer à la fois un intervalle t à 95% et un intervalle de centile de bootstrap à 95% sur la base de 1000 répétitions.
Lorsque j'exécute le script, les deux méthodes donnent des intervalles très similaires et les deux ont une probabilité de couverture de 50 à 60%. J'ai été surpris car je pensais que l'intervalle de bootstrap serait meilleur.
Ma question est, ai-je
- fait une erreur dans le code?
- fait une erreur dans le calcul des intervalles?
- fait une erreur en s'attendant à ce que l'intervalle de bootstrap ait de meilleures propriétés de couverture?
De plus, existe-t-il un moyen de construire un CI plus fiable dans cette situation?
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
la source
Réponses:
Les diagnostics bootstrap et les remèdes de Canto, Davison, Hinkley & Ventura (2006) semblent être un point de départ logique. Ils discutent de plusieurs façons dont le bootstrap peut se décomposer et - plus important ici - offrent des diagnostics et des remèdes possibles:
Je ne vois pas de problème avec 1, 2 et 4 dans cette situation. Regardons 3. Comme le note @Ben Ogorek (bien que je sois d'accord avec @Glen_b que la discussion sur la normalité peut être un hareng rouge), la validité du bootstrap dépend de la pivotalité de la statistique qui nous intéresse.
La section 4 de Canty et al. suggère un rééchantillonnage dans les rééchantillonnages pour obtenir une mesure du biais et de la variance pour l'estimation des paramètres dans chaque rééchantillonnage bootstrap . Voici le code pour répliquer les formules de p. 15 de l'article:
Notez les échelles de journal - sans journaux, c'est encore plus flagrant. Nous voyons bien comment la variance de l'estimation moyenne du bootstrap augmente avec la moyenne de l'échantillon du bootstrap. Pour moi, cela ressemble à une arme à feu pour attacher la faute à la non-totalité en tant que coupable de la faible couverture de l'intervalle de confiance.
Cependant, j'admettrai volontiers que l'on puisse faire un suivi de nombreuses façons. Par exemple, nous pourrions voir comment la question de savoir si l'intervalle de confiance d'une réplique bootstrap spécifique inclut la vraie moyenne dépend de la moyenne de la réplique particulière.
Quant aux recours, Canty et al. discuter des transformations et des logarithmes me viennent à l'esprit ici (par exemple, bootstrap et construire des intervalles de confiance non pas pour la moyenne, mais pour la moyenne des données enregistrées), mais je ne pouvais pas vraiment le faire fonctionner.
Canty et al. continuer de discuter de la façon dont on peut réduire à la fois le nombre de bootstraps internes et le bruit restant en échantillonnant et en lissant l'importance ainsi qu'en ajoutant des bandes de confiance aux graphiques croisés dynamiques.
Cela pourrait être un projet de thèse amusant pour un étudiant intelligent. J'apprécierais tout indice sur lequel je me suis trompé, ainsi que sur toute autre littérature. Et je prendrai la liberté d'ajouter le
diagnostic
tag à cette question.la source
Ensuite, j'ai réfléchi un peu plus à l'ensemble de la configuration. Avec seulement 10 observations et une distribution extrêmement asymétrique, n'est-il donc pas fondamentalement impossible d' estimer de façon non paramétrique la moyenne et encore moins de construire des intervalles de confiance avec la bonne couverture?
la source
Les calculs étaient bons, j'ai recoupé avec le démarrage du paquet bien connu . De plus, j'ai ajouté l'intervalle BCa (par Efron), une version à biais corrigé de l'intervalle d'amorçage centile:
Je suppose que les intervalles seraient bien meilleurs si la taille de l'échantillon d'origine était supérieure à 10, disons 20 ou 50.
De plus, la méthode bootstrap-t conduit généralement à de meilleurs résultats pour les statistiques asymétriques. Cependant, il a besoin d'une boucle imbriquée et donc de plus de 20 fois plus de temps de calcul.
Pour les tests d'hypothèse, il est également très important que les couvertures unilatérales soient bonnes. Donc, regarder uniquement les couvertures recto verso peut souvent être trompeur.
la source
J'étais confus à ce sujet aussi, et j'ai passé beaucoup de temps sur les Intervalles de confiance du papier DiCiccio et Efron 1996 , sans grand chose à montrer.
Cela m'a en fait amené à penser moins au bootstrap en tant que méthode à usage général. J'avais l'habitude de le voir comme quelque chose qui vous sortirait d'un bourrage quand vous étiez vraiment coincé. Mais j'ai appris son sale petit secret: les intervalles de confiance du bootstrap sont tous basés sur la normalité d'une manière ou d'une autre. Permettez-moi de vous expliquer.
Lorsque vous pensez à ce qui justifie que les centiles de la distribution normale soient liés aux intervalles de confiance, il est entièrement basé sur cette quantité pivot pratique. Pour une distribution arbitraire, il n'y a pas de lien théorique entre les centiles de la distribution d'échantillonnage et les intervalles de confiance , et prendre des proportions brutes de la distribution d'échantillonnage bootstrap ne le coupe pas.
Ainsi, les intervalles BCa (corrigés du biais) d'Efron utilisent des transformations pour arriver à la normalité approximative et les méthodes bootstrap-t reposent sur les statistiques t résultantes qui sont approximativement pivots. Maintenant, le bootstrap peut estimer l'enfer hors des moments, et vous pouvez toujours assumer la normalité et utiliser le standard +/- 2 * SE. Mais compte tenu de tout le travail qui a été effectué pour devenir non paramétrique avec le bootstrap, cela ne semble pas tout à fait juste, n'est-ce pas?
la source
Consultez l'article de Tim Hesterberg dans The American Statistician à http://www.timhesterberg.net/bootstrap#TOC-What-Teachers-Should-Know-about-the-Bootstrap:-Resampling-in-the-Undergraduate-Statistics-Curriculum .
Essentiellement, l'intervalle de centile d'amorçage n'a pas de forte probabilité de couverture pour les données asymétriques, sauf si n est grand.
la source