template<typename T = double>
liarsdice::bayesian::BayesianAnalyzer class

Core Bayesian analysis engine for statistical inference.

Template parameters
T The numeric type for calculations (float, double, long double)

Provides a comprehensive framework for Bayesian analysis using Boost.Math distributions and numerical methods. Supports conjugate and non-conjugate priors with various likelihood functions.

Public types

struct DiagnosticInfo
Get diagnostic information about the analysis.
using value_type = T
using vector_type = boost::numeric::ublas::vector<T>
using matrix_type = boost::numeric::ublas::matrix<T>
using prior_ptr = std::shared_ptr<PriorDistribution<T>>
using likelihood_ptr = std::shared_ptr<LikelihoodFunction<T>>
using posterior_ptr = std::shared_ptr<PosteriorCalculator<T>>

Public static functions

static auto bayes_factor(BayesianAnalyzer& model1, BayesianAnalyzer& model2, const vector_type& data) -> T
Perform model comparison using Bayes factors.

Constructors, destructors, conversion operators

BayesianAnalyzer(std::optional<unsigned int> seed = std::nullopt)
Construct a Bayesian analyzer with optional configuration.

Public functions

void set_prior(prior_ptr prior)
Set the prior distribution for analysis.
void set_likelihood(likelihood_ptr likelihood)
Set the likelihood function for analysis.
auto update(const vector_type& data) -> posterior_ptr
Update beliefs with new data observation.
auto posterior_predictive(std::size_t n_samples) const -> vector_type
Calculate posterior predictive distribution.
auto credible_interval(T confidence = 0.95) const -> std::pair<T, T>
Get credible interval for parameter.
auto highest_density_interval(T confidence = 0.95) const -> std::pair<T, T>
Calculate highest density interval (HDI)
auto posterior_mean() const -> T
Get posterior mean estimate.
auto posterior_mode() const -> T
Get posterior mode (MAP estimate)
auto posterior_variance() const -> T
Get posterior variance.
void reset()
Reset analyzer to initial state.
auto get_diagnostics() const -> DiagnosticInfo

Function documentation

template<typename T>
static T liarsdice::bayesian::BayesianAnalyzer<T>::bayes_factor(BayesianAnalyzer& model1, BayesianAnalyzer& model2, const vector_type& data)

Perform model comparison using Bayes factors.

Parameters
model1 First model analyzer
model2 Second model analyzer
data Common data for both models
Returns Bayes factor (evidence ratio) favoring model1

template<typename T>
liarsdice::bayesian::BayesianAnalyzer<T>::BayesianAnalyzer(std::optional<unsigned int> seed = std::nullopt)

Construct a Bayesian analyzer with optional configuration.

Parameters
seed Optional seed for deterministic testing (nullopt for random)

template<typename T>
void liarsdice::bayesian::BayesianAnalyzer<T>::set_prior(prior_ptr prior)

Set the prior distribution for analysis.

Parameters
prior Shared pointer to prior distribution

template<typename T>
void liarsdice::bayesian::BayesianAnalyzer<T>::set_likelihood(likelihood_ptr likelihood)

Set the likelihood function for analysis.

Parameters
likelihood Shared pointer to likelihood function

template<typename T>
posterior_ptr liarsdice::bayesian::BayesianAnalyzer<T>::update(const vector_type& data)

Update beliefs with new data observation.

Parameters
data Vector of observed data points
Returns Updated posterior distribution

template<typename T>
vector_type liarsdice::bayesian::BayesianAnalyzer<T>::posterior_predictive(std::size_t n_samples) const

Calculate posterior predictive distribution.

Parameters
n_samples Number of samples to generate
Returns Vector of predictive samples

template<typename T>
std::pair<T, T> liarsdice::bayesian::BayesianAnalyzer<T>::credible_interval(T confidence = 0.95) const

Get credible interval for parameter.

Parameters
confidence Confidence level (e.g., 0.95 for 95%)
Returns Pair of (lower, upper) bounds

template<typename T>
std::pair<T, T> liarsdice::bayesian::BayesianAnalyzer<T>::highest_density_interval(T confidence = 0.95) const

Calculate highest density interval (HDI)

Parameters
confidence Confidence level
Returns Pair of (lower, upper) bounds for HDI