The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
bayesplot
provides ggplot2-based plotting for Markov chains and
Bayesian workflow diagnostics. glmbayes does not depend
on bayesplot (install it from CRAN if you want to run
the code below). A former S3 pp_check()
method for glmb lives in
legacy_code/pp_check.glmb.R.
After fitting models in earlier chapters (Chapters 07–08 overview; Chapter 09 binomial illustration), visual summaries help assess mixing, posterior shape, and how well replicated data match the observed responses.
We reuse the Menarche grouped binomial illustration
with default Prior_Setup() machinery.
data(menarche, package = "MASS")
Age2 <- menarche$Age - 13
Menarche_Model_Data <- data.frame(
Menarche = menarche$Menarche,
Total = menarche$Total,
Age2 = Age2
)
ps <- Prior_Setup(
cbind(Menarche, Total - Menarche) ~ Age2,
family = binomial(link = "logit"),
data = Menarche_Model_Data
)
fit_logit <- glmb(
cbind(Menarche, Total - Menarche) ~ Age2,
family = binomial(link = "logit"),
pfamily = dNormal(mu = ps$mu, Sigma = ps$Sigma),
data = Menarche_Model_Data,
n = 800,
use_parallel = FALSE
)
coef_draws <- as.matrix(fit_logit$coefficients)Because glmb() returns
i.i.d. draws, you can think of the coefficient matrix
as one posterior sample stream. With
bayesplot installed separately from CRAN,
mcmc_trace() and
mcmc_dens() give univariate views
(functions that need multiple MCMC chains, such as
mcmc_dens_overlay(), are not appropriate
here).
For binomial models
glmbayes works on
proportions so y and
yrep line up. The chunk below builds
y_obs and
y_rep for optional
bayesplot::ppc_* plots (or the
pp_check.glmb wrapper in
legacy_code/).
## Observed success proportions (aligned with simulate.glmb for binomial)
y_obs <- Menarche_Model_Data$Menarche / Menarche_Model_Data$Total
pred_resp <- predict(fit_logit, type = "response")
nd <- max(1L, min(50L, nrow(pred_resp)))
pred_sub <- pred_resp[seq_len(nd), , drop = FALSE]
y_rep <- stats::simulate(
fit_logit,
pred = pred_sub,
prior.weights = fit_logit$prior.weights
)
stopifnot(nrow(y_rep) == nd, ncol(y_rep) == length(y_obs))Try other ppc_* helpers via the
fun argument when
bayesplot is installed (see
?bayesplot-helpers).
glmb() walk-through and interpretation of
printed summaries.?simulate.glmb,
?predict.glmb — mechanics behind
replicated responses; optional pp_check
wrapper in
legacy_code/pp_check.glmb.R.These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.