Hi everyone,
I am trying to replicate Heterogeneity and Aggregate Fluctuations: Insights from TANK Models. When I work with the basic RANK model, I got the error message “There are 1 eigenvalue(s) larger than 1 in modulus for 2 forward-looking variable(s) The rank condition ISN’T verified!”. The code is attached.
Could anyone help me solve the problem or find the reason?
To be honest, I’m very confused by the setup of gross real interest rate: the central bank keeps the real interest rate constant in the face of aggregate shocks (other than monetary policy shocks). When it comes to the monetary policy shock, the real rate follows an exogenous process, R_t=Rexp{v_t} where v_t=rho_vv_t-1+eps_v.
Thank you very much!
Model_RANK.mod (1.8 KB)
var
y_gap $\tilde y$ (long_name='output gap')
y ${y}$ (long_name='output')
y_nat ${y^{n}}$ (long_name='natural output')
pi ${\pi}$ (long_name='inflation')
a ${a}$ (long_name='AR(1) technology shock process')
R ${R}$ (long_name='gross real return')
v ${v}$ (long_name='AR(1) monetary policy shock process')
;
varexo
eps_a ${\varepsilon_a}$ (long_name='technology shock')
eps_r ${\varepsilon_r}$ (long_name='monetary policy shock')
;
parameters
beta ${\beta}$ (long_name='discount factor')
rho_a ${\rho_a}$ (long_name='persistence of technology shocks')
rho_r ${\rho_r}$ (long_name='persistence of monetary policy shocks')
sigma ${\sigma}$ (long_name='coefficient of risk aversion')
phi ${\phi}$ (long_name='Frisch elasticity')
epsilon ${\epsilon}$ (long_name='demand elasticity')
xi ${\xi}$ (long_name='adjustment cost parameter')
R_nat ${R^{n}}$ (long_name='steady state gross interest rate')
;
beta=0.995;
sigma=1;
phi=1;
rho_a=0.9;
rho_r=0.5;
epsilon=11;
xi=200;
R_nat=1.005;
model;
//composite parameters
#lambda=(epsilon-1)/xi;
#kappa=lambda*(sigma+phi);
[name='New Keynesian Philips Curve']
pi=beta*pi(+1)+kappa*y_gap;
[name='Dynamic IS curve']
y_gap=y_gap(+1)-1/sigma*(R-R_nat)/R_nat;
[name='output gap']
y_gap=y-y_nat;
[name='natural output']
y_nat=(1+phi)/(sigma+phi)*a;
[name='TFP shock']
a=rho_a*a(-1)+eps_a;
[name='exogeneous process for the real rate']
R=R_nat*exp(v);
v=rho_r*v(-1)+eps_r;
end;
initval;
y_gap=0;
y=0;
y_nat=0;
pi=0;
a=0;
R=1.005;
v=0;
end;
resid;
steady;
check;
shocks;
var eps_r=0.0625;
var eps_a=0;
end;
stoch_simul(order=1, irf=20);