Show
Ignore:
Timestamp:
05/26/10 18:42:26 (14 years ago)
Author:
smidl
Message:

ARX validate

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • library/bdm/estim/arx.h

    r979 r990  
    4949        //! RV of regressor 
    5050        RV rgr; 
    51         //! length of the regressor 
     51        //! length of the regressor (without optional constant) 
    5252        int rgrlen; 
    5353        //! posterior density 
     
    139139                est.validate(); 
    140140                //if dimc not set set it from V 
    141                 if ( dimc == 0 ) { 
    142                         dimc = posterior()._V().rows() - dimy - int ( have_constant == true ); 
     141                if(dimy>0) {//statistics is assigned 
     142                        if (posterior()._V().rows()>dimy) {//statistics is assigned 
     143                                rgrlen=posterior()._V().rows() - dimy - int ( have_constant == true ); 
     144                        } 
     145                } else{ 
     146                        bdm_error("No posterior or yrv assigned matrix assigned"); 
    143147                } 
    144  
    145                 if ( have_constant ) { 
    146                         dyad = ones ( dimy + dimc + 1 ); 
    147                 } else { 
    148                         dyad = zeros ( dimy + dimc ); 
     148                dimc =rgrlen; 
     149                 
     150                if(est._dimx()==0) { // no prior  
     151                        est.set_parameters(dimy, zeros(dimy+rgrlen+int(have_constant==true))); 
     152                        set_prior_default(est); 
    149153                } 
    150  
     154                if (alter_est.dimension()==0) alter_est=est; 
     155 
     156                dyad = ones ( est._V().rows() ); 
    151157        } 
    152158        //! function sets prior and alternative density 
     
    194200 
    195201        void bayes ( const vec &val, const vec &cond ) { 
    196                 int arx_cond_size=rgrlen -int(have_constant==true); 
    197                 bdm_assert_debug(cond.size()>arx_cond_size, "ARXfrg: Insufficient conditioning, frg not given."); 
    198                 frg = cond ( arx_cond_size ); // the first part after rgrlen 
    199                 ARX::bayes ( val, cond.left(arx_cond_size) ); 
     202                bdm_assert_debug(cond.size()>rgrlen, "ARXfrg: Insufficient conditioning, frg not given."); 
     203                frg = cond ( rgrlen); // the first part after rgrlen 
     204                ARX::bayes ( val, cond.left(rgrlen) ); 
    200205        } 
    201206        void validate() {