Il bootstrap non ha assunto alcuna conoscenza della forma della distribuzione genitore sottostante da cui proviene il campione. Le stime dei parametri statistici classici tradizionali si basano sul presupposto della normalità. Bootstrap si occupa della non normalità ed è più accurato nella pratica rispetto ai metodi classici.
Il bootstrap sostituisce la potenza di calcolo grezza dei computer con rigorose analisi teoriche. È una stima per la distribuzione campionaria di un termine di errore del set di dati. Il bootstrap include: ricampionare il set di dati per un determinato numero di volte, calcolando la media di ciascun campione e trovando l'errore standard della media.
Il seguente codice "R" dimostra il concetto:
Questo esempio pratico dimostra l'utilità del bootstrap e stima l'errore standard. L'errore standard è necessario per calcolare l'intervallo di confidenza.
Supponiamo che tu abbia un set di dati inclinato "a":
a<-rexp(395, rate=0.1) # Create skewed data
visualizzazione del set di dati distorto
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
Eseguire la procedura di bootstrap:
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