Changeset 679 for library/bdm/stat
- Timestamp:
- 10/23/09 00:05:25 (15 years ago)
- Location:
- library/bdm/stat
- Files:
-
- 4 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/stat/exp_family.cpp
r678 r679 14 14 /////////// 15 15 16 void BMEF::bayes ( const vec &dt) {17 this->bayes ( dt, 1.0 );16 void BMEF::bayes( const vec &yt, const vec &cond ) { 17 this->bayes_weighted ( yt, cond, 1.0 ); 18 18 }; 19 19 -
library/bdm/stat/exp_family.h
r678 r679 96 96 97 97 //! Weighted update of sufficient statistics (Bayes rule) 98 virtual void bayes (const vec &data, const double w) {};98 virtual void bayes_weighted (const vec &data, const vec &cond=empty_vec, const double w=1.0) {}; 99 99 //original Bayes 100 void bayes (const vec & dt);100 void bayes (const vec &yt, const vec &cond=empty_vec); 101 101 102 102 //!Flatten the posterior according to the given BMEF (of the same type!) … … 436 436 //! Sets sufficient statistics to match that of givefrom mB0 437 437 void set_statistics (const BM* mB0) {const multiBM* mB = dynamic_cast<const multiBM*> (mB0); beta = mB->beta;} 438 void bayes (const vec & dt) {438 void bayes (const vec &yt, const vec &cond=empty_vec) { 439 439 if (frg < 1.0) {beta *= frg;last_lognc = est.lognc();} 440 beta += dt;440 beta += yt; 441 441 if (evalll) {ll = est.lognc() - last_lognc;} 442 442 } 443 double logpred (const vec & dt) const {443 double logpred (const vec &yt) const { 444 444 eDirich pred (est); 445 445 vec &beta = pred._beta(); … … 452 452 else{lll = pred.lognc();} 453 453 454 beta += dt;454 beta += yt; 455 455 return pred.lognc() - lll; 456 456 } … … 832 832 } 833 833 void condition (const vec &cond) { 834 iepdf._mu() = A * cond + mu_const; 834 if (cond.length()>0) { 835 iepdf._mu() = A * cond + mu_const; 836 } else { 837 iepdf._mu() = mu_const; 838 } 835 839 double zeta; 836 840 //ugly hack! -
library/bdm/stat/merger.cpp
r565 r679 103 103 //Re-Initialize Mixture model 104 104 Mix.flatten ( &Mix_init ); 105 Mix.bayesB ( Smp_ex, w*Npoints );105 Mix.bayesB ( Smp_ex,empty_vec, w*Npoints ); 106 106 delete Mpred; 107 107 Mpred = Mix.epredictor ( ); // Allocation => must be deleted at the end!! -
library/bdm/stat/merger.h
r569 r679 342 342 } 343 343 //! loglikelihood computed on mixture models 344 double evallog ( const vec & dt ) const {345 vec dtf = ones ( dt.length() + 1 );346 dtf.set_subvector ( 0, dt );344 double evallog ( const vec &yt ) const { 345 vec dtf = ones ( yt.length() + 1 ); 346 dtf.set_subvector ( 0, yt ); 347 347 return Mix.logpred ( dtf ); 348 348 }