--- title: "Optional Bayesian Backend Installation" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Optional Bayesian Backend Installation} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- ```{r setup, include=FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ## Core installation The package is independently useful without a Bayesian backend. Model contracts, readiness audits, deterministic simulation, preparation, specification, and prior predictive checks do not require `brms`, `rstan`, `posterior`, `bayesplot`, or a compiler. ```{r core-installation, eval=FALSE} install.packages( "gp3bayes", repos = NULL, type = "source" ) ``` ## Optional fitting and validation dependencies Full MCMC fitting and posterior validation require: ```{r backend-packages, eval=FALSE} install.packages( c( "brms", "rstan", "posterior", "bayesplot" ) ) ``` The supported fitting route is fixed to the `brms` interface, `rstan` backend, and full sampling algorithm. `cmdstanr`, variational inference, Pathfinder, Laplace approximation, and user-supplied Stan programs are not part of the approved interface. ## Windows toolchain check On Windows, source compilation requires the Rtools version compatible with the installed R version. After installing Rtools, start a clean R session and run: ```{r windows-build-tools, eval=FALSE} pkgbuild::has_build_tools( debug = TRUE ) ``` The result should be `TRUE`. If Stan compilation has already occurred in the current session and the probe unexpectedly includes Stan-specific include paths, restart R and repeat the check in a clean session. ## Backend preflight ```{r backend-preflight, eval=FALSE} stopifnot( requireNamespace( "brms", quietly = TRUE ), requireNamespace( "rstan", quietly = TRUE ), requireNamespace( "posterior", quietly = TRUE ) ) pkgbuild::has_build_tools( debug = TRUE ) ``` ## Minimal compilation smoke test Compilation should be tested with a deliberately small synthetic model before a large analysis. Short chains may produce low effective-sample-size warnings; those warnings must not be interpreted as adequate posterior inference. ```{r compilation-smoke, eval=FALSE} simulation <- simulate_hierarchical_binary_data( n_participants = 8, trials_per_participant = 6, n_items = 4, random_slope_sd = 0, seed = 7001 ) contract <- create_model_contract( family = "binary", outcome_col = "selected", participant_col = "participant_id", item_col = "item_id", trial_col = "trial_id", condition_col = "condition" ) prepared <- prepare_hierarchical_binary_data( simulation$data, contract, condition_levels = c( "control", "treatment" ) ) specification <- specify_binary_model( prepared, baseline = 0.35 ) smoke_fit <- fit_binary_model( specification, chains = 2, iter = 300, warmup = 150, cores = 2, seed = 7002, refresh = 0 ) ``` A successful smoke fit confirms compilation and sampling execution only. Production analyses require adequate iterations, sampling diagnostics, posterior predictive checks, sensitivity assessment, and transparent reporting. ## Clean-process package checks After a Stan fit on Windows, run package checks and pkgdown builds in separate clean R processes. This avoids accidental inheritance of model-compilation flags from the interactive session. ```text Rscript --vanilla -e "devtools::check()" Rscript --vanilla -e "pkgdown::check_pkgdown(); pkgdown::build_site(preview = FALSE)" ```