Sí, puede aproximar por P ( ˉ X ∗ n ≤ x ) pero no es óptimo. Esta es una forma del percentil bootstrap. Sin embargo, el bootstrap percentil no funciona bien si está tratando de hacer inferencias sobre la media de la población a menos que tenga un gran tamaño de muestra. (Funciona bien con muchos otros problemas de inferencia, incluso cuando el tamaño del tamaño de la muestra es pequeño). Tomo esta conclusión de las Estadísticas modernas de Wilcox para las ciencias sociales y del comportamiento.P ( X¯norte≤ x )P ( X¯∗norte≤ x ) , CRC Press, 2012. Me temo que una prueba teórica me supera. .
Una variante en el enfoque de centrado va al siguiente paso y escala su estadística de bootstrap centrada con la desviación estándar de muestra y el tamaño de la muestra, calculando de la misma manera que en la estadística. Los cuantiles de la distribución de estas estadísticas t se pueden usar para construir un intervalo de confianza o realizar una prueba de hipótesis. Este es el método bootstrap-t y proporciona resultados superiores al hacer inferencias sobre la media.
s∗
T∗= X¯∗norte- X¯s∗/ n√
T∗ pueden hacer un intervalo de confianza paraμ por:
X¯- T∗0.975snorte√, X¯- T∗0,025snorte√
Considere los resultados de la simulación a continuación, que muestran que con una distribución mixta muy sesgada, los intervalos de confianza de este método contienen el valor verdadero con más frecuencia que el método de arranque por percentil o una inversión tradicional de estadística sin arranque.
compare.boots <- function(samp, reps = 599){
# "samp" is the actual original observed sample
# "s" is a re-sample for bootstrap purposes
n <- length(samp)
boot.t <- numeric(reps)
boot.p <- numeric(reps)
for(i in 1:reps){
s <- sample(samp, replace=TRUE)
boot.t[i] <- (mean(s)-mean(samp)) / (sd(s)/sqrt(n))
boot.p[i] <- mean(s)
}
conf.t <- mean(samp)-quantile(boot.t, probs=c(0.975,0.025))*sd(samp)/sqrt(n)
conf.p <- quantile(boot.p, probs=c(0.025, 0.975))
return(rbind(conf.t, conf.p, "Trad T test"=t.test(samp)$conf.int))
}
# Tests below will be for case where sample size is 15
n <- 15
# Create a population that is normally distributed
set.seed(123)
pop <- rnorm(1000,10,1)
my.sample <- sample(pop,n)
# All three methods have similar results when normally distributed
compare.boots(my.sample)
Esto proporciona lo siguiente (conf.t es el método bootstrap t; conf.p es el método bootstrap percentil).
97.5% 2.5%
conf.t 9.648824 10.98006
conf.p 9.808311 10.95964
Trad T test 9.681865 11.01644
Con un solo ejemplo de una distribución sesgada:
# create a population that is a mixture of two normal and one gamma distribution
set.seed(123)
pop <- c(rnorm(1000,10,2),rgamma(3000,3,1)*4, rnorm(200,45,7))
my.sample <- sample(pop,n)
mean(pop)
compare.boots(my.sample)
Esto da lo siguiente. Tenga en cuenta que "conf.t" - la versión bootstrap t - ofrece un intervalo de confianza más amplio que los otros dos. Básicamente, es mejor para responder a la distribución inusual de la población.
> mean(pop)
[1] 13.02341
> compare.boots(my.sample)
97.5% 2.5%
conf.t 10.432285 29.54331
conf.p 9.813542 19.67761
Trad T test 8.312949 20.24093
Finalmente, aquí hay mil simulaciones para ver qué versión ofrece intervalos de confianza que con frecuencia son correctos:
# simulation study
set.seed(123)
sims <- 1000
results <- matrix(FALSE, sims,3)
colnames(results) <- c("Bootstrap T", "Bootstrap percentile", "Trad T test")
for(i in 1:sims){
pop <- c(rnorm(1000,10,2),rgamma(3000,3,1)*4, rnorm(200,45,7))
my.sample <- sample(pop,n)
mu <- mean(pop)
x <- compare.boots(my.sample)
for(j in 1:3){
results[i,j] <- x[j,1] < mu & x[j,2] > mu
}
}
apply(results,2,sum)
Esto proporciona los resultados a continuación: los números son los tiempos fuera de 1,000 que el intervalo de confianza contiene el valor verdadero de una población simulada. Tenga en cuenta que la verdadera tasa de éxito de cada versión es considerablemente inferior al 95%.
Bootstrap T Bootstrap percentile Trad T test
901 854 890