Benchmark: Comparing the Monte Carlo Method with Nonparametric Bootstrapping
Ivan Jacob Agaloos Pesigan
2025-07-22
Source:vignettes/benchmark.Rmd
benchmark.Rmd
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.
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::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 463.7167 470.4698 489.6158 489.7169 500.9389 520.3767 10
#> 2 NB 6712.0427 6744.6460 6835.8485 6793.9892 6833.8736 7256.4950 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.0000 1.00000 1.00000 10
#> 2 NB 14.47445 14.33598 13.96166 13.8733 13.64213 13.94469 10