Home > . > GetPosteriorParametersStatistics.m

GetPosteriorParametersStatistics

PURPOSE ^

stephane.adjemian@ens.fr [09-09-2005]

SYNOPSIS ^

function GetPosteriorParametersStatistics()

DESCRIPTION ^

 stephane.adjemian@ens.fr [09-09-2005]

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function GetPosteriorParametersStatistics()
0002 % stephane.adjemian@ens.fr [09-09-2005]
0003 global estim_params_ M_ options_ bayestopt_ oo_
0004 
0005 TeX       = options_.TeX;
0006 nblck     = options_.mh_nblck;
0007 nvx       = estim_params_.nvx;
0008 nvn       = estim_params_.nvn;
0009 ncx       = estim_params_.ncx;
0010 ncn       = estim_params_.ncn;
0011 np        = estim_params_.np ;
0012 nx        = nvx+nvn+ncx+ncn+np;
0013 
0014 DirectoryName = CheckPath('metropolis');
0015 load([ DirectoryName '/'  M_.fname '_mh_history'])
0016 FirstMhFile = record.KeepedDraws.FirstMhFile;
0017 FirstLine = record.KeepedDraws.FirstLine; ifil = FirstLine;
0018 TotalNumberOfMhFiles = sum(record.MhDraws(:,2))
0019 TotalNumberOfMhDraws = sum(record.MhDraws(:,1));
0020 FirstMhFile = record.KeepedDraws.FirstMhFile;
0021 NumberOfDraws = TotalNumberOfMhDraws-floor(options_.mh_drop*TotalNumberOfMhDraws);
0022 clear record;
0023 
0024 disp(' ')
0025 disp(' ')
0026 disp('ESTIMATION RESULTS')
0027 disp(' ')
0028 disp(sprintf('Log data density is %f.',oo_.MarginalDensity.ModifiedHarmonicMean))
0029 pnames=['     ';'beta ';'gamm ';'norm ';'invg ';'unif ';'invg2'];
0030 tit2 = sprintf('%10s %7s %10s %14s %4s %6s\n',' ','prior mean','post. mean','conf. interval','prior','pstdev');
0031 if np
0032   disp(' ')
0033   disp('parameters')
0034   disp(tit2)
0035   ip = nvx+nvn+ncx+ncn+1;
0036   for i=1:np
0037     Draws = GetAllPosteriorDraws(ip,FirstMhFile,FirstLine,TotalNumberOfMhFiles,NumberOfDraws);
0038     [post_mean, post_median, post_var, hpd_interval, post_deciles, density] = posterior_moments(Draws,1);
0039     name = bayestopt_.name{ip};
0040     disp(sprintf('%12s %7.3f %8.4f %7.4f %7.4f %4s %6.4f', ...
0041          name, ...
0042          bayestopt_.pmean(ip),post_mean,hpd_interval, ...
0043          pnames(bayestopt_.pshape(ip)+1,:), ...
0044          bayestopt_.pstdev(ip)));
0045     eval(['oo_.posterior_mean.parameters.' name ' = post_mean;']);
0046     eval(['oo_.posterior_hpdinf.parameters.' name ' = hpd_interval(1);']); 
0047     eval(['oo_.posterior_hpdsup.parameters.' name ' = hpd_interval(2);']);
0048     eval(['oo_.posterior_median.' name ' = post_median;']);
0049     eval(['oo_.posterior_variance.' name ' = post_var;']);
0050     eval(['oo_.posterior_deciles.' name ' = post_deciles;']);
0051     eval(['oo_.posterior_density.' name ' = density;']);    
0052     ip = ip+1;
0053   end
0054 end
0055 if nvx
0056   ip = 1;
0057   disp(' ')
0058   disp('standard deviation of shocks')
0059   disp(tit2)
0060   for i=1:nvx
0061     Draws = GetAllPosteriorDraws(ip,FirstMhFile,FirstLine,TotalNumberOfMhFiles,NumberOfDraws);
0062     [post_mean, post_median, post_var, hpd_interval, post_deciles, density] = posterior_moments(Draws,1);
0063     k = estim_params_.var_exo(i,1);
0064     name = deblank(M_.exo_names(k,:));
0065     disp(sprintf('%12s %7.3f %8.4f %7.4f %7.4f %4s %6.4f', ...
0066          name,bayestopt_.pmean(ip),post_mean, ...
0067          hpd_interval,pnames(bayestopt_.pshape(ip)+1,:), ...
0068          bayestopt_.pstdev(ip))); 
0069     M_.Sigma_e(k,k) = post_mean*post_mean;
0070     eval(['oo_.posterior_mean.shocks_std.' name ' = post_mean;']);
0071     eval(['oo_.posterior_hpdinf.shocks_std.' name ' = hpd_interval(1);']); 
0072     eval(['oo_.posterior_hpdsup.shocks_std.' name ' = hpd_interval(2);']);
0073     eval(['oo_.posterior_median.shocks_std.' name ' = post_median;']);
0074     eval(['oo_.posterior_variance.shocks_std.' name ' = post_var;']);
0075     eval(['oo_.posterior_deciles.shocks_std.' name ' = post_deciles;']);
0076     eval(['oo_.posterior_density.shocks_std.' name ' = density;']);
0077     ip = ip+1;
0078   end
0079 end
0080 if nvn
0081   disp(' ')
0082   disp('standard deviation of measurement errors')
0083   disp(tit2)
0084   ip = nvx+1;
0085   for i=1:nvn
0086     Draws = GetAllPosteriorDraws(ip,FirstMhFile,FirstLine,TotalNumberOfMhFiles,NumberOfDraws);
0087     [post_mean, post_median, post_var, hpd_interval, post_deciles, density] = posterior_moments(Draws,1);    
0088     name = deblank(options_.varobs(estim_params_.var_endo(i,1),:));
0089     disp(sprintf('%12s %7.3f %8.4f %7.4f %7.4f %4s %6.4f', ...
0090          name,...
0091          bayestopt_.pmean(ip), ...
0092          post_mean,hpd_interval, ...
0093          pnames(bayestopt_.pshape(ip)+1,:), ...
0094          bayestopt_.pstdev(ip)));
0095     eval(['oo_.posterior_mean.measurement_errors_std.' name  ' = post_mean;']);
0096     eval(['oo_.posterior_hpdinf.measurement_errors_std.' name ' = hpd_interval(1);']); 
0097     eval(['oo_.posterior_hpdsup.measurement_errors_std.' name ' = hpd_interval(2);']);              
0098     eval(['oo_.posterior_median.measurement_errors_std.' name ' = post_median;']);
0099     eval(['oo_.posterior_variance.measurement_errors_std.' name ' = post_var;']);
0100     eval(['oo_.posterior_deciles.measurement_errors_std.' name ' = post_deciles;']);
0101     eval(['oo_.posterior_density.measurement_errors_std.' name ' = density;']);    
0102     ip = ip+1;
0103   end
0104 end
0105 if ncx
0106   disp(' ')
0107   disp('correlation of shocks')
0108   disp(tit2)
0109   ip = nvx+nvn+1;
0110   for i=1:ncx
0111     Draws = GetAllPosteriorDraws(ip,FirstMhFile,FirstLine,TotalNumberOfMhFiles,NumberOfDraws);
0112     [post_mean, post_median, post_var, hpd_interval, post_deciles, density] = posterior_moments(Draws,1);
0113     k1 = estim_params_.corrx(i,1);
0114     k2 = estim_params_.corrx(i,2);
0115     name = [deblank(M_.exo_names(k1,:)) ',' deblank(M_.exo_names(k2,:))];
0116     NAME = [deblank(M_.exo_names(k1,:)) '_' deblank(M_.exo_names(k2,:))];
0117     disp(sprintf('%12s %7.3f %8.4f %7.4f %7.4f %4s %6.4f', name, ...
0118          bayestopt_.pmean(ip),post_mean,hpd_interval, ...
0119          pnames(bayestopt_.pshape(ip)+1,:), ...
0120          bayestopt_.pstdev(ip)));
0121     eval(['oo_.posterior_mean.shocks_corr.' NAME ' = post_mean;']);
0122     eval(['oo_.posterior_hpdinf.shocks_corr.' NAME ' = hpd_interval(1);']); 
0123     eval(['oo_.posterior_hpdsup.shocks_corr.' NAME ' = hpd_interval(2);']);
0124     eval(['oo_.posterior_median.shocks_corr.' NAME ' = post_median;']);
0125     eval(['oo_.posterior_variance.shocks_corr.' NAME ' = post_var;']);
0126     eval(['oo_.posterior_deciles.shocks_corr.' NAME ' = post_deciles;']);
0127     eval(['oo_.posterior_density.shocks_corr.' NAME ' = density;']);      
0128     M_.Sigma_e(k1,k2) = post_mean*sqrt(M_.Sigma_e(k1,k1)*M_.Sigma_e(k2,k2));
0129     M_.Sigma_e(k2,k1) = M_.Sigma_e(k1,k2);
0130     ip = ip+1;
0131   end
0132 end
0133 if ncn
0134   disp(' ')
0135   disp('correlation of measurement errors')
0136   disp(tit2)
0137   ip = nvx+nvn+ncx+1;
0138   for i=1:ncn
0139     Draws = GetAllPosteriorDraws(ip,FirstMhFile,FirstLine,TotalNumberOfMhFiles,NumberOfDraws);
0140     [post_mean, post_median, post_var, hpd_interval, post_deciles, density] = posterior_moments(Draws,1);
0141     k1 = estim_params_.corrn(i,1);
0142     k2 = estim_params_.corrn(i,2);
0143     name = [deblank(M_.endo_names(k1,:)) ',' deblank(M_.endo_names(k2,:))];
0144     NAME = [deblank(M_.endo_names(k1,:)) '_' deblank(M_.endo_names(k2,:))];
0145     disp(sprintf('%12s %7.3f %8.4f %7.4f %7.4f %4s %6.4f', name, ...
0146          bayestopt_.pmean(ip),post_mean,hpd_interval, ...
0147          pnames(bayestopt_.pshape(ip)+1,:), ...
0148          bayestopt_.pstdev(ip))); 
0149     eval(['oo_.posterior_mean.measurement_errors_corr.' NAME ' = post_mean;']);
0150     eval(['oo_.posterior_hpdinf.measurement_errors_corr.' NAME ' = hpd_interval(1);']); 
0151     eval(['oo_.posterior_hpdsup.measurement_errors_corr.' NAME ' = hpd_interval(2);']);      
0152     eval(['oo_.posterior_median.measurement_errors_corr.' NAME ' = post_median;']);
0153     eval(['oo_.posterior_variance.measurement_errors_corr.' NAME ' = post_var;']);
0154     eval(['oo_.posterior_deciles.measurement_errors_corr.' NAME ' = post_decile;']);
0155     eval(['oo_.posterior_density.measurement_errors_corr.' NAME ' = density;']);
0156     ip = ip+1;
0157   end
0158 end

Generated on Fri 16-Jun-2006 09:09:06 by m2html © 2003