bdm::egiwmix Class Reference

Mixture of egiws. More...


Detailed Description

Mixture of egiws.

#include <emix.h>

List of all members.

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, $\mathcal{I}$
shared_ptr< epdfmarginal (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.
egiwapprox ()
 Approximation of a GiW mix by a single GiW pdf.
vec est_theta () const
 LS estimate of $\theta$.
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:

  • empty constructor,
  • copy constructor,

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 set_parameters(). This way references can be initialized in constructors.



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, $ [x_1 , x_2 , \ldots \ $ from density $ f_x(rv)$.
virtual shared_ptr< mpdfcondition (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

Description of the random quantity via attribute rv is optional. For operations such as sampling rv does not need to be set. However, for marginalization and conditioning rv has to be set. NB:



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.

Member Function Documentation

void bdm::egiw::from_setting ( const Setting &  set  )  [inline, virtual, inherited]

Create Gauss-inverse-Wishart density

\[ f(rv) = GiW(V,\nu) \]

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.


The documentation for this class was generated from the following files:

Generated on Wed Sep 16 22:33:34 2009 for mixpp by  doxygen 1.6.1