Mixture of epdfs. More...
#include <emix.h>
Public Member Functions | |
| emix () | |
| Default constructor. | |
| void | set_parameters (const vec &w, const Array< shared_ptr< epdf > > &Coms) |
Set weights w and components Coms. | |
| vec | sample () const |
Returns a sample, from density . | |
| vec | mean () const |
| return expected value | |
| vec | variance () const |
| return expected variance (not covariance!) | |
| double | evallog (const vec &val) const |
Compute log-probability of argument val In case the argument is out of suport return -Infinity. | |
| vec | evallog_m (const mat &Val) const |
Compute log-probability of multiple values argument val. | |
| mat | evallog_M (const mat &Val) const |
| Auxiliary function that returns pdflog for each component. | |
| shared_ptr< epdf > | marginal (const RV &rv) const |
| Return marginal density on the given RV, the remainig rvs are intergrated out. | |
| void | marginal (const RV &rv, emix &target) const |
Update already existing marginal density target. | |
| shared_ptr< mpdf > | condition (const RV &rv) const |
| Return conditional density on the given RV, the remaining rvs will be in conditioning. | |
| vec & | _w () |
| returns a pointer to the internal mean value. Use with Care! | |
| shared_ptr< epdf > | _Coms (int i) |
| access function | |
| void | set_rv (const RV &rv) |
| Name its rv. | |
| void | from_setting (const Setting &set) |
| Load from structure with elements:. | |
| virtual string | to_string () |
| This method returns a basic info about the current instance. | |
| virtual void | to_setting (Setting &set) const |
| This method save all the instance properties into the Setting structure. | |
| virtual void | validate () |
| This method TODO. | |
Constructors | |
Construction of each epdf should support two types of constructors:
The following constructors should be supported for convenience:
All internal data structures are constructed as empty. Their values (including sizes) will be set by method | |
| void | set_parameters (int dim0) |
Matematical Operations | |
| virtual mat | sample_m (int N) const |
Returns N samples, from density . | |
| virtual vec | evallog_m (const Array< vec > &Avec) const |
Compute log-probability of multiple values argument val. | |
| virtual void | qbounds (vec &lb, vec &ub, double percentage=0.95) const |
Lower and upper bounds of percentage % quantile, returns mean-2*sigma as default. | |
Connection to other classes | |
| bool | isnamed () const |
| True if rv is assigned. | |
| const RV & | _rv () const |
| Return name (fails when isnamed is false). | |
Access to attributes | |
| int | dimension () const |
| Size of the random variable. | |
Protected Attributes | |
| vec | w |
| weights of the components | |
| Array< shared_ptr< epdf > > | Coms |
| Component (epdfs). | |
| int | dim |
| dimension of the random variable | |
| RV | rv |
| Description of the random variable. | |
Mixture of epdfs.
Density function:
where
is any density on random variable
, called component,
| void bdm::epdf::from_setting | ( | const Setting & | set | ) | [inline, virtual, inherited] |
Load from structure with elements:.
{ rv = {class="RV", names=(...),}; // RV describing meaning of random variable
// elements of offsprings
}
Reimplemented from bdm::root.
Reimplemented in bdm::mexEpdf, bdm::enorm< sq_T >, bdm::egiw, bdm::egamma, bdm::euni, bdm::merger_base, bdm::merger_mix, bdm::enorm< ldmat >, bdm::enorm< chmat >, and bdm::enorm< fsqmat >.
References bdm::epdf::set_rv().
| void bdm::emix::set_parameters | ( | const vec & | w, | |
| const Array< shared_ptr< epdf > > & | Coms | |||
| ) |
Set weights w and components Coms.
Shared pointers in Coms are kept inside this instance and shouldn't be modified after being passed to this method.
References bdm::epdf::_rv(), bdm_assert_debug, Coms, bdm::epdf::dim, bdm::epdf::dimension(), bdm::RV::equal(), bdm::epdf::isnamed(), set_rv(), and w.
Referenced by bdm::MixEF::epredictor(), and marginal().
1.6.1