bdm::ARX Class Reference

#include <arx.h>

Inheritance diagram for bdm::ARX:

bdm::BMEF bdm::BM bdm::bdmroot

List of all members.


Detailed Description

Linear Autoregressive model with Gaussian noise.

Regression of the following kind:

\[ y_t = \theta_1 \psi_1 + \theta_2 + \psi_2 +\ldots + \theta_n \psi_n + r e_t \]

where unknown parameters rv are $[\theta r]$, regression vector $\psi=\psi(y_{1:t},u_{1:t})$ is a known function of past outputs and exogeneous variables $u_t$. Distrubances $e_t$ are supposed to be normally distributed:

\[ e_t \sim \mathcal{N}(0,1). \]

See Theory of ARX model estimation for mathematical treatment.

The easiest way how to use the class is:

#include <estim/arx.h>
using namespace bdm;
        
// estimation of AR(0) model
int main() {
        //prior 
        mat V0 = 0.00001*eye(2); V0(0,0)= 0.1; //
        ARX Ar; 
        Ar.set_statistics(1, V0); //nu is default (set to have finite moments)
                                                          // forgetting is default: 1.0
        mat Data = concat_vertical( randn(1,100), ones(1,100) );
        Ar.bayesB( Data); 
                        
        cout << "Expected value of Theta is: " << Ar.posterior().mean() <<endl;
}

Public Member Functions

void set_statistics (const BMEF *BM0)
 Set sufficient statistics.
BMEF_copy_ (bool changerv=false)
 Flatten the posterior as if to keep nu0 data.
Constructors
 ARX (const double frg0=1.0)
 ARX (const ARX &A0)
ARX_copy_ ()
void set_parameters (double frg0)
void set_statistics (int dimx0, const ldmat V0, double nu0=-1.0)
Mathematical operations
void bayes (const vec &dt, const double w)
 Weighted Bayes $ dt = [y_t psi_t] $.
void bayes (const vec &dt)
 Incremental Bayes rule.
double logpred (const vec &dt) const
void flatten (const BMEF *B)
 Flatten the posterior according to the given BMEF (of the same type!).
enorm< ldmat > * epredictor (const vec &rgr) const
 Conditioned version of the predictor.
enorm< ldmat > * epredictor () const
 Predictor for empty regressor.
mlnorm< ldmat > * predictor () const
 conditional version of the predictor
mlstudentpredictor_student () const
ivec structure_est (egiw Eg0)
 Brute force structure estimation.
Access attributes
const egiw_e () const
const egiwposterior () const
Connection
void set_drv (const RV &drv0)
RVget_yrv ()
Mathematical operations
virtual void bayesB (const mat &Dt)
 Batch Bayes rule (columns of Dt are observations).
vec logpred_m (const mat &dt) const
 Matrix version of logpred.
Access to attributes
const RV_drv () const
void set_rv (const RV &rv)
double _ll () const
void set_evalll (bool evl0)

Protected Attributes

int dimx
 size of output variable (needed in regressors)
RV _yrv
egiw est
 Posterior estimate of $\theta,r$ in the form of Normal-inverse Wishart density.
ldmatV
 cached value of est.V
double & nu
 cached value of est.nu
double frg
 forgetting factor
double last_lognc
 cached value of lognc() in the previous step (used in evaluation of ll )
RV drv
 Random variable of the data (optional).
double ll
 Logarithm of marginalized data likelihood.
bool evalll
 If true, the filter will compute likelihood of the data record and store it in ll . Set to false if you want to save computational time.

Member Function Documentation

ARX * bdm::ARX::_copy_ (  )  [virtual]

Copy function required in vectors, Arrays of BM etc. Have to be DELETED manually! Prototype:

 BM* _copy_(){return new BM(*this);} 

Reimplemented from bdm::BM.

void bdm::ARX::bayes ( const vec &  dt  )  [inline, virtual]

Incremental Bayes rule.

Parameters:
dt vector of input data

Reimplemented from bdm::BMEF.

References bayes().

double bdm::ARX::logpred ( const vec &  dt  )  const [virtual]

Evaluates predictive log-likelihood of the given data record I.e. marginal likelihood of the data with the posterior integrated out.

Reimplemented from bdm::BM.

References bdm::egiw::_nu(), bdm::egiw::_V(), est, bdm::BM::evalll, bdm::BMEF::frg, bdm::BMEF::last_lognc, bdm::egiw::lognc(), nu, ldmat::opupdt(), bdm::egiw::pow(), and V.

mlnorm< ldmat > * bdm::ARX::predictor (  )  const [virtual]

conditional version of the predictor

<----------- TODO

Reimplemented from bdm::BM.

References bdm::epdf::dimension(), est, bdm::egiw::mean_mat(), ldmat::rows(), bdm::mlnorm< sq_T >::set_parameters(), and V.

ivec bdm::ARX::structure_est ( egiw  Eg0  ) 

Brute force structure estimation.

Returns:
indeces of accepted regressors.

References bdm::epdf::dimension(), est, and bdm::egiw::lognc().


Member Data Documentation

RV bdm::ARX::_yrv [protected]

description of modelled data $ y_t $ in the likelihood function Do NOT access directly, only via get_yrv().


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

Generated on Mon Feb 16 10:06:31 2009 for mixpp by  doxygen 1.5.6