## ----setup, include = FALSE---------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 7,
  fig.height = 5
)

## ----libs---------------------------------------------------------------------
library(phdid)
set.seed(1)

## ----design-------------------------------------------------------------------
des <- ph_design(N = 2000, T = 10, cohorts = c(0, 3, 5, 7))
des

## ----truth--------------------------------------------------------------------
truth <- ph_truth(des, m_star = 6, delta = 6)
table(truth$labels)
round(sort(unique(truth$tau)), 3)

## ----draw---------------------------------------------------------------------
d <- ph_sample(des, truth)
l0_ph(d)$m          # groups recovered
adjusted_rand(l0_ph(d)$partition, truth$labels)

## ----sim-main-----------------------------------------------------------------
res <- sim_study(
  des, m_star = 6, delta = 6, R = 8,
  bayes_args = list(iters = 250, burn = 50),
  seed = 11, progress = FALSE
)
res[, c("method", "var_ratio", "abs_bias", "ari", "cover_CATT", "cover_ATT")]

## ----sim-delta----------------------------------------------------------------
grid <- do.call(rbind, lapply(c(3, 6, 12), function(delta) {
  sim_study(des, m_star = 6, delta = delta, R = 6,
            methods = c("flexible", "oracle", "l0"),
            seed = 100 + delta, progress = FALSE)
}))
grid[, c("method", "delta", "var_ratio", "ari")]

## ----sim-coverage-------------------------------------------------------------
cov_grid <- do.call(rbind, lapply(c(3, 12), function(delta) {
  sim_study(des, m_star = 6, delta = delta, R = 6,
            methods = c("flexible", "l0", "bayes"),
            bayes_args = list(iters = 250, burn = 50),
            seed = 200 + delta, progress = FALSE)
}))
cov_grid[, c("method", "delta", "cover_CATT", "len_CATT", "cover_ATT")]

## ----full, eval = FALSE-------------------------------------------------------
# res_full <- sim_study(
#   des, m_star = 6, delta = 6, R = 500,
#   bayes_args = list(iters = 4000, burn = 1000),
#   seed = 1234
# )

