Description
Comprehensive Bayesian Model Diagnostics and Comparison Tools.
Description
Provides comprehensive tools for Bayesian model diagnostics and comparison. Includes prior sensitivity analysis, posterior predictive checks (Gelman et al. (2013) <doi:10.1201/b16018>), advanced model comparison using Pareto-smoothed importance sampling leave-one-out cross-validation (Vehtari et al. (2017) <doi:10.1007/s11222-016-9696-4>), convergence diagnostics, and prior elicitation tools. Integrates with 'brms' (Burkner (2017) <doi:10.18637/jss.v080.i01>), 'rstan', and 'rstanarm' packages for comprehensive Bayesian workflow diagnostics.
README.md
bayesDiagnostics
Overview
bayesDiagnostics provides comprehensive tools for Bayesian model diagnostics and comparison, addressing critical gaps in existing Bayesian diagnostic tools.
Key Features
- Prior Sensitivity Analysis: Assess posterior robustness to prior specification
- Automated Posterior Predictive Checks: Comprehensive diagnostic batteries
- Advanced Model Comparison: Beyond WAIC/LOO using stacking and cross-validation
- Specialized Convergence Diagnostics: For hierarchical and complex models
- Interactive Prior Elicitation: Tools for expert knowledge integration
Installation
Install from GitHub:
devtools::install_github("ikrakib/bayesDiagnostics")
Once available on CRAN:
install.packages("bayesDiagnostics")
Quick Example
library(bayesDiagnostics)
library(brms)
# Fit Bayesian model
fit <- brm(mpg ~ hp + wt, data = mtcars)
# Conduct prior sensitivity analysis
result <- prior_sensitivity(
model = fit,
parameters = c("b_hp", "b_wt"),
prior_grid = list(
weak = prior(normal(0, 10), class = b),
strong = prior(normal(0, 1), class = b)
)
)
print(result)
plot(result)
Functions by Category
Category 1: Prior Sensitivity
prior_sensitivity()- Compare posteriors across priorsprior_predictive_check()- Validate prior specificationsprior_robustness()- Test prior hyperparameter sensitivityprior_elicitation_helper()- Match expert beliefs to distributions
Category 2: Posterior Predictive Checks
automated_ppc()- Comprehensive PPC batteryppc_crossvalidation()- K-fold CV with PPCsgraphical_ppc()- Bayesplot-based visualizationsbayesian_p_values()- Test statistics for model checking
Category 3: Model Comparison
model_comparison_suite()- Multi-method comparisonbayes_factor_comparison()- Bridge sampling for Bayes factorspredictive_performance()- Out-of-sample assessment
Category 4: Convergence Diagnostics
hierarchical_convergence()- Hierarchical model diagnosticseffective_sample_size_diagnostics()- ESS assessment
Category 5: Prior Elicitation & Utilities
expert_prior_elicitation()- Interactive prior elicitationprior_simulation()- Simulate from prior
Documentation
For detailed documentation, see the package vignettes:
vignette("bayesDiagnostics")
Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
Citation
citation("bayesDiagnostics")