Skip to contents
library(fwildclusterboot)
#> 
#> Please cite as:
#>  Fischer & Roodman. (2021). fwildclusterboot: Fast Wild Cluster.
#>  Bootstrap Inference for Linear Regression Models.
#>  Available from https://cran.r-project.org/package=fwildclusterboot/.
set.seed(12312)

fwildclusterboot provides an R binding to the WildBootTests.jl implementation of the “fast” wild cluster bootstrap.

Installation and Set-Up

We recommend to install Julia from its official website https://julialang.org/downloads/.

The JuliaConnectoR.utils packages helps you to link R and Julia and to install WildBootTests.jl from within R.

devtools::install_github("s3alfisc/JuliaConnectoR.utils")
library(JuliaConnectoR.utils)
connect_julia_r() # instructions to connect Julia and R
install_julia_packages("WildBootTests.jl") # install WildBootTests.jl

By default, the functions above install the most recent stable releases of WildBootTests.jl.

If Julia and WildBootTests.jl are already installed, you can check if the installed versions match the SystemRequirements by running

check_julia_system_requirements("fwildclusterboot")

To set the number of threads for use in Julia, you can run

set_julia_nthreads() # instructions to set nthreads for Julia

and follow the provided instructions.

The engine function argument

You can run the wild cluster bootstrap through WildBootTests.jl via the engine function argument:

# load data set voters included in fwildclusterboot
data(voters)
# estimate the regression model via lm
lm_fit <- lm(
  proposition_vote ~ treatment + ideology1 + log_income + Q1_immigration ,
  data = voters
)

The first function call of boottest() will JIT-compile all required Julia code - this will take around 10-30 seconds. Note that if you re-start your R session, all Julia code will have to be re-compiled.

boot_lm <- boottest(
  lm_fit,
  clustid = "group_id1",
  param = "treatment",
  B = 9999,
  engine = "WildBootTests.jl"
)

If you decide that all your analyses should run through WildBootTests.jl, you can set a global variable via

setBoottest_engine("WildBootTests.jl")

All subsequent calls of boottest() will then automatically run WildBootTests.jl (unless you explicitly specify engine = "R").

# after setting setBoottest_engine("WildBootTests.jl"), 
# the code below runs WildBootTests.jl without
# specifying 'engine = "WildBootTests.jl"'
boottest(
  lm_fit, 
  clustid = "group_id1", 
  param = "treatment",
  B = 9999
)