Accuracy of the IRF

Hi all,

My IRF doesn’t become 10 times larger when I change the size of the shock to be 10 times as before while the approximation order kept equal to one. However, the difference is minor, like 10^(-12). I wonder whether this is within the tolerance if there’s any standard.

I use Dynare 4.5.1 (stable) with Matlab 2017a on Mac 64-bit.

I run the attached mod file as an example.

If the standard deviation of the shock is 0.07/(1-alpha) instead of 0.007/(1-alpha), the IRF of y at period 0 (instant) is 0.0827836641605688 instead of 0.00827836641643209.

Thanks for your attention.

mod file:

%----------------------------------------------------------------
% 1. Defining variables
%----------------------------------------------------------------

% VARIABLE DEFINITIONS

% y = ln(output)
% c = ln(consumption)
% i = ln(investment)
% k = ln(capital stock)
% n = ln(hours)
% y_n = ln(labor productivity);
% z = ln(labor-augmenting technological progress);

var y c k i n y_n z;
varexo e;

parameters beta psi delta alpha rho;

%----------------------------------------------------------------
% 2. Calibration
%----------------------------------------------------------------

alpha = 0.33; // exponent on capital in the production function
beta = 0.99; // household’s discount factor
delta = 0.023; // depreciation rate
psi = 1.75; // weight on leisure in the utility function
rho = 0.95; // AR(1) parameter on technology
sigma = (0.007/(1-alpha)); // standard deviation of technology shock

%----------------------------------------------------------------
% 3. Model
%----------------------------------------------------------------

model;
(1/exp©) = beta*(1/exp(c(+1)))(1+alpha(exp(k)^(alpha-1))(exp(z(+1))n(+1))^(1-alpha)-delta);
psi
exp©/(100-exp(n)) = (1-alpha)
(exp(k(-1))^alpha)(exp(z)^(1-alpha))(exp(n)^(-alpha));
exp©+exp(i) = exp(y);
exp(y) = (exp(k(-1))^alpha)*(exp(z)*exp(n))^(1-alpha);
exp(i) = exp(k)-(1-delta)exp(k(-1));
exp(y_n) = exp(y)/exp(n);
z = rho
z(-1)+e;
end;

%----------------------------------------------------------------
% 4. Computation
%----------------------------------------------------------------

initval;
k = 3.7;
y = 3.8;
c = 3.7;
n = 3.4;
z = 0;
e = 0;
end;

shocks;
var e = sigma^2;
end;

steady;

stoch_simul(order = 1);

That is well within the numerical accuracy and no reason to worry.

Thanks…