-
Notifications
You must be signed in to change notification settings - Fork 4
/
plot_trans_irf.m
90 lines (75 loc) · 2.77 KB
/
plot_trans_irf.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
if ~exist('clear_flag', 'var'), clear_flag = 1; end
if usejava('desktop') && clear_flag
clear;
end
close all;
respath='./';
% outpath='./Results2/';
outpath='./Results/';
if ~exist('resfile','var')
resfile='res_20200904_bench';
end
outfile=['GR_',resfile];
grayscale=0;
reportLevels=1;
batchMode=0;
relative_irf=1;
load([respath,resfile,'.mat']);
load([respath,'sim_',resfile,'.mat']);
load([respath,'GR_',resfile,'.mat']);
close all;
% Make Graphs
outpath=[outpath,outfile,'_'];
if relative_irf, outpath = [outpath, 'diff_']; end
tvec=0:NT_sim-1;
% file names for graphs (set to empty for no printing)
printfiles={[outpath,'IRF1'],[outpath,'IRF2'],[outpath,'IRF3'],[outpath,'IRF4']};
% which variables
brsel1=[indexmap.get('Y'),indexmap.get('sig_epsY'),indexmap.get('P'),indexmap.get('Lrate'),...
indexmap.get('totlev_m'), indexmap.get('totdep'), indexmap.get('Mspr'),indexmap.get('eI')];
brsel2=[indexmap.get('Defrate'),indexmap.get('MsprY'),indexmap.get('MsprM'),...
indexmap.get('eI'),indexmap.get('totdep'),indexmap.get('R')];
brsel3=[indexmap.get('Lrate'),indexmap.get('totmdebt'),indexmap.get('xI'), ...
indexmap.get('cY'),indexmap.get('cM'),indexmap.get('cO')];
brsel4=[indexmap.get('DefY'), indexmap.get('DefM'),indexmap.get('dY'), ...
indexmap.get('dM'), indexmap.get('DWL'),indexmap.get('I')];
% How many shocks to plot (one less for relative)
if relative_irf
N_shock_plot = N_shock - 1;
else
N_shock_plot = N_shock;
end
brsel_all=[brsel1,brsel2,brsel3,brsel4];
nvar=length(brsel_all);
brseries_gr=zeros(N_shock_plot, NT_sim, nvar);
for s=1:N_shock_plot
if relative_irf
if reportLevels==1
brseries_gr(s,:,:) = simseries_diff_mean{s+1}(:,brsel_all);
else
brseries_gr(s,:,:) = 100*(simseries_diff_mean{s+1}(:,brsel_all) ./ repmat(simseries_diff_mean{s+1}(1,brsel_all),NT_sim,1)-1);
end
else
if reportLevels==1
brseries_gr(s,:,:) = simseries_mean{s}(:,brsel_all);
else
brseries_gr(s,:,:) = 100*(simseries_mean{s}(:,brsel_all) ./ repmat(simseries_mean{s}(1,brsel_all),NT_sim,1)-1);
end
end
end
colors={'b-o','r-o'};
if N_shock_plot==3
colors = ['k-o',colors];
end
titles1={'Income','Housing Risk','House price','Loss rate','Leverage', 'Deposits','Mortg. Spread','Bank equity'};
titles2={'Default rate','Mortg. spread Y','Mortg. spread M','Bank equity','Deposits','Riskfree rate'};
titles3 = {'Loss rate','Mort Debt', 'Net dividend','Consumption Y','Consumption M','Consumption O'};
titles4 = {'Def rate Y', 'Def rate M', 'Deposits Y', ...
'Deposits M', 'DWL', 'Equ issuance'};
if usejava('desktop')
makeImpRes(brseries_gr(:,:,1:8),tvec,titles1,colors,[2,4],[],printfiles{1});
end
if batchMode
close all;
clear;
end