Benchmark: Comparing the Monte Carlo Method with Nonparametric Bootstrapping
Ivan Jacob Agaloos Pesigan
2026-11-05
Source:vignettes/benchmark.Rmd
benchmark.RmdWe 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.
library(betaMC)
library(boot)
library(microbenchmark)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::nas1982Benchmark
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 10Summary 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