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:
rstanarmbayesplotggplot2cowplotpurrrrstanloo
- Purpose: Defines a comprehensive set of prior distribution generators.
- Functions:
student_t_priornormal_priorcauchy_prioruniform_priorbeta_priorgamma_priorbinomial_priorpoisson_priorlognormal_priorbernoulli_prior
- Global Objects and Utilities:
original_distributions,distributionsadd_distribution,reset_distributions,get_prior_distribution
- Purpose: Provides utility functions used across the repository.
- Functions:
validate_positive_integervalidate_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_glmwith 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.