Class representing ratio of two densities which arise e.g. by applying the Bayes rule. It represents density in the form:
where . More...
Class representing ratio of two densities which arise e.g. by applying the Bayes rule. It represents density in the form:
where .
In particular this type of arise by conditioning of a mixture model.
At present the only supported operation is evallogcond().
#include <emix.h>
Public Member Functions | |
mratio (const epdf *nom0, const RV &rv, bool copy=false) | |
double | evallogcond (const vec &val, const vec &cond) |
Shortcut for conditioning and evaluation of the internal epdf. In some cases, this operation can be implemented efficiently. | |
void | ownnom () |
Object takes ownership of nom and will destroy it. | |
~mratio () | |
Default destructor. | |
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. | |
Matematical operations | |
virtual vec | samplecond (const vec &cond) |
Returns a sample from the density conditioned on cond , . | |
virtual mat | samplecond_m (const vec &cond, int N) |
Returns. | |
virtual vec | evallogcond_m (const mat &Dt, const vec &cond) |
Matrix version of evallogcond. | |
virtual vec | evallogcond_m (const Array< vec > &Dt, const vec &cond) |
Array<vec> version of evallogcond. | |
Access to attributes | |
const RV & | _rv () const |
const RV & | _rvc () const |
int | dimension () const |
int | dimensionc () |
Connection to other objects | |
void | set_rvc (const RV &rvc0) |
void | set_rv (const RV &rv0) |
bool | isnamed () |
Protected Member Functions | |
void | set_ep (epdf &iepdf) |
set internal pointer ep to point to given iepdf | |
void | set_ep (epdf *iepdfp) |
set internal pointer ep to point to given iepdf | |
Protected Attributes | |
const epdf * | nom |
Nominator in the form of mpdf. | |
shared_ptr< epdf > | den |
Denominator in the form of epdf. | |
bool | destroynom |
flag for destructor | |
datalink_m2e | dl |
datalink between conditional and nom | |
epdf | iepdf |
dummy epdf that stores only rv and dim | |
int | dimc |
dimension of the condition | |
RV | rvc |
random variable in condition |
Default constructor. By default, the given epdf is not copied! It is assumed that this function will be used only temporarily.
References bdm::RV::_dsize(), bdm::epdf::_rv(), bdm_assert_debug, bdm_error, den, destroynom, bdm::mpdf::dimc, dl, iepdf, bdm::RV::length(), bdm::epdf::marginal(), nom, bdm::mpdf::rvc, bdm::datalink_m2e::set_connection(), bdm::mpdf::set_ep(), bdm::epdf::set_rv(), and bdm::RV::subt().
void bdm::mpdf::from_setting | ( | const Setting & | set | ) | [virtual, inherited] |
Load from structure with elements:.
{ class = "mpdf_offspring", rv = {class="RV", names=(...),}; // RV describing meaning of random variable rvc= {class="RV", names=(...),}; // RV describing meaning of random variable in condition // elements of offsprings }
Reimplemented from bdm::root.
Reimplemented in bdm::mepdf, bdm::mprod, bdm::mlnorm< sq_T, TEpdf >, bdm::mgnorm< sq_T >, bdm::mgamma, bdm::migamma_ref, bdm::mlognorm, bdm::mlnorm< ldmat, enorm >, and bdm::mlnorm< chmat >.
virtual vec bdm::mpdf::samplecond | ( | const vec & | cond | ) | [inline, virtual, inherited] |
Returns a sample from the density conditioned on cond
, .
cond | is numeric value of rv |
Reimplemented in bdm::mpdf_internal< EPDF >, bdm::mepdf, bdm::mprod, bdm::mmix, bdm::mpdf_internal< enorm< sq_T > >, bdm::mpdf_internal< elognorm >, bdm::mpdf_internal< TEpdf< sq_T > >, bdm::mpdf_internal< egamma >, bdm::mpdf_internal< enorm< ldmat > >, bdm::mpdf_internal< eiWishartCh >, bdm::mpdf_internal< eigamma >, and bdm::mpdf_internal< enorm< chmat > >.
References bdm_error.
Referenced by bdm::MPF< BM_T >::bayes(), bdm::PF::bayes(), and bdm::mpdf::samplecond_m().
mat bdm::mpdf::samplecond_m | ( | const vec & | cond, | |
int | N | |||
) | [virtual, inherited] |
Returns.
N | samples from the density conditioned on cond , . | |
cond | is numeric value of rv |
Reimplemented in bdm::mpdf_internal< EPDF >, bdm::mpdf_internal< enorm< sq_T > >, bdm::mpdf_internal< elognorm >, bdm::mpdf_internal< TEpdf< sq_T > >, bdm::mpdf_internal< egamma >, bdm::mpdf_internal< enorm< ldmat > >, bdm::mpdf_internal< eiWishartCh >, bdm::mpdf_internal< eigamma >, and bdm::mpdf_internal< enorm< chmat > >.
References bdm::mpdf::samplecond().