Hello,
I am comparing IRFs for my model with different calibrations. In one of the comparisons, the calibration changes steady state levels, but the response is the same.
Is there a way to graph the IRF in steady state levels - not deviations from the steady state?
Thank you
You need to do that manually by adding back the steady state values saved in oo_.dr.ys
Thank you for your response
I changed my code to the below and it doesn’t seem to work
Do you have an example you can share?
Many thanks
dynare Codev21_5a;
irfv21_5a = oo_.dr.ys;
save Codev21_5a.mat irfv21_5a;
dynare Codev21_5b;
irfv21_5b = oo_.dr.ys;
save Codev21_5b.mat irfv21_5b;
load('Codev21_5a.mat','irfv21_5a');
load('Codev21_5b.mat','irfv21_5b');
ending_cell={'_u_e_m'};
for ii=1:length(ending_cell)
HOR=1:options_.irf;
var={'c','c_R','c_N','y_H','h','w','c_F','c_H_ast','rer','p_H','ppi_H','ppi','m','l','d','R','Rl','Rd','e_m','b_ast','Rdh'};
var_name={'c','c^R','c^N','y^H','h','w','c^F','c^{H\ast}','rer','p^H','\pi^H','\pi','m','l','d','R','R^L','R^D','e^M','b_ast','Rdh'};
figure
for jj=1:length(var)
subplot(5,5,jj)
eval(['irfv21_5a.' var{1,jj},ending_cell{1,ii}]);
eval(['irfv21_5b.' var{1,jj},ending_cell{1,ii}]);
hold on
plot(HOR,[eval(['irfv21_5a.' var{1,jj},ending_cell{1,ii}])],'-k',HOR,[eval(['irfv21_5b.' var{1,jj},ending_cell{1,ii}])],'-.b','LineWidth',1) ;
title([var_name{1,jj}])
set(gca,'fontsize', 6);
end
Lgnd.Position(1) = 0.33;
Lgnd.Position(2) = 0.01;
end
You are only reading out the IRFs, not the steady state level. I would need the full files.
Your Matlab code above calls two other mod-files than the one you uploaded.
Yes, it’s the same base model with different parametrizations. I attach both mod-files called in the code above
Codev21_5b.mod (10.1 KB) Codev21_5b.mod (10.1 KB)
You uploaded the same file twice.
It should be something along the lines of
dynare Codev21_5a;
irfv21_5a = oo_;
dynare Codev21_5b;
irfv21_5b = oo_;
ending_cell={'_u_e_m'};
for ii=1:length(ending_cell)
HOR=1:options_.irf;
var={'c','c_R','c_N','y_H','h','w','c_F','c_H_ast','rer','p_H','ppi_H','ppi','m','l','d','R','Rl','Rd','e_m','b_ast','Rdh'};
var_name={'c','c^R','c^N','y^H','h','w','c^F','c^{H\ast}','rer','p^H','\pi^H','\pi','m','l','d','R','R^L','R^D','e^M','b_ast','Rdh'};
figure
for jj=1:length(var)
subplot(5,5,jj)
hold on
var1=irfv21_5a.irfs.([var{1,jj},ending_cell{1,ii}])+irfv21_5a.dr.ys(strmatch(var{1,jj},M_.endo_names,'exact'));
var2=irfv21_5b.irfs.([var{1,jj},ending_cell{1,ii}])+irfv21_5b.dr.ys(strmatch(var{1,jj},M_.endo_names,'exact'));
plot(HOR,var1,'-k',HOR,var2,'-.b','LineWidth',1) ;
title([var_name{1,jj}])
set(gca,'fontsize', 6);
end
Lgnd.Position(1) = 0.33;
Lgnd.Position(2) = 0.01;
end
Thank you so much! It worked perfectly