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.
- Purpose: Loads the necessary libraries and global settings for the entire modeling workflow.
- Libraries Used:
rstanarm
bayesplot
ggplot2
cowplot
purrr
rstan
loo
- 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
- Purpose: Provides utility functions used across the repository.
- Functions:
validate_positive_integer
validate_numeric
%||%
(null-coalescing operator)
- 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.
- 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.
- 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 usingrstanarm::stan_glm
with given priors, and checks for convergence.
- 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.
- 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.
- 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.