## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)

## ----setup--------------------------------------------------------------------
library(semboottools)
library(lavaan)

## -----------------------------------------------------------------------------
library(lavaan)

# Simulate data
set.seed(1234)
n <- 200
x <- runif(n) - 0.5
m <- 0.4 * x + rnorm(n)
y <- 0.3 * m + rnorm(n)
dat <- data.frame(x, m, y)

# Specify model
model <- '
  m ~ a * x
  y ~ b * m + cp * x
  ab := a * b
'

# Fit model
fit0 <- sem(model, data = dat, fixed.x = FALSE)

# Store bootstrap draws
# `R`, the number of bootstrap samples, should be ≥2000 in real studies.
# `parallel` should be used unless fitting the model is fast.
# Set `ncpus` to a larger value or omit it in real studies.
# `iseed` is set to make the results reproducible.

fit2 <- store_boot(
  fit0,
  R = 500,
  iseed = 2345)

## -----------------------------------------------------------------------------
gg_hist_qq_boot(fit2,
                param = "ab",
                standardized = FALSE)
gg_scatter_boot(fit2,
                param = c("ab", "a", "b"),
                standardized = FALSE)

## -----------------------------------------------------------------------------
gg_hist_qq_boot(fit2,
                param = "ab",
                standardized = TRUE)
gg_scatter_boot(fit2,
                param = c("ab", "a", "b"),
                standardized = TRUE)

