From 98c809c54ed04f4081565ffbac1d202545b0d980 Mon Sep 17 00:00:00 2001 From: Marco Ratto Date: Fri, 15 Jun 2012 13:45:26 +0200 Subject: [PATCH] Further on nograph: moved printed output when advanced=1 from plot_identification to disp_identification. --- matlab/disp_identification.m | 30 +++++++++++++++++++++++++++++- matlab/dynare_identification.m | 10 +++++----- matlab/plot_identification.m | 20 ++++++++++++-------- 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/matlab/disp_identification.m b/matlab/disp_identification.m index 057981de8..16e25924b 100644 --- a/matlab/disp_identification.m +++ b/matlab/disp_identification.m @@ -1,4 +1,4 @@ -function disp_identification(pdraws, idemodel, idemoments, name) +function disp_identification(pdraws, idemodel, idemoments, name, advanced) % Copyright (C) 2008-2011 Dynare Team % @@ -19,6 +19,10 @@ function disp_identification(pdraws, idemodel, idemoments, name) global options_ +if nargin < 5 || isempty(advanced), + advanced=0; +end + [SampleSize, npar] = size(pdraws); % jok = 0; % jokP = 0; @@ -261,3 +265,27 @@ end % end % disp(' ') +% identificaton patterns +if SampleSize==1 && advanced, + disp(' ') + disp('Press ENTER to print advanced diagnostics'), pause(5), + for j=1:size(idemoments.cosnJ,2), + pax=NaN(npar,npar); + fprintf('\n') + disp(['Collinearity patterns with ', int2str(j) ,' parameter(s)']) + fprintf('%-15s [%-*s] %10s\n','Parameter',(15+1)*j,' Expl. params ','cosn') + for i=1:npar, + namx=''; + for in=1:j, + dumpindx = idemoments.pars{i,j}(in); + if isnan(dumpindx), + namx=[namx ' ' sprintf('%-15s','--')]; + else + namx=[namx ' ' sprintf('%-15s',name{dumpindx})]; + pax(i,dumpindx)=idemoments.cosnJ(i,j); + end + end + fprintf('%-15s [%s] %10.3f\n',name{i},namx,idemoments.cosnJ(i,j)) + end + end +end diff --git a/matlab/dynare_identification.m b/matlab/dynare_identification.m index 161212d02..fb8174a85 100644 --- a/matlab/dynare_identification.m +++ b/matlab/dynare_identification.m @@ -266,7 +266,7 @@ if iload <=0, % normJ = max(abs(siJ)')'; % normLRE = max(abs(siLRE)')'; save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_point', 'idemoments_point','idemodel_point', 'idelre_point','store_options_ident') - disp_identification(params, idemodel_point, idemoments_point, name); + disp_identification(params, idemodel_point, idemoments_point, name, advanced); if ~options_.nograph, plot_identification(params,idemoments_point,idehess_point,idemodel_point,idelre_point,advanced,parameters,name,IdentifDirectoryName); end @@ -441,7 +441,7 @@ end if iload, disp(['Testing ',parameters]) - disp_identification(idehess_point.params, idemodel_point, idemoments_point, name); + disp_identification(idehess_point.params, idemodel_point, idemoments_point, name,advanced); if ~options_.nograph, plot_identification(idehess_point.params,idemoments_point,idehess_point,idemodel_point,idelre_point,advanced,parameters,name,IdentifDirectoryName); end @@ -467,7 +467,7 @@ if SampleSize > 1, identification_analysis(pdraws(jmax,:),indx,indexo,options_ident,dataset_, prior_exist, name_tex,1); save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_max', 'idemoments_max','idemodel_max', 'idelre_max', 'jmax', '-append'); end - disp_identification(pdraws(jmax,:), idemodel_max, idemoments_max, name); + disp_identification(pdraws(jmax,:), idemodel_max, idemoments_max, name,1); close all, if ~options_.nograph, plot_identification(pdraws(jmax,:),idemoments_max,idehess_max,idemodel_max,idelre_max,1,tittxt,name,IdentifDirectoryName); @@ -482,7 +482,7 @@ if SampleSize > 1, identification_analysis(pdraws(jmin,:),indx,indexo,options_ident,dataset_, prior_exist, name_tex,1); save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_min', 'idemoments_min','idemodel_min', 'idelre_min', 'jmin', '-append'); end - disp_identification(pdraws(jmin,:), idemodel_min, idemoments_min, name); + disp_identification(pdraws(jmin,:), idemodel_min, idemoments_min, name,1); close all, if ~options_.nograph, plot_identification(pdraws(jmin,:),idemoments_min,idehess_min,idemodel_min,idelre_min,1,tittxt,name,IdentifDirectoryName); @@ -496,7 +496,7 @@ if SampleSize > 1, [idehess_(j), idemoments_(j), idemodel_(j), idelre_(j), derivatives_info_(j)] = ... identification_analysis(pdraws(jcrit(j),:),indx,indexo,options_ident,dataset_, prior_exist, name_tex,1); end - disp_identification(pdraws(jcrit(j),:), idemodel_(j), idemoments_(j), name); + disp_identification(pdraws(jcrit(j),:), idemodel_(j), idemoments_(j), name,1); close all, if ~options_.nograph, plot_identification(pdraws(jcrit(j),:),idemoments_(j),idehess_(j),idemodel_(j),idelre_(j),1,tittxt,name,IdentifDirectoryName); diff --git a/matlab/plot_identification.m b/matlab/plot_identification.m index c5e474d89..d439eb6a6 100644 --- a/matlab/plot_identification.m +++ b/matlab/plot_identification.m @@ -87,8 +87,10 @@ if SampleSize == 1, dyn_saveas(hh,[IdentifDirectoryName '/' M_.fname '_ident_strength_' tittxt1],options_); if advanced, - disp(' ') - disp('Press ENTER to display advanced diagnostics'), pause(5), + if ~options_.nodisplay, + disp(' ') + disp('Press ENTER to plot advanced diagnostics'), pause(5), + end hh = dyn_figure(options_,'Name',[tittxt, ' - Sensitivity plot']); subplot(211) mmm = (siJnorm)'./max(siJnorm); @@ -112,9 +114,9 @@ if SampleSize == 1, % identificaton patterns for j=1:size(idemoments.cosnJ,2), pax=NaN(nparam,nparam); - fprintf('\n') - disp(['Collinearity patterns with ', int2str(j) ,' parameter(s)']) - fprintf('%-15s [%-*s] %10s\n','Parameter',(15+1)*j,' Expl. params ','cosn') +% fprintf('\n') +% disp(['Collinearity patterns with ', int2str(j) ,' parameter(s)']) +% fprintf('%-15s [%-*s] %10s\n','Parameter',(15+1)*j,' Expl. params ','cosn') for i=1:nparam, namx=''; for in=1:j, @@ -126,7 +128,7 @@ if SampleSize == 1, pax(i,dumpindx)=idemoments.cosnJ(i,j); end end - fprintf('%-15s [%s] %10.3f\n',name{i},namx,idemoments.cosnJ(i,j)) +% fprintf('%-15s [%s] %10.3f\n',name{i},namx,idemoments.cosnJ(i,j)) end hh = dyn_figure(options_,'Name',[tittxt,' - Collinearity patterns with ', int2str(j) ,' parameter(s)']); imagesc(pax,[0 1]); @@ -228,8 +230,10 @@ else title('MC mean of sensitivity measures') dyn_saveas(hh,[ IdentifDirectoryName '/' M_.fname '_MC_sensitivity' ],options_); if advanced, - disp(' ') - disp('Press ENTER to display advanced diagnostics'), pause(5), + if ~options_.nodisplay, + disp(' ') + disp('Press ENTER to display advanced diagnostics'), pause(5), + end % options_.nograph=1; hh = dyn_figure(options_,'Name','MC Condition Number'); subplot(221)