Example of using bootstraps to estimate SE of a mean

Just a little game to know better bootstraps. Note that when the number of observations is low, the estimator is biased.

See here for a solution:
Bondy, Warren; Zlot, William (1976). "The Standard Error of the Mean and the Difference Between Means for Finite Populations". The American Statistician. 30 (2): 96–97.


finalerr <- NULL
reptest <- c(10000, 50000, 100000)
ltest <- c(10, 20, 30, 50, 100, 200, 300, 400, 500)
for (rep in reptest) {
  perror <- NULL
  for (l in ltest) {
    
    taille <- runif(n=l, min=160, max=180)
    
    # The standard error of the series
    # sd(taille)/sqrt(l)
    
    
    m <- rep(NA, rep)
    for (i in 1:rep) m[i] <- mean(taille[sample(x=1:l, size = l, replace = TRUE)])
    
    # The standard deviation of the means obtained using bootstrap
    # sd(m)
    
    perror <- c(perror, 100*(sd(m)-(sd(taille)/sqrt(l)))/(sd(taille)/sqrt(l)))
  }
  finalerr <- cbind(finalerr, perror)
  
}


plot(ltest, finalerr[, 1], las=1, bty="n", type="n", ylim=c(-5, 2), xlab="Number of observations", 
     ylab="Percent of error for SE")
segments(x0=0, x1=500, y0=0, y1=0, lty=2)

lines(x=ltest, y=finalerr[, 1], col="black")
lines(x=ltest, y=finalerr[, 2], col="blue")
lines(x=ltest, y=finalerr[, 3], col="red")

legend("bottomright", legend=c("10000", "50000", "100000"), 
       lty=1, col=c("black", "blue", "red"), title = "Number of boostraps")


Commentaires

Posts les plus consultés de ce blog

Standard error from Hessian Matrix... what can be done when problem occurs

stepAIC from package MASS with AICc

Install treemix in ubuntu 20.04