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

## ----simulation---------------------------------------------------------------
library(mvboxcox)

sim_train <- mvbc.simulator(
  vLambda = c(0.5, 1.5),
  vBeta = c(-2.2, -0.4, -0.2, -0.005),
  vMean = c(-0.08, -0.01, 50),
  vSd = c(0.93, 0.8, 18.12),
  vNames = c("mercury", "lead", "age"),
  n = 1000,
  seed = 1
)

sim_test <- mvbc.simulator(simModel = sim_train)

## ----fit, results = "hide"----------------------------------------------------
fit <- mvbc.train(
  Ybin ~ mercury + lead,
  ~ age,
  data = sim_train$data,
  griddomain = seq(0, 2, length.out = 5),
  K = 3,
  depth = 1,
  seed = 1
)

## ----prediction---------------------------------------------------------------
p_hat <- mvbc.predict(fit, sim_test$data)
head(p_hat)
mvbc.trainer.ssr(sim_test$data$Ybin, p_hat)

## ----inspect-fit--------------------------------------------------------------
fit$lambda.fits
fit$beta.fits

fit$grid[which.min(fit$grid$ssdr), ]

## ----median-effect------------------------------------------------------------
median_effect_q1 <- mvbc.median.effect(
  fit,
  sim_train$data,
  q = 1
)
median_effect_q1

## ----depress-data-------------------------------------------------------------
data(depress, package = "mvboxcox")
dim(depress)
head(depress)
table(depress$depression)

## ----nhanes-fit, results = "hide"---------------------------------------------
fit_nhanes <- mvbc.train(
  depression ~ mercury + blood_lead,
  ~ age + factor(gender),
  data = depress,
  weights = depress$weight,
  survey = TRUE,
  griddomain = seq(0, 2, length.out = 10),
  K = 5,
  depth = 2,
  seed = 1
)

## ----nhanes-results-----------------------------------------------------------
fit_nhanes$lambda.fits
fit_nhanes$beta.fits

mvbc.median.effect(
  fit_nhanes,
  depress,
  q = 1,
  weights = depress$weight
)

