Le bootstrap ne suppose aucune connaissance de la forme de la distribution parent sous-jacente d'où provient l'échantillon. Les estimations classiques classiques des paramètres statistiques sont basées sur l'hypothèse de normalité. Bootstrap traite de la non-normalité et est plus précis dans la pratique que les méthodes classiques.
Le bootstrap substitue la puissance de calcul brute des ordinateurs à une analyse théorique rigoureuse. Il s'agit d'une estimation de la distribution d'échantillonnage d'un terme d'erreur d'ensemble de données. Le bootstrapping comprend: le rééchantillonnage de l'ensemble de données un nombre spécifié de fois, le calcul de la moyenne de chaque échantillon et la recherche de l'erreur standard de la moyenne.
Le code «R» suivant illustre le concept:
Cet exemple pratique démontre l'utilité du bootstrap et estime l'erreur standard. L'erreur standard est requise pour calculer l'intervalle de confiance.
Supposons que vous ayez un ensemble de données asymétrique "a":
a<-rexp(395, rate=0.1) # Create skewed data
visualisation de l'ensemble de données asymétrique
plot(a,type="l") # Scatter plot of the skewed data
boxplot(a,type="l") # Box plot of the skewed data
hist(a) # Histogram plot of the skewed data
Exécutez la procédure d'amorçage:
n <- length(a) # the number of bootstrap samples should equal the original data set
xbarstar <- c() # Declare the empty set “xbarstar” variable which will be holding the mean of every bootstrap iteration
for (i in 1:1000) { # Perform 1000 bootstrap iteration
boot.samp <- sample(a, n, replace=TRUE) #”Sample” generates the same number of elements as the original data set
xbarstar[i] <- mean(boot.samp)} # “xbarstar” variable collects 1000 averages of the original data set
##
plot(xbarstar) # Scatter plot of the bootstrapped data
boxplot(xbarstar) # Box plot of the bootstrapped data
hist(xbarstar) # Histogram plot of the bootstrapped data
meanOfMeans <- mean(xbarstar)
standardError <- sd(xbarstar) # the standard error is the standard deviation of the mean of means
confidenceIntervalAboveTheMean <- meanOfMeans + 1.96 * standardError # for 2 standard deviation above the mean
confidenceIntervalBelowTheMean <- meanOfMeans - 1.96 * standardError # for 2 standard deviation above the mean
confidenceInterval <- confidenceIntervalAboveTheMean + confidenceIntervalBelowTheMean
confidenceInterval