NEWS
BayesTools 0.3.0 (2026-05-06)
Features
- major refactoring and speed-up of unit tests
- adds support for
__default_factor and __default_continuous priors in JAGS_formula() - when specified in the prior_list, these are used as default priors for factor and continuous predictors that are not explicitly specified
- adds automatic standardization of continuous predictors via
formula_scale parameter in JAGS_formula() and JAGS_fit() - improves MCMC sampling efficiency and numerical stability
- adds
transform_scale_samples() function to transform posterior samples back to original scale after standardization
- adds
transform_prior_samples() function to generate and transform prior samples using the same matrix transformation as posterior samples - enables correct visualization of priors on the original (unscaled) predictor scale, including proper handling of the intercept which depends on multiple coefficient priors
- adds
transform_scaled argument to plot_posterior() for visualizing prior and posterior distributions on the original (unscaled) scale when using formula-based models with auto-scaling
- adds
exp_lin transformation type for log-intercept unscaling in density/plotting functions: exp(a + b * log(x))
- adds
log(intercept) formula attribute for specifying models of the form log(intercept) + sum(beta_i * x_i) - useful for parameters that must be positive (e.g., standard deviation) while keeping the intercept on the original scale. Set via attr(formula, "log(intercept)") <- TRUE. Supported in JAGS_formula(), JAGS_evaluate_formula(), and marginal likelihood computation
- adds advanced parameter filtering options to
runjags_estimates_table():
remove_parameters = TRUE to remove all non-formula parameters
remove_formulas to remove all parameters from specific formulas
keep_parameters to keep only specified parameters
keep_formulas to keep only parameters from specified formulas
- when
bias is specified in remove_parameters or keep_parameters, the corresponding bias-related parameters (PET, PEESE, omega, alpha, pi_null, and phack_kind) are automatically included based on the bias prior type
- adds
probs argument to runjags_estimates_table() and runjags_estimates_empty_table() for custom quantiles (default: c(0.025, 0.5, 0.975))
- adds
effect_direction argument to plot_posterior(), plot_prior_list(), lines_prior_list(), and geom_prior_list() for PET-PEESE regression plots - use "positive" (default) for mu + PET*se + PEESE*se^2 or "negative" for mu - PET*se - PEESE*se^2
- redesigns
prior_weightfunction() around a unified side, steps, and weights specification, with wf_cumulative(), wf_fixed(), and wf_independent() constructors for cumulative Dirichlet, fixed, independent, and log-independent weightfunction priors
- adds p-hacking and composed selection-bias priors via
prior_phacking(), prior_bias(), calibration helpers, and selection_backend_spec() for compiling active step/p-hacking backend parameters
- adds error % for inclusion BF calculation
Changes
- changes quantile column names in
runjags_estimates_table() and stan_estimates_table() from lCI/Median/uCI to numeric values (e.g., 0.025/0.5/0.975) for consistency with ensemble summary tables
- implied prior distributions for estimated marginal means, unstandardized coefficients, and PET-PEESE no longer require prior samples
- implied prior distributions for weightfunction weights now use analytical forms for cumulative Dirichlet, fixed, independent, and log-independent priors, including mixture and model-averaged weightfunctions where possible
- independent weightfunction priors now allow non-reference weights above one via non-negative omega-scale priors or unrestricted log-omega priors
- replaces the legacy dot-named weightfunction prior specifications with the unified weightfunction prior API and updates JAGS generation, marginal likelihood computation, posterior extraction, diagnostics, and summary tables to use the new component-local
omega representation
- composed selection-bias priors and publication-bias mixtures now support prior sampling and explicit unsupported-operation errors for ambiguous scalar prior generics
Fixes
- reports inclusion Bayes factors as
NA when the prior assigns probability 0 or 1 to inclusion, while keeping finite-sample bounds for posterior inclusion probabilities of 0 or 1
- fixes incorrect ordering the printed mixture priors
- fixes formula with no intercepts coded as
0 (instead of only -1)
- fixes bug in
.is.wholenumber with NAs and na.rm = TRUE
- fixes ggplot prior spike layers for marginal factor plots with density and point components
BayesTools 0.2.23 (2025-12-08)
Fixes
JAGS_diagnostics functions now correctly handle factor parameters nested within mixture priors
BayesTools 0.2.22 (2025-09-14)
Fixes
plot_posterior() function with spike and slab priors
Changes
- unifies back-end of
prior_mixture() and prior_spike_and_slab()
BayesTools 0.2.21 (2025-08-29)
Fixes
JAGS_formula() function now replaces removed missing intercept with 0 (so the model matrix remains unchanged)
- resetting
silent = FALSE argument in the JAGS_fit() function now fits the model non-silently again
BayesTools 0.2.20 (2025-07-30)
Features
- extending prior functions to accept
expression() instead of a parameter, such objects can be use to create prior distributions that depend on other parameters in JAGS
- extending the formula interface of
JAGS_fit() function to accept expressions that are appended as literal text to the generated JAGS formula
- extending the formula interface of
JAGS_fit() function to handle uncorrelated random effects via (x||y) (lme4-like) notation
Fixes
JAGS_estimates_table not printing formula prefix when only spike and slab priors are supplied
BayesTools 0.2.19 (2025-06-08)
Features
- adds
max_extend option to autofit_control argument in JAGS_fit() to limit the number of iterations for the model extension
- adds JASP progress bar integration
Fixes
JAGS_diagnostics_density() plots for mixture distributions
- prior and posterior
plot_posterior() for simple as_mixed_posteriors objects
JAGS_evaluate_formula() for mixture and spike and slab priors
- set Bayes factors based on alternative only prior distributions to NA
- better handling of posterior samples in
.fit_to_posterior()
BayesTools 0.2.18 (2025-01-14)
Features
- adding
prior_mixture() function for creating a mixture of prior distributions
- adding
as_mixed_posteriors() and as_marginal_inference() functions for a single JAGS models (with spike and slab or mixture priors) to enabling tables and figures based on the corresponding output
- adding
interpret2() function for another way of creating textual summaries without the need of inference and samples objects
- speedup and improvements to the
runjags_estimates_table() function
Fixes
- small fixes for expansion of the RoBMA functionality
version 0.2.17
Features
- adding informed prior distributions for dichotomous and time to event outcomes based on Cochrane Database of Systematic Reviews to
prior_informed() function
- adding bridge object convenience function
bridge_object() (fixes: https://github.com/FBartos/BayesTools/issues/28)
- adding
Na/NaN tests for check_ functions (fixes: https://github.com/FBartos/BayesTools/issues/26)
Fixes
- ability to run more than 4 chains (fixes: https://github.com/FBartos/BayesTools/issues/20)
version 0.2.16
Features
- update an existing JAGS fit with
JAGS_extend() function
- new element of the
autofit_control argument in JAGS_fit(): "restarts" allows to restart model initialization up to restarts times in case of failure
version 0.2.15
Fixes
- fixing repeated print of previous prior distribution in
model_summary_table() in case of prior_none()
version 0.2.14
Features
- adding
contrast = "meandif" to the prior_factor function which generates identical prior distributions for difference between the grand mean and each factor level
- adding
contrast = "independent" to the prior_factor function which generates independent identical prior distributions for each factor level
remove_column function for removing columns from BayesTools_table objects without breaking the attributes etc...
- adding empty table functions (https://github.com/FBartos/BayesTools/issues/10)
- adding
remove_parameters argument to model_summary_table()
- adding multivariate point distribution functions
- adding
point prior distribution as option to prior_factor with "meandif" and "orthonormal" contrasts
- adding
marginal_posterior() function which creates marginal prior and posterior distributions (according to a model formula specification)
- adding
Savage_Dickey_BF() function to compute density ratio Bayes factors based on marginal_posterior objects
- adding
marginal_inference() function to combine information from marginal_posterior() and Savage_Dickey_BF()
- adding
marginal_estimates_table() function to summarize marginal_inference() objects
- adding
plot_marginal() function to visualize marginal_inference() objects
Changes
contrast = "meandif" is now the default setting for prior_factor function
- depreciating
transform_orthonormal argument in favor of more general transform_factors argument
- switching
dummy contrast/factor attributes to treatment for consistency (https://github.com/FBartos/BayesTools/issues/23)
Fixes
- zero length inputs to
check_bool(), check_char(), check_real(), check_int(), and check_list() do not throw error if allow_NULL = TRUE
- properly aggregating identical priors in the plotting function (previously overlying multiple spikes on top of each other when attributes did not match)
student-t allowed as a prior distribution name
- fixing factor contrast settings in
JAGS_evaluate_formula
- fixing spike prior transformations
version 0.2.13
Features
runjags_estimates_table() function can now handle factor transformations
plot_posterior function can now handle factor transformations
- ability to remove parameters from the
runjags_estimates_table() function via the remove_parameters argument
Fixes
- inability to deal with constant intercept in marglik formula calculation
runjags_estimates_table() function can now remove factor spike prior distributions
- marginal likelihood calculation for factor prior distributions with spike
- mixing samples from vector priors of length 1
- same prior distributions not always combined together properly when part of them was generated via the formula interface
version 0.2.12
Features
stan_estimates_summary() function
- reducing dependency on runjags/rjags
Fixes
- dealing with posterior samples from rstan
- dealing with vector posterior samples
- fixing MCMC error of SD calculation for transformed samples (previously reported 100 times lower)
version 0.2.11
Features
- adding Bernoulli prior distribution
- adding spike and slab type of prior distributions (without marginal likelihood computations/model-averaging capabilities)
- new vignette comparing Bayes factor computation via marginal likelihood and spike and slab priors
Fixes
- when a transformation is applied, JAGS summary tables now produce the mean of the transformed variable (previous versions incorrectly returned transformation of the mean)
Changes
- runjags_XXX_table functions are now also exported as JAGS_XXX_functions for consistency with the rest of the code
version 0.2.10
Features
- trace, density, and autocorrelation diagnostic plots for JAGS models
version 0.2.9
Fixes
- dealing with NaNs in inclusion Bayes factors due to overflow with very large marginal likelihoods
version 0.2.8
Fixes
- dealing with point prior distributions in
JAGS_marglik_parameters_formula function
- posterior samples dropping name in
runjags_estimates_table function
ensemble_summary_table and ensemble_diagnostics_table function can create table without model components
version 0.2.7
Features
JAGS_evaluate_formula for evaluating formulas based on data and posterior samples (for creating predictions etc)
JAGS_parameter_names for transforming formula names into the JAGS syntax
version 0.2.6
Features
plot_models implementation for factor predictors
format_parameter_names for cleaning parameter names from JAGS
mean, sd, and var functions now return the corresponding values for differences from the mean for the orthonormal prior distributions
Fixes
- proper splitting of transformed posterior samples based on orthonormal contrasts in
runjags_summary_table function (previous version crashed under other than default fit_JAGS settings)
- always showing name of the comparison group for treatment contrasts in
runjags_summary_table function
- better handling of transformed parameter names in
plot_models function
version 0.2.5
Features
add_column function for extending BayesTools_table objects without breaking the attributes etc...
- ability to suppress the formula parameter prefix in
BayesTools_table functions with with formula_prefix argument
Fixes
- allowing to pass point prior distributions for factor type predictors
version 0.2.4
Features
- adding possibility to multiply a (formula) prior parameter by another term (via
multiply_by attribute passed with the prior)
- t-test example vignette
version 0.2.3
Fixes
- fixing error from trying to rename formula parameters in BayesTools tables when multiple parameters were nested within a component
version 0.2.2
Fixes
- fixing layering of prior and posterior plots in
plot_posterior (posterior is now plotted over the prior)
version 0.2.1
Fixes
- fixing JAGS code for multivariate-t prior distribution
version 0.2.0
Changes
- ensemble inference, summary, and plot functions now extract the prior list from attribute of the fit objects (previously, the prior_list needed to be passed for each model within the model_list as the priors argument
Features
- adding formula interface for fitting and computing marginal likelihood of JAGS models
- adding factor prior distributions (with treatment and orthonormal contrasts)
version 0.1.4
Fixes
- fixing DOIs in the references file
- adds marglik argument
inclusion_BF to deal with over/underflow (Issue #9)
- better passing of BF names through the
ensemble_inference_table() (Issue #11)
Features
- adding logBF and BF01 options to
ensemble_summary_table (Issue #7)
version 0.1.3
Features
prior_informed function for creating informed prior distributions based on the past psychological and medical research
version 0.1.2
Fixes
prior.plot can't plot "spike" with plot_type == "ggplot" (Issue #6)
MCMC error/SD print names in BayesTools tables (Issue #8)
JAGS_bridgesampling_posterior unable to add a parameter via add_parameters
Features
interpret function for creating textual summaries based on inference and samples objects
version 0.1.1
Fixes
plot_posterior fails with only mu & PET samples (Issue #5)
- ordering by "probabilities" does not work in 'plot_models' (Issue #3)
- BF goes to NaN when only a single model is present in 'models_inference' (Issue #2)
- summary tables unit tests unable to deal with numerical precision
- problems with aggregating samples across multiple spikes in `plot_posterior'
Features
- allow density.prior with range lower == upper (Issue #4)
- moving rstan towards suggested packages
version 0.1.0
version 0.0.0.9010
- plotting functions for models
version 0.0.0.9009
- plotting functions for posterior samples
version 0.0.0.9008
- plotting functions for mixture of priors
version 0.0.0.9007
- improvements to prior plotting functions
version 0.0.0.9006
- ensemble and model summary tables functions
version 0.0.0.9005
- posterior mixing functions
version 0.0.0.9004
- model-averaging functions
version 0.0.0.9003
- JAGS fitting related functions
version 0.0.0.9002
- JAGS bridgesampling related functions
version 0.0.0.9001
- JAGS model building related functions
version 0.0.0.9000
- priors and related methods