https://github.com/elkronos/bmber
Bayesian Model Building and Evaluation Repository
https://github.com/elkronos/bmber
bayesian-inference bayesian-statistics r rstan sensitivity-analysis statistics
Last synced: about 1 year ago
JSON representation
Bayesian Model Building and Evaluation Repository
- Host: GitHub
- URL: https://github.com/elkronos/bmber
- Owner: elkronos
- Created: 2023-08-11T23:14:55.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-02-18T04:30:51.000Z (over 1 year ago)
- Last Synced: 2025-02-18T05:26:46.983Z (over 1 year ago)
- Topics: bayesian-inference, bayesian-statistics, r, rstan, sensitivity-analysis, statistics
- Language: R
- Homepage:
- Size: 26.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bmbeR: Bayesian Model Building and Evaluation Repository
This repository contains a set of R scripts designed to build, evaluate, visualize, and perform sensitivity analysis on Bayesian models. These scripts use a mixture of `rstan`, `rstanarm`, and other Bayesian analysis libraries to facilitate the modeling process.
## Scripts and Their Functions:
### libraries_and_setup.R
- **Purpose:** Loads the necessary libraries and global settings for the entire modeling workflow.
- **Libraries Used:**
- `rstanarm`
- `bayesplot`
- `ggplot2`
- `cowplot`
- `purrr`
- `rstan`
- `loo`
### distributions.R
- **Purpose:** Defines a comprehensive set of prior distribution generators.
- **Functions:**
- `student_t_prior`
- `normal_prior`
- `cauchy_prior`
- `uniform_prior`
- `beta_prior`
- `gamma_prior`
- `binomial_prior`
- `poisson_prior`
- `lognormal_prior`
- `bernoulli_prior`
- **Global Objects and Utilities:**
- `original_distributions`, `distributions`
- `add_distribution`, `reset_distributions`, `get_prior_distribution`
### utilities.R
- **Purpose:** Provides utility functions used across the repository.
- **Functions:**
- `validate_positive_integer`
- `validate_numeric`
- `%||%` (null-coalescing operator)
### empirical_bayes.R
- **Purpose:** Computes empirical Bayesian hyperparameter specifications from data.
- **Functions:**
- `empirical_bayes_priors`: Fits a linear model and maps coefficient estimates and standard errors to hyperparameters for various prior distributions.
### model_convergence.R
- **Purpose:** Checks convergence diagnostics of a fitted Bayesian model.
- **Functions:**
- `check_convergence`: Assesses if a model has converged based on Rhat and effective sample size (ESS) metrics, and optionally generates trace plots.
### model_fitting.R
- **Purpose:** Fits Bayesian models using specified prior configurations and data.
- **Functions:**
- `build_stanarm_priors`: Converts hyperparameter lists into rstanarm prior objects.
- `fit_model_with_prior`: Fits a Bayesian model using `rstanarm::stan_glm` with given priors, and checks for convergence.
### model_visualization.R
- **Purpose:** Generates diagnostic and posterior visualization plots for fitted models.
- **Functions:**
- `generate_plot`: Generates diagnostic plots (trace, histogram, density, and autocorrelation) for a model.
- `plot_posterior_distributions`: Visualizes posterior distributions with 95% credible intervals using bayesplot.
### model_sensitivity.R
- **Purpose:** Performs sensitivity analysis across different prior configurations.
- **Functions:**
- `sensitivity_analysis`: Iterates through a list of prior configurations, fits models, and computes performance metrics (using LOO) to assess how changes in priors affect model outcomes.
### model_evaluation.R
- **Purpose:** Evaluates the predictive performance of fitted models.
- **Functions:**
- `evaluate_model_performance`: Computes performance metrics such as RMSE and MAE for regression tasks, or accuracy, precision, recall, and F1 Score for classification tasks.