Il existe de nombreuses façons de calculer les CI d'amorçage et les valeurs de p. Le problème principal est qu'il est impossible pour le bootstrap de générer des données sous une hypothèse nulle. Le test de permutation est une alternative viable basée sur le rééchantillonnage. Pour utiliser un bootstrap approprié, vous devez faire quelques hypothèses sur la distribution d'échantillonnage de la statistique de test.
β∗0= β^- β^∗β∗0= β^∗- β^
bootstrap normal
Une approche est un bootstrap normal où vous prenez la moyenne et l'écart-type de la distribution de bootstrap, calculez la distribution d'échantillonnage sous la valeur nulle en déplaçant la distribution et en utilisant les centiles normaux de la distribution nulle au point de l'estimation dans l'échantillon de bootstrap d'origine . C'est une approche raisonnable lorsque la distribution bootstrap est normale, une inspection visuelle suffit généralement ici. Les résultats utilisant cette approche sont généralement très proches d'une estimation d'erreur robuste ou en sandwich qui est robuste contre les hypothèses d'hétéroscédasticité et / ou de variance d'échantillon fini. L'hypothèse d'une statistique de test normale est une condition plus forte des hypothèses du prochain test de bootstrap dont je vais discuter.
bootstrap percentile
F∗02 × min ( F∗0( β^) , 1 - F∗0( β^) )
Bootstrap étudiant
p
Exemple de programmation
À titre d'exemple, je vais utiliser les city
données du package de démarrage. Les intervalles de confiance du bootstrap sont calculés avec ce code:
ratio <- function(d, w) sum(d$x * w)/sum(d$u * w)
city.boot <- boot(city, ratio, R = 999, stype = "w", sim = "ordinary")
boot.ci(city.boot, conf = c(0.90, 0.95),
type = c("norm", "basic", "perc", "bca"))
et produire cette sortie:
BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
Based on 999 bootstrap replicates
CALL :
boot.ci(boot.out = city.boot, conf = c(0.9, 0.95), type = c("norm",
"basic", "perc", "bca"))
Intervals :
Level Normal Basic
90% ( 1.111, 1.837 ) ( 1.030, 1.750 )
95% ( 1.042, 1.906 ) ( 0.895, 1.790 )
Level Percentile BCa
90% ( 1.291, 2.011 ) ( 1.292, 2.023 )
95% ( 1.251, 2.146 ) ( 1.255, 2.155 )
Calculations and Intervals on Original Scale
L'IC à 95% pour le bootstrap normal est obtenu en calculant:
with(city.boot, 2*t0 - mean(t) + qnorm(c(0.025, 0.975)) %o% sqrt(var(t)[1,1]))
La valeur de p est ainsi obtenue:
> with(city.boot, pnorm(abs((2*t0 - mean(t) - 1) / sqrt(var(t)[1,1])), lower.tail=F)*2)
[1] 0.0315
Ce qui convient que l'IC normal à 95% n'inclut pas la valeur de rapport nul de 1.
Le CI centile est obtenu (avec quelques différences dues aux méthodes de liens):
quantile(city.boot$t, c(0.025, 0.975))
Et la valeur de p pour le bootstrap centile est:
cvs <- quantile(city.boot$t0 - city.boot$t + 1, c(0.025, 0.975))
mean(city.boot$t > cvs[1] & city.boot$t < cvs[2])
Donne un p de 0,035 qui correspond également à l'intervalle de confiance en termes d'exclusion de 1 de la valeur. Nous ne pouvons pas en général observer que, alors que la largeur du CI centile est presque aussi large que le CI normal et que le CI centile est plus éloigné du zéro que le CI centile devrait fournir des valeurs de p plus faibles. En effet, la forme de la distribution d'échantillonnage sous-jacente à l'IC pour la méthode centile n'est pas normale.