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   10.76533   11.02513   11.73928   11.17096   11.401   17.10782    10
#> 2   NB 1934.13308 1951.13237 1971.06786 1961.22100 2002.657 2008.81859    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.0000   1.0000   1.0000   1.0000   1.0000   1.000    10
#> 2   NB 179.6631 176.9714 167.9037 175.5642 175.6564 117.421    10

Plot