Class fit_bayes (o2scl)¶
-
template<class fit_func_t = fit_funct, class multi_func_t = uniform_prior<>, class vec_t = boost::numeric::ublas::vector<double>>
class fit_bayes¶ Fit a function to data using Bayesian methods.
This class is experimental.
This class uses Markov Chain Monte Carlo (MCMC) and marginal estimation to give a probability distribution for parameters in a fit.
- Idea for Future:
Also make weight_fun() an object of type multi_func_t?
Offer two ways to do the evidence: direct MC or the interpolation method from SLB13
Build upon gen_fit_funct instead of fit_funct?
Public Types
-
typedef boost::numeric::ublas::vector<double> ubvector¶
-
typedef boost::numeric::ublas::matrix<double> ubmatrix¶
-
typedef boost::numeric::ublas::vector<int> ubvector_int¶
Public Functions
-
inline fit_bayes()¶
-
inline virtual void evidence(size_t ndat, vec_t &xdat, vec_t &ydat, vec_t &yerr, size_t npar, vec_t &plo2, vec_t &phi2, multi_func_t &prior_fun, double &evi, double &err)¶
Compute the evidence.
-
inline virtual double weight_fun(size_t ndat, const vec_t &xdat, const vec_t &ydat, const vec_t &yerr, size_t npar, const vec_t &par)¶
The weight function (based on a \( \chi^2 \) distribution)
-
inline virtual int fit(size_t ndat, vec_t &xdat, vec_t &ydat, vec_t &yerr, size_t npar, vec_t &plo2, vec_t &pmax, vec_t &phi2, vec_t &plo_err, vec_t &pmax_err, vec_t &phi_err, fit_func_t &fitfun, multi_func_t &prior_fun)¶
Fit
ndat
data points inxdat
andydat
with errorsyerr
to functionfitfun
withnpar
parameters.The initial values of the parameters should be specified in
par
.
-
inline virtual int fit_hist(size_t ndat, vec_t &xdat, vec_t &ydat, vec_t &yerr, size_t npar, vec_t &plo2, vec_t &phi2, std::vector<hist> &par_hist, fit_func_t &fitfun, multi_func_t &prior_fun)¶
Desc.
For each measurement block, this function collects the data for all the parameters into 1d histogram objects. Then, at the end of the block, the histogram information is added to a hist object for each parameter.
Public Members
-
size_t n_warm_up¶
Number of warmup iterations (default 100)
-
size_t n_iter¶
Number of total iterations (default 1000)
-
size_t hsize¶
Histogram size (default 20)
-
size_t nmeas¶
Number of measurements (default 20)
-
multi_func_t *pri¶
Prior distribution.
-
mcarlo_vegas def_inte¶
Default Monte Carlo integrator.
Protected Functions