void CollapsedSampler::update(){//{{{
   Sampler::update();

   sampleTheta();

   updateSums();
   if((doLog)&&(save))appendFile();
}//}}}
示例#2
0
void MCMCPkPg::sample( PkPgModel& model, PkPgResult& Result )//(SEXP dyn_eval, SEXP rho)
{
  cIter = 0;
  //int tidx = 0;
  //int chain = 0;
  // Result.InitializeSummary( model );
  int total_iter = nBURN + nTHIN * nSAMPLE;
  acceptTheta=zeros<mat>( model.N, total_iter );
  for( cIter = 0; cIter < total_iter; cIter++ ){      
    //std::cout << "iteration: "<< cIter << std::endl;
    Rprintf("iteration: %d\n", cIter+1);
    //for( chain = 0; chain < NCHAIN; chain++ ){
    //Rprintf("Update Omega theta\n");
    sampleOtheta( model, Result );

    if(flgSNP == 1){
        //Rprintf("Update Omega SNP\n");
        sampleOsnp( model, Result );
    
        //Rprintf("Update Z\n");
        sampleZ( model, Result );
    
        //Rprintf("Update Beta Pg\n");
        sampleBetaPg( model, Result );
        //Rprintf("Update Rho\n");
        sampleRho( model, Result );
    }

    //Rprintf("Update Beta Pk\n");
    sampleBetaPk( model, Result );

    // update Z*Rho
    // SNPs ---------------------------------------------------------------------

    //Rprintf("Update means\n");
    Result.update_mth( model );

    // PK -----------------------------------------------------------------------
    //Rprintf("Sample Sigma\n");
    sampleSigma( model, Result );

    //Rprintf("Update Fit\n");
    update_fit( model, Result );

    //Rprintf("Sample Theta\n");
    sampleTheta( model, Result );  // make sure Result.mTheta is up to date

    //Rprintf("Update Theta Bar\n");
    update_theta_bar( model, Result );

    //Rprintf("Update Sigma Theta\n");
    update_sigma_theta( model, Result );
    // update_fit_parallel( model, Result );

    //mcmc_Sth();
    // RJ -----------------------------------------------------------------------
    // 

    // record
    if( ( cIter >= nBURN ) && ( ( cIter - nBURN ) % nTHIN == 0 ) ) {
      Result.SaveDraws( model );
    }
  }
  Result.SaveFinal( model );
 } // END MCMC_main ---------------------------------------------------------------------