Mixture of egiws. More...
Mixture of egiws.
#include <emix.h>
Public Member Functions | |
egiwmix () | |
Default constructor. | |
void | set_parameters (const vec &w, const Array< egiw * > &Coms, bool copy=false) |
vec | mean () const |
return expected value | |
vec | sample () const |
return a sample from the density | |
vec | variance () const |
return the expected variance | |
void | mean_mat (mat &M, mat &R) const |
expected values of the linear coefficient and the covariance matrix are written to M and R , respectively | |
double | evallog_nn (const vec &val) const |
In this instance, val= [theta, r]. For multivariate instances, it is stored columnwise val = [theta_1 theta_2 ... r_1 r_2 ]. | |
double | lognc () const |
logarithm of the normalizing constant, | |
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 |
vec & | _w () |
returns a pointer to the internal mean value. Use with Care! | |
void | ownComs () |
Auxiliary function for taking ownership of the Coms(). | |
egiw * | _Coms (int i) |
access function | |
void | set_rv (const RV &rv) |
Name its rv. | |
egiw * | approx () |
Approximation of a GiW mix by a single GiW pdf. | |
vec | est_theta () const |
LS estimate of . | |
ldmat | est_theta_cov () const |
Covariance of the LS estimate. | |
void | pow (double p) |
Power of the density, used e.g. to flatten the density. | |
virtual double | evallog (const vec &val) const |
Evaluate normalized log-probability. | |
virtual vec | evallog_m (const mat &Val) const |
Evaluate normalized log-probability for many samples. | |
virtual vec | evallog_m (const Array< vec > &Val) const |
Evaluate normalized log-probability for many samples. | |
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 | |
void | set_parameters (int dimx0, ldmat V0, double nu0=-1.0) |
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) |
Access attributes | |
ldmat & | _V () |
const ldmat & | _V () const |
double & | _nu () |
const double & | _nu () const |
void | from_setting (const Setting &set) |
Matematical Operations | |
virtual mat | sample_m (int N) const |
Returns N samples, from density . | |
virtual shared_ptr< mpdf > | condition (const RV &rv) const |
Return conditional density on the given RV, the remaining rvs will be in conditioning. | |
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< egiw * > | Coms |
Component (epdfs). | |
bool | destroyComs |
Flag if owning Coms. | |
ldmat | V |
Extended information matrix of sufficient statistics. | |
double | nu |
Number of data records (degrees of freedom) of sufficient statistics. | |
int | dimx |
Dimension of the output. | |
int | nPsi |
Dimension of the regressor. | |
int | dim |
dimension of the random variable | |
RV | rv |
Description of the random variable. |
void bdm::egiw::from_setting | ( | const Setting & | set | ) | [inline, virtual, inherited] |
Create Gauss-inverse-Wishart density
from structure
class = 'egiw'; V = []; // square matrix nu = []; // scalar \nu ((almost) degrees of freedom) // when missing, it will be computed to obtain proper pdf dimx = []; // dimension of the wishart part rv = RV({'name'}) // description of RV rvc = RV({'name'}) // description of RV in condition
Reimplemented from bdm::epdf.
References bdm::egiw::dimx, bdm::UI::get(), and bdm::egiw::nu.
void bdm::egiwmix::set_parameters | ( | const vec & | w, | |
const Array< egiw * > & | Coms, | |||
bool | copy = false | |||
) |
Set weights w
and components Coms
By default Coms are copied inside. Parameter copy
can be set to false if Coms live externally. Use method ownComs() if Coms should be destroyed by the destructor.
References bdm_assert_debug, bdm_error, Coms, destroyComs, bdm::epdf::dim, bdm::epdf::dimension(), and w.