Benchmark: Comparing the Monte Carlo Method with Nonparametric Bootstrapping
Ivan Jacob Agaloos Pesigan
2025-01-13
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 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