Skip to contents

We compare the Monte Carlo (MC) method with nonparametric bootstrapping (NB) for standardized regression coefficients. In this example, we use the data set and the model used in betaMC: Example Using the BetaMC Function.

The BetaMC() function is used to generate MC confidence intervals. The BetaNB() function is used to generate NB confidence intervals.

BetaNB <- function(formula, data, B) {
  statistic <- function(formula, data, indices) {
    return(
      coef(lm(formula = formula, data = as.data.frame(scale(data[indices, ]))))[-1]
    )
  }
  return(boot.ci(boot(data = data, statistic = statistic, formula = formula, R = B)))
}

Data and Model

df <- betaMC::nas1982

Benchmark

Arguments

Variables Values Notes
R 5000 Number of Monte Carlo replications.
B 5000 Number of bootstrap samples.
benchmark <- microbenchmark(
  MC = {
    formula <- "QUALITY ~ NARTIC + PCTGRT + PCTSUPP"
    object <- lm(formula = formula, data = df)
    mc <- MC(object = object, R = R, type = "mvn")
    BetaMC(object = mc)
  },
  NB = {
    formula <- "QUALITY ~ NARTIC + PCTGRT + PCTSUPP"
    object <- lm(formula = formula, data = df)
    BetaNB(formula = formula, data = df, B = B)
  },
  times = 10
)

Summary of Benchmark Results

summary(benchmark, unit = "ms")
#>   expr       min        lq      mean    median        uq       max neval
#> 1   MC  435.1968  440.4752  470.3264  462.5778  497.3829  534.1486    10
#> 2   NB 6320.6291 6697.0485 6852.9545 6934.8306 7073.6815 7275.8223    10

Summary of Benchmark Results Relative to the Faster Method

summary(benchmark, unit = "relative")
#>   expr      min       lq     mean   median      uq      max neval
#> 1   MC  1.00000  1.00000  1.00000  1.00000  1.0000  1.00000    10
#> 2   NB 14.52361 15.20414 14.57064 14.99171 14.2218 13.62134    10

Plot