Changeset 170 for bdm/estim/arx.cpp

Show
Ignore:
Timestamp:
09/24/08 13:07:50 (16 years ago)
Author:
smidl
Message:

Mixtures of EF and related changes to libEF and BM

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • bdm/estim/arx.cpp

    r162 r170  
    33using namespace itpp; 
    44 
    5 void ARX::bayes ( const vec &dt ) { 
     5void ARX::bayes ( const vec &dt, const double w ) { 
    66        double lnc; 
    77 
    8         if (frg<1.0) { 
    9                 V*=frg; 
    10                 nu*=frg; 
    11                 if (evalll) { 
     8        if ( frg<1.0 ) { 
     9                est.pow ( frg ); 
     10                if ( evalll ) { 
    1211                        last_lognc = est.lognc(); 
    1312                } 
    1413        } 
    15         V.opupdt ( dt,1.0); 
    16         nu+=1.0; 
     14        V.opupdt ( dt,w ); 
     15        nu+=w; 
    1716 
    1817        if ( evalll ) { 
     
    2019                ll = lnc - last_lognc; 
    2120                last_lognc = lnc; 
    22                 tll +=ll; 
    2321        } 
    2422} 
    2523 
     24double ARX::logpred ( const vec &dt ) const { 
     25        egiw pred ( est ); 
     26        ldmat &V=pred._V(); 
     27        double &nu=pred._nu(); 
     28 
     29        double lll; 
     30 
     31        if ( frg<1.0 ) { 
     32                pred.pow ( frg ); 
     33                lll = pred.lognc(); 
     34        } 
     35        else  
     36                if(evalll){lll=last_lognc;}else{lll=pred.lognc();} 
     37 
     38        V.opupdt ( dt,1.0 ); 
     39        nu+=1.0; 
     40 
     41        return pred.lognc()-lll; 
     42} 
     43 
     44BM* ARX::_copy_ ( bool changerv) { 
     45        ARX* Tmp=new ARX ( *this ); 
     46        if ( changerv ) {Tmp->rv.newids(); Tmp->est._renewrv(Tmp->rv);} 
     47        return Tmp; 
     48} 
     49 
     50void ARX::set_statistics ( const BMEF* B0 ) { 
     51        const ARX* A0=dynamic_cast<const ARX*> ( B0 ); 
     52 
     53        it_assert_debug ( V.rows() ==A0->V.rows(),"ARX::set_statistics Statistics  differ" ); 
     54        set_parameters ( A0->V,A0->nu ); 
     55} 
    2656/*! \brief Return the best structure 
    2757@param Eg a copy of GiW density that is being examined 
     
    4878 
    4979 
    50 cout << "bb:(" << indeces <<") ll=" << Egll <<endl; 
     80        cout << "bb:(" << indeces <<") ll=" << Egll <<endl; 
    5181 
    5282        //try to remove only one rv 
     
    6292                tmpll = Eg.lognc()-Eg0.lognc(); // likelihood is difference of norm. coefs. 
    6393 
    64 cout << "i=(" << i <<") ll=" << tmpll <<endl; 
    65                  
     94                cout << "i=(" << i <<") ll=" << tmpll <<endl; 
     95 
    6696                // 
    6797                if ( tmpll > Egll ) { //increase of the likelihood