Changeset 170 for bdm/estim/arx.cpp
- Timestamp:
- 09/24/08 13:07:50 (16 years ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
bdm/estim/arx.cpp
r162 r170 3 3 using namespace itpp; 4 4 5 void ARX::bayes ( const vec &dt ) {5 void ARX::bayes ( const vec &dt, const double w ) { 6 6 double lnc; 7 7 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 ) { 12 11 last_lognc = est.lognc(); 13 12 } 14 13 } 15 V.opupdt ( dt, 1.0);16 nu+= 1.0;14 V.opupdt ( dt,w ); 15 nu+=w; 17 16 18 17 if ( evalll ) { … … 20 19 ll = lnc - last_lognc; 21 20 last_lognc = lnc; 22 tll +=ll;23 21 } 24 22 } 25 23 24 double 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 44 BM* 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 50 void 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 } 26 56 /*! \brief Return the best structure 27 57 @param Eg a copy of GiW density that is being examined … … 48 78 49 79 50 cout << "bb:(" << indeces <<") ll=" << Egll <<endl;80 cout << "bb:(" << indeces <<") ll=" << Egll <<endl; 51 81 52 82 //try to remove only one rv … … 62 92 tmpll = Eg.lognc()-Eg0.lognc(); // likelihood is difference of norm. coefs. 63 93 64 cout << "i=(" << i <<") ll=" << tmpll <<endl;65 94 cout << "i=(" << i <<") ll=" << tmpll <<endl; 95 66 96 // 67 97 if ( tmpll > Egll ) { //increase of the likelihood