R Under development (unstable) (2026-09-21 r90579 ucrt) -- "Unsuffered Consequences" Copyright (C) 2026 The R Foundation for Statistical Computing Platform: x86_64-w64-mingw32/x64 R is free software and comes with ABSOLUTELY NO WARRANTY. You are welcome to redistribute it under certain conditions. Type 'license()' or 'licence()' for distribution details. R is a collaborative project with many contributors. Type 'contributors()' for more information and 'citation()' on how to cite R or R packages in publications. Type 'demo()' for some demos, 'help()' for on-line help, or 'help.start()' for an HTML browser interface to help. Type 'q()' to quit R. > # Keep CRAN checks brief while exercising the complete fitting workflow. > # These short chains check execution only; they are not for inference. > library(BDIB) > > check_result <- function(ans) { + stopifnot(inherits(ans, "mlbslb_result")) + stopifnot(all(vapply(ans$posterior_samples, function(x) length(x) > 0L, logical(1)))) + stopifnot(all(unlist(ans$probabilities) >= 0), all(unlist(ans$probabilities) <= 1)) + stopifnot(all(unlist(ans$decisions) %in% c(0L, 1L))) + } > > settings <- list(n.chains = 1, n.iter = 200, n.burnin = 100, + n.thin = 1, parallel = FALSE) > t_vec <- c(4, 8, 12) > > set.seed(1000) > historical <- generate_spm(12, t_vec, "gaussian", -4, 0.05, -1, 1, + theta = -3.2, sigma_e = 1)$dat > control <- generate_spm(8, t_vec, "gaussian", -4, 0.05, -1, 1, + theta = -3.2, sigma_e = 1)$dat > treatment <- generate_spm(12, t_vec, "gaussian", -5.3, 0.05, -1.5, 1, + theta = -3.7, sigma_e = 1)$dat > continuous <- MLB_SLB_anlaysis( + historical, control, treatment, family = "gaussian", delta = 0.5, + n_hist = 12, fixed_weight = 0.5, mcmc_settings = settings, + decision_MLB = function(t, c) mean(t < c) > 0.95, + direction_MLB = "lower", + decision_SLB = function(t, c) mean(t < c) > 0.95, + direction_SLB = "lower" + ) Step 1: Fit historical (SPM, vague prior) ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 66 Unobserved stochastic nodes: 19 Total graph size: 384 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 2: Build informative prior from historical posterior draws ... Step 3: Construct non-informative (unit-information / uniform) prior ... Step 4: Fit concurrent control under NP prior ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 48 Unobserved stochastic nodes: 15 Total graph size: 287 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 5: Compute SLB weight ... Step 6: Fit concurrent control under MLB/SLB priors ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 48 Unobserved stochastic nodes: 15 Total graph size: 296 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 48 Unobserved stochastic nodes: 15 Total graph size: 296 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 7: Fit treatment arm under NP prior ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 72 Unobserved stochastic nodes: 19 Total graph size: 411 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 8: Posterior comparisons & decisions ... > check_result(continuous) > > set.seed(1000) > historical <- generate_spm(30, t_vec, "bernoulli", -4, 0.05, -1, 1, + theta = 0.4, beta0 = -2)$dat > control <- generate_spm(20, t_vec, "bernoulli", -4, 0.05, -1, 1, + theta = 0.4, beta0 = -2)$dat > treatment <- generate_spm(30, t_vec, "bernoulli", -5.3, 0.05, -1.5, 1, + theta = 0.5, beta0 = -1.5)$dat > binary <- MLB_SLB_anlaysis( + historical, control, treatment, family = "bernoulli", delta = 0.1, + n_hist = 30, fixed_weight = 0.5, mcmc_settings = settings, + decision_MLB = function(t, c) mean(t > c) > 0.95, + direction_MLB = "higher", + decision_SLB = function(t, c) mean(t > c) > 0.95, + direction_SLB = "higher" + ) Step 1: Fit historical (SPM, vague prior) ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 175 Unobserved stochastic nodes: 37 Total graph size: 1041 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 2: Build informative prior from historical posterior draws ... Step 3: Construct non-informative (unit-information / uniform) prior ... Step 4: Fit concurrent control under NP prior ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 118 Unobserved stochastic nodes: 27 Total graph size: 713 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 5: Compute SLB weight ... Step 6: Fit concurrent control under MLB/SLB priors ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 118 Unobserved stochastic nodes: 27 Total graph size: 725 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 118 Unobserved stochastic nodes: 27 Total graph size: 725 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 7: Fit treatment arm under NP prior ... Processing function input....... Done. Compiling model graph Resolving undeclared variables Allocating nodes Graph information: Observed stochastic nodes: 179 Unobserved stochastic nodes: 37 Total graph size: 1057 Initializing model Adaptive phase..... Adaptive phase complete Burn-in phase, 100 iterations x 1 chains Sampling from joint posterior, 100 iterations x 1 chains Calculating statistics....... Done. Step 8: Posterior comparisons & decisions ... > check_result(binary) > > proc.time() user system elapsed 5.92 0.85 6.79