irf files are now reshaped in PosteriorIRF.
git-svn-id: https://www.dynare.org/svn/dynare/dynare_v4@667 ac1d8469-bf42-47a9-8791-bf33cf982152time-shift
parent
3a4db43a83
commit
88098dfb5a
|
@ -11,14 +11,12 @@ offset = npar-np;
|
||||||
%%
|
%%
|
||||||
MaxNumberOfPlotPerFigure = 9;% The square root must be an integer!
|
MaxNumberOfPlotPerFigure = 9;% The square root must be an integer!
|
||||||
nn = sqrt(MaxNumberOfPlotPerFigure);
|
nn = sqrt(MaxNumberOfPlotPerFigure);
|
||||||
|
|
||||||
DirectoryName = CheckPath('Output');
|
DirectoryName = CheckPath('Output');
|
||||||
if strcmpi(type,'posterior')
|
if strcmpi(type,'posterior')
|
||||||
MhDirectoryName = CheckPath('metropolis');
|
MhDirectoryName = CheckPath('metropolis');
|
||||||
else
|
else
|
||||||
MhDirectoryName = CheckPath('prior');
|
MhDirectoryName = CheckPath('prior');
|
||||||
end
|
end
|
||||||
|
|
||||||
MAX_nirfs = ceil(options_.MaxNumberOfBytes/(options_.irf*length(oo_.steady_state)*M_.exo_nbr)/8)+50;
|
MAX_nirfs = ceil(options_.MaxNumberOfBytes/(options_.irf*length(oo_.steady_state)*M_.exo_nbr)/8)+50;
|
||||||
|
|
||||||
if strcmpi(type,'posterior')
|
if strcmpi(type,'posterior')
|
||||||
|
@ -29,7 +27,9 @@ else% type = 'prior'
|
||||||
NumberOfDraws = 500;
|
NumberOfDraws = 500;
|
||||||
end
|
end
|
||||||
B = min([round(.5*NumberOfDraws),500]);
|
B = min([round(.5*NumberOfDraws),500]);
|
||||||
|
try delete([MhDirectoryName '/' M_.fname '_IRFs*']);
|
||||||
|
catch disp('No _IRFs files to delete!')
|
||||||
|
end
|
||||||
irun = 0;
|
irun = 0;
|
||||||
ifil = 1;
|
ifil = 1;
|
||||||
if strcmpi(type,'posterior')
|
if strcmpi(type,'posterior')
|
||||||
|
@ -37,7 +37,7 @@ if strcmpi(type,'posterior')
|
||||||
else
|
else
|
||||||
h = waitbar(0,'Bayesian (prior) IRFs...');
|
h = waitbar(0,'Bayesian (prior) IRFs...');
|
||||||
end
|
end
|
||||||
if B >= MAX_nirfs
|
if B >= MAX_nirfs
|
||||||
stock_irf = zeros(options_.irf,M_.endo_nbr,M_.exo_nbr,MAX_nirfs);
|
stock_irf = zeros(options_.irf,M_.endo_nbr,M_.exo_nbr,MAX_nirfs);
|
||||||
else
|
else
|
||||||
stock_irf = zeros(options_.irf,M_.endo_nbr,M_.exo_nbr,B);
|
stock_irf = zeros(options_.irf,M_.endo_nbr,M_.exo_nbr,B);
|
||||||
|
@ -73,7 +73,40 @@ for b=1:B
|
||||||
waitbar(b/B,h);
|
waitbar(b/B,h);
|
||||||
end
|
end
|
||||||
ifil = ifil-1;
|
ifil = ifil-1;
|
||||||
close(h)
|
close(h);
|
||||||
|
|
||||||
|
%% Now I reshape the _irf files...
|
||||||
|
IRFfiles = dir([MhDirectoryName '/' M_.fname '_irf*']);
|
||||||
|
NumberOfIRFfiles = length(IRFfiles);
|
||||||
|
if NumberOfIRFfiles>1
|
||||||
|
NumberOfPeriodsPerIRFfiles = ceil(options_.irf/NumberOfIRFfiles);
|
||||||
|
reste = options_.irf-NumberOfPeriodsPerIRFfiles*(NumberOfIRFfiles-1);
|
||||||
|
idx = 0;
|
||||||
|
jdx = 0;
|
||||||
|
for f1=1:NumberOfIRFfiles-1
|
||||||
|
STOCK_IRF = zeros(NumberOfPeriodsPerIRFfiles,M_.endo_nbr,M_.exo_nbr,B);
|
||||||
|
for f2 = 1:NumberOfIRFfiles
|
||||||
|
load([MhDirectoryName '/' M_.fname '_irf' int2str(f2)]);
|
||||||
|
STOCK_IRF(:,:,:,idx+1:idx+size(stock_irf,4)) = stock_irf(jdx+1:jdx+NumberOfPeriodsPerIRFfiles,:,:,:);
|
||||||
|
idx = idx+size(stock_irf,4);
|
||||||
|
end
|
||||||
|
save([MhDirectoryName '/' M_.fname '_IRFs' int2str(f1)],'STOCK_IRF');
|
||||||
|
jdx = jdx + NumberOfPeriodsPerIRFfiles;
|
||||||
|
idx = 0;
|
||||||
|
end
|
||||||
|
STOCK_IRF = zeros(reste,M_.endo_nbr,M_.exo_nbr,B);
|
||||||
|
for f2 = 1:NumberOfIRFfiles
|
||||||
|
load([MhDirectoryName '/' M_.fname '_irf' int2str(f2)]);
|
||||||
|
STOCK_IRF(:,:,:,idx+1:idx+size(stock_irf,4)) = stock_irf(jdx+1:jdx+reste,:,:,:);
|
||||||
|
idx = idx+size(stock_irf,4);
|
||||||
|
end
|
||||||
|
save([MhDirectoryName '/' M_.fname '_IRFs' int2str(NumberOfIRFfiles)],'STOCK_IRF');
|
||||||
|
end
|
||||||
|
for file = 1:NumberOfIRFfiles
|
||||||
|
delete([MhDirectoryName '/' M_.fname '_irf' int2str(file) '.mat'])
|
||||||
|
end
|
||||||
|
%% ... Done!
|
||||||
|
|
||||||
varlist = options_.varlist;
|
varlist = options_.varlist;
|
||||||
if isempty(varlist)
|
if isempty(varlist)
|
||||||
varlist = M_.endo_names;
|
varlist = M_.endo_names;
|
||||||
|
@ -101,23 +134,21 @@ if options_.TeX
|
||||||
end
|
end
|
||||||
fprintf('MH: Posterior IRFs...\n');
|
fprintf('MH: Posterior IRFs...\n');
|
||||||
tit(M_.exo_names_orig_ord,:) = M_.exo_names;
|
tit(M_.exo_names_orig_ord,:) = M_.exo_names;
|
||||||
for i = 1:M_.exo_nbr
|
kdx = 0;
|
||||||
for j = 1:nvar
|
for file = 1:NumberOfIRFfiles
|
||||||
for k = 1:options_.irf
|
load([MhDirectoryName '/' M_.fname '_IRFs' int2str(file)]);
|
||||||
StartLine = 0;
|
for i = 1:M_.exo_nbr
|
||||||
tmp = zeros(B,1);
|
for j = 1:nvar
|
||||||
for file = 1:ifil
|
for k = 1:size(STOCK_IRF,1)
|
||||||
load([MhDirectoryName '/' M_.fname '_irf' int2str(file)]);
|
kk = k+kdx;
|
||||||
DeProfundis = size(stock_irf,4);
|
[MeanIRF(kk,j,i),MedianIRF(kk,j,i),VarIRF(kk,j,i),HPDIRF(kk,:,j,i),DistribIRF(kk,:,j,i)] = ...
|
||||||
tmp(StartLine+1:StartLine+DeProfundis) = squeeze(stock_irf(k,SelecVariables(j),i,:));
|
posterior_moments(squeeze(STOCK_IRF(k,SelecVariables(j),i,:)),0);
|
||||||
StartLine = StartLine+DeProfundis;
|
|
||||||
end
|
end
|
||||||
[MeanIRF(k,j,i),MedianIRF(k,j,i),VarIRF(k,j,i),HPDIRF(k,:,j,i),DistribIRF(k,:,j,i)] = posterior_moments(tmp,0);
|
|
||||||
end
|
end
|
||||||
disp([' Variable: ' deblank(M_.endo_names(SelecVariables(j),:)) ', orthogonalized shock to ' deblank(tit(i,:))])
|
|
||||||
end
|
end
|
||||||
end
|
kdx = kdx + size(STOCK_IRF,1);
|
||||||
clear stock_irf;
|
end
|
||||||
|
clear STOCK_IRF;
|
||||||
for i = 1:M_.exo_nbr
|
for i = 1:M_.exo_nbr
|
||||||
for j = 1:nvar
|
for j = 1:nvar
|
||||||
name = [deblank(M_.endo_names(SelecVariables(j),:)) '_' deblank(tit(i,:))];
|
name = [deblank(M_.endo_names(SelecVariables(j),:)) '_' deblank(tit(i,:))];
|
||||||
|
|
Loading…
Reference in New Issue