template<typename T = double>
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_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 |