bdm::merger_base Class Reference

Base class for general combination of pdfs on discrete support. More...

#include <merger.h>

List of all members.

Public Member Functions

void set_elements (Array< mpdf * > A0, bool own=false)
RV getrv (bool checkoverlap=false)
 find common rv, flag
void setrvc (const RV &rv, RV &rvc)
 common rvc of all mpdfs is written to rvc
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.
Constructors
 merger_base ()
 Empty constructor.
 merger_base (const Array< mpdf * > &S, bool own=false)
 Constructor from sources.
void set_sources (const Array< mpdf * > &Sources, bool own)
 Function setting the main internal structures.
void set_support (const Array< vec > &XYZ, const int dimsize)
 Rectangular support each vector of XYZ specifies (begining-end) interval for each dimension. Same number of points, dimsize, in each dimension.
void set_support (const Array< vec > &XYZ, const ivec &gridsize)
 Rectangular support each vector of XYZ specifies (begining-end) interval for each dimension. gridsize specifies number of points is each dimension.
void set_debug_file (const string fname)
 set debug file
void set_method (MERGER_METHOD MTH=DFLT_METHOD, double beta0=DFLT_beta)
 Set internal parameters used in approximation.
void set_support (const epdf &overall, int N)
 Set support points from a pdf by drawing N samples.
virtual ~merger_base ()
 Destructor.
Mathematical operations
virtual void merge ()
 Merge given sources in given points.
vec merge_points (mat &lW)
 Merge log-likelihood values in points using method specified by parameter METHOD.
vec mean () const
 weight w is a
mat covariance () const
vec variance () const
 return expected variance (not covariance!)
Access to attributes
eEmp_Smp ()
 Access function.
void from_setting (const Setting &set)
 load from setting
void validate ()
 This method TODO.
Constructors
Construction of each epdf should support two types of constructors:
  • empty constructor,
  • copy constructor,
The following constructors should be supported for convenience:
  • constructor followed by calling set_parameters()
  • constructor accepting random variables calling set_rv()
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)
Matematical Operations
virtual vec sample () const
 Returns a sample, $ x $ from density $ f_x()$.
virtual mat sample_m (int N) const
 Returns N samples, $ [x_1 , x_2 , \ldots \ $ from density $ f_x(rv)$.
virtual double evallog (const vec &val) const
 Compute log-probability of argument val.
virtual vec evallog_m (const mat &Val) const
 Compute log-probability of multiple values argument val.
virtual vec evallog_m (const Array< vec > &Avec) const
 Compute log-probability of multiple values argument val.
virtual mpdfcondition (const RV &rv) const
 Return conditional density on the given RV, the remaining rvs will be in conditioning.
virtual epdfmarginal (const RV &rv) const
 Return marginal density on the given RV, the remainig rvs are intergrated out.
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:

void set_rv (const RV &rv0)
 Name its rv.
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

Array< datalink_m2e * > dls
 Data link for each mpdf in mpdfs.
Array< RVrvzs
 Array of rvs that are not modelled by mpdfs at all, $ z_i $.
Array< datalink_m2e * > zdls
 Data Links for extension $ f(z_i|x_i,y_i) $.
int Npoints
 number of support points
int Nsources
 number of sources
MERGER_METHOD METHOD
 switch of the methoh used for merging
double beta
 Prior on the log-normal merging model.
eEmp eSmp
 Projection to empirical density (could also be piece-wise linear).
bool DBG
 debug or not debug
it_file * dbg_file
 debugging file
Array< mpdf * > mpdfs
 Elements of composition.
bool owning_mpdfs
int dim
 dimension of the random variable
RV rv
 Description of the random variable.

Static Protected Attributes

static const MERGER_METHOD DFLT_METHOD = LOGNORMAL
 Default for METHOD.
static const double DFLT_beta = 1.2
 default for beta


Detailed Description

Base class for general combination of pdfs on discrete support.

Mixtures of Gaussian densities are used internally. Switching to other densities should be trivial.

The merged pdfs are expected to be of the form:

\[ f(x_i|y_i), i=1..n \]

where the resulting merger is a density on $ \cup [x_i,y_i] $ . Note that all variables will be joined.

As a result of this feature, each source must be extended to common support

\[ f(z_i|y_i,x_i) f(x_i|y_i) f(y_i) i=1..n \]

where $ z_i $ accumulate variables that were not in the original source. These extensions are calculated on-the-fly.

However, these operations can not be performed in general. Hence, this class merges only sources on common support, $ y_i={}, z_i={}, \forall i $. For merging of more general cases, use offsprings merger_mix and merger_grid.


Member Function Documentation

RV bdm::compositepdf::getrv ( bool  checkoverlap = false  )  [inherited]

find common rv, flag

Parameters:
checkoverlap modifies whether overlaps are acceptable

References bdm::RV::add(), and bdm::compositepdf::mpdfs.

Referenced by set_sources().

vec bdm::merger_base::mean (  )  const [inline, virtual]

weight w is a

sample from merged density

Reimplemented from bdm::epdf.

References bdm::eEmp::_samples(), bdm::eEmp::_w(), bdm::epdf::dim, eSmp, and Npoints.

Referenced by variance().


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

Generated on Wed Jul 1 13:05:57 2009 for mixpp by  doxygen 1.5.8