0001 function [post_mean, post_median, post_var, hpd_interval, post_deciles, density] = posterior_moments(xx,info)
0002
0003
0004 global options_
0005
0006 xx = xx(:);
0007 xx = sort(xx);
0008
0009
0010 post_mean = mean(xx);
0011 post_median = median(xx);
0012 post_var = var(xx);
0013
0014 n = length(xx);
0015 m = round((1-options_.mh_conf_sig)*n);
0016 k = zeros(m,1);
0017 jj = n-m;
0018 for ii = 1:m
0019 k(ii) = xx(jj)-xx(ii);
0020 jj = jj + 1;
0021 end
0022 [kmin,idx] = min(k);
0023 hpd_interval = [xx(idx) xx(idx)+kmin];
0024
0025 post_deciles = xx([round(0.1*n) ...
0026 round(0.2*n)...
0027 round(0.3*n)...
0028 round(0.4*n)...
0029 round(0.5*n)...
0030 round(0.6*n)...
0031 round(0.7*n)...
0032 round(0.8*n)...
0033 round(0.9*n)]);
0034
0035 if ~info
0036 density = [];
0037 else
0038 number_of_grid_points = 2^9;
0039 bandwidth = 0;
0040 kernel_function = 'gaussian';
0041 optimal_bandwidth = mh_optimal_bandwidth(xx,length(xx),bandwidth,kernel_function);
0042 [density(:,1),density(:,2)] = kernel_density_estimate(xx,number_of_grid_points,optimal_bandwidth,kernel_function);
0043 end