% REad the results
%% Parameters Estimates
close all

ste = strvcat('A','B','Z','C','D');

for j=1:5
    load(['sw_' ste(j) '_results'])
    results(1,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.crhoa, oo_.posterior_hpdsup.parameters.crhoa];
    results(2,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.crhog, oo_.posterior_hpdsup.parameters.crhog];
    results(3,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.crhoqs, oo_.posterior_hpdsup.parameters.crhoqs];
    results(4,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cgy, oo_.posterior_hpdsup.parameters.cgy];
    results(5,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.csigl, oo_.posterior_hpdsup.parameters.csigl];
    results(6,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.csigma, oo_.posterior_hpdsup.parameters.csigma];
    results(7,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.chabb, oo_.posterior_hpdsup.parameters.chabb];
    if j == 4, 
        results(8,2*(j-1)+1:2*j) = [0,0];
    else
        results(8,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cindw, oo_.posterior_hpdsup.parameters.cindw];
    end
    results(9,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cindp, oo_.posterior_hpdsup.parameters.cindp];
    results(10,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cprobw, oo_.posterior_hpdsup.parameters.cprobw];
    results(11,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cprobp, oo_.posterior_hpdsup.parameters.cprobp];
    results(12,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cfc, oo_.posterior_hpdsup.parameters.cfc];
    results(13,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.czcap, oo_.posterior_hpdsup.parameters.czcap];
    results(14,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.csadjcost, oo_.posterior_hpdsup.parameters.csadjcost];
    results(15,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.calfa, oo_.posterior_hpdsup.parameters.calfa];
    results(16,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.crpi, oo_.posterior_hpdsup.parameters.crpi];
    if j == 5, 
        results(17:19,2*(j-1)+1:2*j) = [0,0;0 ,0;0,0 ];
    else
        results(17,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.cry, oo_.posterior_hpdsup.parameters.cry];
        results(18,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.crr, oo_.posterior_hpdsup.parameters.crr];
        results(19,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.parameters.crdy, oo_.posterior_hpdsup.parameters.crdy];
end

    results(20,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.shocks_std.ea, oo_.posterior_hpdsup.shocks_std.ea];
    results(21,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.shocks_std.eg, oo_.posterior_hpdsup.shocks_std.eg];
    results(22,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.shocks_std.eqs, oo_.posterior_hpdsup.shocks_std.eqs];
    results(23,2*(j-1)+1:2*j) = [oo_.posterior_hpdinf.shocks_std.em, oo_.posterior_hpdsup.shocks_std.em];

end


           
paraest_names=strvcat('crhoa','crhog','crhoqs','cgy','csigl','csigma',...
    'chabb','cindw','cindp','cprobw','cprobp','cfc','czcap','csadjcost',...
    'calfa','crpi','cry','crr','crdy','sderr_ea','sderr_eg','sderr_eqs',...
    'sderr_em');

paraest_true = [0.95,0.97,0.71,0.51,1.92,1.39,0.71,0.59,0.65,0.59,0.47,...
    1.61,0.26,5.48,0.20,2.03,0.08,0.87,0.22,0.46,0.61,0.60,0.25]';

% table 5 of the paper
RES = [paraest_true, results];


%%
%==========================================================================
% Impulse Responses
clear all
close all
clc

ste = strvcat('A','B','Z','C','D');
% technology
load swmodel_true_results
ir_tech_true = [oo_.irfs.y_ea; oo_.irfs.c_ea; oo_.irfs.inve_ea; ...
    oo_.irfs.w_ea; oo_.irfs.lab_ea; oo_.irfs.pinf_ea; oo_.irfs.r_ea];
ir_inve_true = [oo_.irfs.y_eqs; oo_.irfs.c_eqs; oo_.irfs.inve_eqs; ...
    oo_.irfs.w_eqs; oo_.irfs.lab_eqs; oo_.irfs.pinf_eqs; oo_.irfs.r_eqs];
ir_gov_true = [oo_.irfs.y_eg; oo_.irfs.c_eg; oo_.irfs.inve_eg; ...
    oo_.irfs.w_eg; oo_.irfs.lab_eg; oo_.irfs.pinf_eg; oo_.irfs.r_eg];
ir_mon_true = [oo_.irfs.y_em; oo_.irfs.c_em; oo_.irfs.inve_em; ...
    oo_.irfs.w_em; oo_.irfs.lab_em; oo_.irfs.pinf_em; oo_.irfs.r_em];

for j=[1,2,3,5]
    load(['sw_' ste(j) '_results'])
    ir_tech_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_ea'; oo_.PosteriorIRF.dsge.Median.c_ea'; oo_.PosteriorIRF.dsge.Median.inve_ea'; ...
    oo_.PosteriorIRF.dsge.Median.w_ea'; oo_.PosteriorIRF.dsge.Median.lab_ea'; oo_.PosteriorIRF.dsge.Median.pinf_ea'; oo_.PosteriorIRF.dsge.Median.r_ea'];
    ir_inve_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_eqs'; oo_.PosteriorIRF.dsge.Median.c_eqs'; oo_.PosteriorIRF.dsge.Median.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.Median.w_eqs'; oo_.PosteriorIRF.dsge.Median.lab_eqs'; oo_.PosteriorIRF.dsge.Median.pinf_eqs'; oo_.PosteriorIRF.dsge.Median.r_eqs'];
    ir_gov_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_eg'; oo_.PosteriorIRF.dsge.Median.c_eg'; oo_.PosteriorIRF.dsge.Median.inve_eg'; ...
    oo_.PosteriorIRF.dsge.Median.w_eg'; oo_.PosteriorIRF.dsge.Median.lab_eg'; oo_.PosteriorIRF.dsge.Median.pinf_eg'; oo_.PosteriorIRF.dsge.Median.r_eg'];
    ir_mon_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_em'; oo_.PosteriorIRF.dsge.Median.c_em'; oo_.PosteriorIRF.dsge.Median.inve_em'; ...
    oo_.PosteriorIRF.dsge.Median.w_em'; oo_.PosteriorIRF.dsge.Median.lab_em'; oo_.PosteriorIRF.dsge.Median.pinf_em'; oo_.PosteriorIRF.dsge.Median.r_em'];
end

j=4;
load(['sw_' ste(j) '_results'])
ir_tech_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_o_ea'; oo_.PosteriorIRF.dsge.Median.c_o_ea'; oo_.PosteriorIRF.dsge.Median.i_o_ea'; ...
    oo_.PosteriorIRF.dsge.Median.w_o_ea'; oo_.PosteriorIRF.dsge.Median.h_o_ea'; oo_.PosteriorIRF.dsge.Median.pi_o_ea'; oo_.PosteriorIRF.dsge.Median.r_o_ea'];
ir_inve_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_o_eqs'; oo_.PosteriorIRF.dsge.Median.c_o_eqs'; oo_.PosteriorIRF.dsge.Median.i_o_eqs'; ...
    oo_.PosteriorIRF.dsge.Median.w_o_eqs'; oo_.PosteriorIRF.dsge.Median.h_o_eqs'; oo_.PosteriorIRF.dsge.Median.pi_o_eqs'; oo_.PosteriorIRF.dsge.Median.r_o_eqs'];
ir_gov_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_o_eg'; oo_.PosteriorIRF.dsge.Median.c_o_eg'; oo_.PosteriorIRF.dsge.Median.i_o_eg'; ...
    oo_.PosteriorIRF.dsge.Median.w_o_eg'; oo_.PosteriorIRF.dsge.Median.h_o_eg'; oo_.PosteriorIRF.dsge.Median.pi_o_eg'; oo_.PosteriorIRF.dsge.Median.r_o_eg'];
ir_mon_est(:,:,j) = [oo_.PosteriorIRF.dsge.Median.y_o_em'; oo_.PosteriorIRF.dsge.Median.c_o_em'; oo_.PosteriorIRF.dsge.Median.i_o_em'; ...
    oo_.PosteriorIRF.dsge.Median.w_o_em'; oo_.PosteriorIRF.dsge.Median.h_o_em'; oo_.PosteriorIRF.dsge.Median.pi_o_em'; oo_.PosteriorIRF.dsge.Median.r_o_em'];


color  = strvcat('b:o','r:s','y--d','g--v','c--+');
names  = strvcat('y','c','i','w','h','\pi','r');
shocks = strvcat('technology','investment','govt','monetary');


%%
figure('Name','Technology')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_tech_true(ff,:),'k','LineWidth',2);
    hold on;
    for gg=[2,4,5]%1/5
        plot(ir_tech_est(ff,:,gg),color(gg,:));
        hold on
    end
    title(names(ff,:))
end
legend('true','B','C','D')
% legend('true','A','B','Z','C','D')

figure('Name','Investment')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_inve_true(ff,:),'k');
    hold on;
    for gg=[2,4,5]%1/5
        plot(ir_inve_est(ff,:,gg),color(gg,:));
        hold on
    end
    title(names(ff,:))
end
legend('true','B','C','D')
% legend('true','A','B','Z','C','D')

figure('Name','Government')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_gov_true(ff,:),'k');
    hold on;
    for gg=[2,4,5]%1/5
        plot(ir_gov_est(ff,:,gg),color(gg,:));
        hold on
    end
    title(names(ff,:))
end
legend('true','B','C','D')
% legend('true','A','B','Z','C','D')

figure('Name','Monetary')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_mon_true(ff,:),'k');
    hold on;
    for gg=[2,4,5]%1/5
        plot(ir_mon_est(ff,:,gg),color(gg,:));
        hold on
    end
    title(names(ff,:))
end
legend('true','B','C','D')
% legend('true','A','B','Z','C','D')

        

%%

clear all
% close all
clc
% figure 5 of the paper


names = strvcat('y','c','i','w','h','\pi','r');

load(['sw_A_results'])
ir_tech_bands_A(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_ea'; oo_.PosteriorIRF.dsge.HPDinf.inve_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_ea'; oo_.PosteriorIRF.dsge.HPDinf.lab_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_ea'; oo_.PosteriorIRF.dsge.HPDinf.r_ea'; ...
    ];
ir_inve_bands_A(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_eqs'; oo_.PosteriorIRF.dsge.HPDinf.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_eqs'; oo_.PosteriorIRF.dsge.HPDinf.lab_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_eqs'; oo_.PosteriorIRF.dsge.HPDinf.r_eqs'; ...
    ];
ir_gov_bands_A(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_eg'; oo_.PosteriorIRF.dsge.HPDinf.inve_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_eg'; oo_.PosteriorIRF.dsge.HPDinf.lab_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_eg'; oo_.PosteriorIRF.dsge.HPDinf.r_eg'; ...
    ];
ir_mon_bands_A(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_em'; oo_.PosteriorIRF.dsge.HPDinf.inve_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_em'; oo_.PosteriorIRF.dsge.HPDinf.lab_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_em'; oo_.PosteriorIRF.dsge.HPDinf.r_em'; ...
    ];

ir_tech_bands_A(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_ea'; oo_.PosteriorIRF.dsge.HPDsup.inve_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_ea'; oo_.PosteriorIRF.dsge.HPDsup.lab_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_ea'; oo_.PosteriorIRF.dsge.HPDsup.r_ea'; ...
    ];
ir_inve_bands_A(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_eqs'; oo_.PosteriorIRF.dsge.HPDsup.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_eqs'; oo_.PosteriorIRF.dsge.HPDsup.lab_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_eqs'; oo_.PosteriorIRF.dsge.HPDsup.r_eqs'; ...
    ];
ir_gov_bands_A(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_eg'; oo_.PosteriorIRF.dsge.HPDsup.inve_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_eg'; oo_.PosteriorIRF.dsge.HPDsup.lab_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_eg'; oo_.PosteriorIRF.dsge.HPDsup.r_eg'; ...
    ];
ir_mon_bands_A(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_em'; oo_.PosteriorIRF.dsge.HPDsup.inve_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_em'; oo_.PosteriorIRF.dsge.HPDsup.lab_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_em'; oo_.PosteriorIRF.dsge.HPDsup.r_em'; ...
    ];


load(['sw_Z_results'])
ir_tech_bands_Z(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_ea'; oo_.PosteriorIRF.dsge.HPDinf.inve_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_ea'; oo_.PosteriorIRF.dsge.HPDinf.lab_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_ea'; oo_.PosteriorIRF.dsge.HPDinf.r_ea'; ...
    ];
ir_inve_bands_Z(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_eqs'; oo_.PosteriorIRF.dsge.HPDinf.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_eqs'; oo_.PosteriorIRF.dsge.HPDinf.lab_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_eqs'; oo_.PosteriorIRF.dsge.HPDinf.r_eqs'; ...
    ];
ir_gov_bands_Z(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_eg'; oo_.PosteriorIRF.dsge.HPDinf.inve_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_eg'; oo_.PosteriorIRF.dsge.HPDinf.lab_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_eg'; oo_.PosteriorIRF.dsge.HPDinf.r_eg'; ...
    ];
ir_mon_bands_Z(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_em'; oo_.PosteriorIRF.dsge.HPDinf.inve_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_em'; oo_.PosteriorIRF.dsge.HPDinf.lab_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_em'; oo_.PosteriorIRF.dsge.HPDinf.r_em'; ...
    ];
ir_tech_bands_Z(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_ea'; oo_.PosteriorIRF.dsge.HPDsup.inve_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_ea'; oo_.PosteriorIRF.dsge.HPDsup.lab_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_ea'; oo_.PosteriorIRF.dsge.HPDsup.r_ea'; ...
    ];
ir_inve_bands_Z(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_eqs'; oo_.PosteriorIRF.dsge.HPDsup.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_eqs'; oo_.PosteriorIRF.dsge.HPDsup.lab_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_eqs'; oo_.PosteriorIRF.dsge.HPDsup.r_eqs'; ...
    ];
ir_gov_bands_Z(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_eg'; oo_.PosteriorIRF.dsge.HPDsup.inve_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_eg'; oo_.PosteriorIRF.dsge.HPDsup.lab_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_eg'; oo_.PosteriorIRF.dsge.HPDsup.r_eg'; ...
    ];
ir_mon_bands_Z(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_em'; oo_.PosteriorIRF.dsge.HPDsup.inve_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_em'; oo_.PosteriorIRF.dsge.HPDsup.lab_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_em'; oo_.PosteriorIRF.dsge.HPDsup.r_em'; ...
    ];

load swmodel_true_results
ir_tech_true = [oo_.irfs.y_ea; oo_.irfs.c_ea; oo_.irfs.inve_ea; ...
    oo_.irfs.w_ea; oo_.irfs.lab_ea; oo_.irfs.pinf_ea; oo_.irfs.r_ea];
ir_inve_true = [oo_.irfs.y_eqs; oo_.irfs.c_eqs; oo_.irfs.inve_eqs; ...
    oo_.irfs.w_eqs; oo_.irfs.lab_eqs; oo_.irfs.pinf_eqs; oo_.irfs.r_eqs];
ir_gov_true = [oo_.irfs.y_eg; oo_.irfs.c_eg; oo_.irfs.inve_eg; ...
    oo_.irfs.w_eg; oo_.irfs.lab_eg; oo_.irfs.pinf_eg; oo_.irfs.r_eg];
ir_mon_true = [oo_.irfs.y_em; oo_.irfs.c_em; oo_.irfs.inve_em; ...
    oo_.irfs.w_em; oo_.irfs.lab_em; oo_.irfs.pinf_em; oo_.irfs.r_em];


figure('Name','Technology')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_tech_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_tech_bands_A(ff,:,1),'b--*');
    hold on;
    plot(ir_tech_bands_A(ff,:,2),'b--*');
    hold on;
    plot(ir_tech_bands_Z(ff,:,1),'r--o');
    hold on;
    plot(ir_tech_bands_Z(ff,:,2),'r--o');
    title(names(ff,:))
    axis tight
end
legend('true','Model A Inf','Model A Sup','Model Z Inf','Model Z Sup')

figure('Name','Investment')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_inve_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_inve_bands_A(ff,:,1),'b--*');
    hold on;
    plot(ir_inve_bands_A(ff,:,2),'b--*');
    hold on;
    plot(ir_inve_bands_Z(ff,:,1),'r--o');
    hold on;
    plot(ir_inve_bands_Z(ff,:,2),'r--o');
    title(names(ff,:));
    axis tight
end
legend('true','Model A Inf','Model A Sup','Model Z Inf','Model Z Sup')

figure('Name','Government')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_gov_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_gov_bands_A(ff,:,1),'b--*');
    hold on;
    plot(ir_gov_bands_A(ff,:,2),'b--*');
    hold on;
    plot(ir_gov_bands_Z(ff,:,1),'r--o');
    hold on;
    plot(ir_gov_bands_Z(ff,:,2),'r--o');
    title(names(ff,:));
    axis tight
end
legend('true','Model A Inf','Model A Sup','Model Z Inf','Model Z Sup')

figure('Name','Monetary')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_mon_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_mon_bands_A(ff,:,1),'b--*');
    hold on;
    plot(ir_mon_bands_A(ff,:,2),'b--*');
    hold on;
    plot(ir_mon_bands_Z(ff,:,1),'r--o');
    hold on;
    plot(ir_mon_bands_Z(ff,:,2),'r--o');
    title(names(ff,:));
    axis tight
end
legend('true','Model A Inf','Model A Sup','Model Z Inf','Model Z Sup')


names = strvcat('y','c','i','w','h','\pi','r');

load(['sw_B_results'])
ir_tech_bands_B(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_ea'; oo_.PosteriorIRF.dsge.HPDinf.inve_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_ea'; oo_.PosteriorIRF.dsge.HPDinf.lab_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_ea'; oo_.PosteriorIRF.dsge.HPDinf.r_ea'; ...
    ];
ir_inve_bands_B(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_eqs'; oo_.PosteriorIRF.dsge.HPDinf.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_eqs'; oo_.PosteriorIRF.dsge.HPDinf.lab_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_eqs'; oo_.PosteriorIRF.dsge.HPDinf.r_eqs'; ...
    ];
ir_gov_bands_B(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_eg'; oo_.PosteriorIRF.dsge.HPDinf.inve_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_eg'; oo_.PosteriorIRF.dsge.HPDinf.lab_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_eg'; oo_.PosteriorIRF.dsge.HPDinf.r_eg'; ...
    ];
ir_mon_bands_B(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_em'; oo_.PosteriorIRF.dsge.HPDinf.inve_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_em'; oo_.PosteriorIRF.dsge.HPDinf.lab_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pinf_em'; oo_.PosteriorIRF.dsge.HPDinf.r_em'; ...
    ];

ir_tech_bands_B(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_ea'; oo_.PosteriorIRF.dsge.HPDsup.inve_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_ea'; oo_.PosteriorIRF.dsge.HPDsup.lab_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_ea'; oo_.PosteriorIRF.dsge.HPDsup.r_ea'; ...
    ];
ir_inve_bands_B(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_eqs'; oo_.PosteriorIRF.dsge.HPDsup.inve_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_eqs'; oo_.PosteriorIRF.dsge.HPDsup.lab_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_eqs'; oo_.PosteriorIRF.dsge.HPDsup.r_eqs'; ...
    ];
ir_gov_bands_B(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_eg'; oo_.PosteriorIRF.dsge.HPDsup.inve_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_eg'; oo_.PosteriorIRF.dsge.HPDsup.lab_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_eg'; oo_.PosteriorIRF.dsge.HPDsup.r_eg'; ...
    ];
ir_mon_bands_B(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_em'; oo_.PosteriorIRF.dsge.HPDsup.inve_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_em'; oo_.PosteriorIRF.dsge.HPDsup.lab_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pinf_em'; oo_.PosteriorIRF.dsge.HPDsup.r_em'; ...
    ];


load(['sw_c_results'])
ir_tech_bands_C(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_o_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_o_ea'; oo_.PosteriorIRF.dsge.HPDinf.i_o_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_o_ea'; oo_.PosteriorIRF.dsge.HPDinf.h_o_ea'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pi_o_ea'; oo_.PosteriorIRF.dsge.HPDinf.r_o_ea'; ...
    ];
ir_inve_bands_C(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_o_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_o_eqs'; oo_.PosteriorIRF.dsge.HPDinf.i_o_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_o_eqs'; oo_.PosteriorIRF.dsge.HPDinf.h_o_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pi_o_eqs'; oo_.PosteriorIRF.dsge.HPDinf.r_o_eqs'; ...
    ];
ir_gov_bands_C(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_o_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_o_eg'; oo_.PosteriorIRF.dsge.HPDinf.i_o_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_o_eg'; oo_.PosteriorIRF.dsge.HPDinf.h_o_eg'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pi_o_eg'; oo_.PosteriorIRF.dsge.HPDinf.r_o_eg'; ...
    ];
ir_mon_bands_C(:,:,1) = [oo_.PosteriorIRF.dsge.HPDinf.y_o_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.c_o_em'; oo_.PosteriorIRF.dsge.HPDinf.i_o_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.w_o_em'; oo_.PosteriorIRF.dsge.HPDinf.h_o_em'; ...
    oo_.PosteriorIRF.dsge.HPDinf.pi_o_em'; oo_.PosteriorIRF.dsge.HPDinf.r_o_em'; ...
    ];
ir_tech_bands_C(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_o_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_o_ea'; oo_.PosteriorIRF.dsge.HPDsup.i_o_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_o_ea'; oo_.PosteriorIRF.dsge.HPDsup.h_o_ea'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pi_o_ea'; oo_.PosteriorIRF.dsge.HPDsup.r_o_ea'; ...
    ];
ir_inve_bands_C(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_o_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_o_eqs'; oo_.PosteriorIRF.dsge.HPDsup.i_o_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_o_eqs'; oo_.PosteriorIRF.dsge.HPDsup.h_o_eqs'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pi_o_eqs'; oo_.PosteriorIRF.dsge.HPDsup.r_o_eqs'; ...
    ];
ir_gov_bands_C(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_o_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_o_eg'; oo_.PosteriorIRF.dsge.HPDsup.i_o_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_o_eg'; oo_.PosteriorIRF.dsge.HPDsup.h_o_eg'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pi_o_eg'; oo_.PosteriorIRF.dsge.HPDsup.r_o_eg'; ...
    ];
ir_mon_bands_C(:,:,2) = [oo_.PosteriorIRF.dsge.HPDsup.y_o_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.c_o_em'; oo_.PosteriorIRF.dsge.HPDsup.i_o_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.w_o_em'; oo_.PosteriorIRF.dsge.HPDsup.h_o_em'; ...
    oo_.PosteriorIRF.dsge.HPDsup.pi_o_em'; oo_.PosteriorIRF.dsge.HPDsup.r_o_em'; ...
    ];

load swmodel_true_results
ir_tech_true = [oo_.irfs.y_ea; oo_.irfs.c_ea; oo_.irfs.inve_ea; ...
    oo_.irfs.w_ea; oo_.irfs.lab_ea; oo_.irfs.pinf_ea; oo_.irfs.r_ea];
ir_inve_true = [oo_.irfs.y_eqs; oo_.irfs.c_eqs; oo_.irfs.inve_eqs; ...
    oo_.irfs.w_eqs; oo_.irfs.lab_eqs; oo_.irfs.pinf_eqs; oo_.irfs.r_eqs];
ir_gov_true = [oo_.irfs.y_eg; oo_.irfs.c_eg; oo_.irfs.inve_eg; ...
    oo_.irfs.w_eg; oo_.irfs.lab_eg; oo_.irfs.pinf_eg; oo_.irfs.r_eg];
ir_mon_true = [oo_.irfs.y_em; oo_.irfs.c_em; oo_.irfs.inve_em; ...
    oo_.irfs.w_em; oo_.irfs.lab_em; oo_.irfs.pinf_em; oo_.irfs.r_em];


figure('Name','Technology')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_tech_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_tech_bands_B(ff,:,1),'b--*');
    hold on;
    plot(ir_tech_bands_B(ff,:,2),'b--*');
    hold on;
    plot(ir_tech_bands_C(ff,:,1),'r--o');
    hold on;
    plot(ir_tech_bands_C(ff,:,2),'r--o');
    title(names(ff,:))
    axis tight
end
legend('true','Model B Inf','Model B Sup','Model C Inf','Model C Sup')

figure('Name','Investment')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_inve_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_inve_bands_B(ff,:,1),'b--*');
    hold on;
    plot(ir_inve_bands_B(ff,:,2),'b--*');
    hold on;
    plot(ir_inve_bands_C(ff,:,1),'r--o');
    hold on;
    plot(ir_inve_bands_C(ff,:,2),'r--o');
    title(names(ff,:));
    axis tight
end
legend('true','Model B Inf','Model B Sup','Model C Inf','Model C Sup')

figure('Name','Government')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_gov_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_gov_bands_B(ff,:,1),'b--*');
    hold on;
    plot(ir_gov_bands_B(ff,:,2),'b--*');
    hold on;
    plot(ir_gov_bands_C(ff,:,1),'r--o');
    hold on;
    plot(ir_gov_bands_C(ff,:,2),'r--o');
    title(names(ff,:));
    axis tight
end
legend('true','Model B Inf','Model B Sup','Model C Inf','Model C Sup')

figure('Name','Monetary')
for ff=1:7
    subplot(3,3,ff)
    plot(ir_mon_true(ff,:),'k','LineWidth',2);
    hold on;
    plot(ir_mon_bands_B(ff,:,1),'b--*');
    hold on;
    plot(ir_mon_bands_B(ff,:,2),'b--*');
    hold on;
    plot(ir_mon_bands_C(ff,:,1),'r--o');
    hold on;
    plot(ir_mon_bands_C(ff,:,2),'r--o');
    title(names(ff,:));
    axis tight
end
legend('true','Model B Inf','Model B Sup','Model C Inf','Model C Sup')
