There are 14 eigenvalue(s) larger than 1 in modulus for 14 forward-looking variable(s)

Hello everyone, I have tried the program many times, but I still can’t find the problem. Can anyone help me see it, thanks a lot! !! !!

Cha6hn4.mod (6.5 KB) Cha6hn4index.m (1.6 KB)
Residuals of the static equations:

Equation number 1 : 0
Equation number 2 : 0
Equation number 3 : 0
Equation number 4 : 0
Equation number 5 : 0
Equation number 6 : 0
Equation number 7 : 0
Equation number 8 : 0
Equation number 9 : 0
Equation number 10 : 0
Equation number 11 : 0
Equation number 12 : 0
Equation number 13 : 0
Equation number 14 : 0
Equation number 15 : 0
Equation number 16 : 0
Equation number 17 : 0
Equation number 18 : 0
Equation number 19 : 0
Equation number 20 : 0
Equation number 21 : 0
Equation number 22 : 0
Equation number 23 : 0
Equation number 24 : 0
Equation number 25 : 0
Equation number 26 : 0
Equation number 27 : 0
Equation number 28 : 0
Equation number 29 : 0

STEADY-STATE RESULTS:

c -1.55501
lam 2.64459
r 0.010101
R 0.010101
gh 0
kh 0.0598088
en -0.404743
l -1.61485
mu 2.96945
w 0.45542
rk 0.110101
m -0.182322
k 1.36367
i -0.938912
q 0
y -0.283957
pf 0
Pj 0
P 0
f1 3.71737
f2 3.71737
pi 0
s 0
b 1.32548
t -1.66823
v 0
g -1.89339
z 0
zh -2.45512

EIGENVALUES:
Modulus Real Imaginary

   8.686e-15        8.686e-15                0
      0.7468           0.7468                0
      0.7803            0.776          0.08107
      0.7803            0.776         -0.08107
      0.8697           0.8697                0
         0.9              0.9                0
         0.9              0.9                0
         0.9              0.9                0
         0.9              0.9                0
         0.9              0.9                0
      0.9101           0.9101                0
        1.02             1.02                0
        1.16            1.157          0.07641
        1.16            1.157         -0.07641
       1.347            1.347                0
       1.719            1.719                0
       421.2            421.2                0
   2.109e+16        2.109e+16                0
   1.388e+17       -1.388e+17                0
   8.336e+17       -8.336e+17                0
   9.545e+17        9.545e+17                0
   1.668e+18       -1.668e+18                0
   1.995e+18        1.995e+18                0
   3.935e+20       -3.935e+20                0
   1.114e+21       -1.114e+21                0

There are 14 eigenvalue(s) larger than 1 in modulus
for 14 forward-looking variable(s)

The rank condition ISN’T verified!

错误使用 print_info (line 48)
Blanchard Kahn conditions are not satisfied: indeterminacy due to rank failure
出错 stoch_simul (line 100)
print_info(info, options_.noprint, options_);
出错 Cha6hn3 (line 488)
info = stoch_simul(var_list_);
出错 dynare (line 235)
evalin(‘base’,fname) ;
出错 Cha6hn3index (line 69)
dynare Cha6hn3

  1. Your timing looks very strange. Why is the Lagrange multiplier lambda most of the time dated (-1). Similarly, the state variables do not have the typical timing as far as I can see.

Yes, I did not change the Lagrangian multiplier timing before, but the BK condition has not been met, I just want "eigenvalue (s) larger than 1 in modulus for XXX equal to forward-looking variable (s ) ", So the resulting model is very strange.
The original model does not seem to have a good solution. I can only adjust the time to see my luck. But I really don’t know which equation or variable is the problem. so helpless.
I will try not use “exp()” first, and see if things turn around.

Keep in mind: There is a unique timing convention. The question is not whether you can change the timing to make the model run, but rather which timing is the unique correct one.

Ok ! I think may be something wrong with the exp() type. Thank you very much !

hi professor, I think I have the same confusion, and still not quite understand the way dynare calculates its eigenvalues and forward-looking variables.

e.g. in the simplest RBC model, if consumption utility at t is UC(t), and you create an auxiliary variable, LAMBDA(t)= UC(t)/UC(t-1) for Euler condition. you can still get the right irfs and steady-state, by writing the following in the model section, with all other equations unchanged:

1=LAMBDA*R(-1);
LAMBDA(+1)=betta*UC(+1)/UC;

(the original correct one should be:

LAMBDA=betta*UC/UC(-1);

)

Obviously, the Euler equation is wrong if t stands for the current period and t-1 means the value of the variable should be known, because the Euler equation should come out of the utility maximization in period t. And the LAMBDA equation is just one period forward compared to the correct one, but i don’t see why this can’t be the case, because I don’t see any theoretical reasoning behind this auxiliary equation. the only thing i know is that, if i don’t write it as the way in the correct one(LAMBDA=betta*UC/UC(-1);), i cannot get the Blanchard Kahn (BK) condition met. Or i need to change other time notation like (1=LAMBDA*R(-1);) to make the BK condition met.

So I am confused about the auxiliary variable time notation like LAMBDA,

Also, for the law of motion equations, if t-1 in dynare means the value is known at t, then, I am confused that in the basic NK model, equations like the law of motion for price dispersion (see below), and inflation in this expression, does it mean that Delta(-1) is known? or how should I understand this equation, and why can’t I write this equation one period forward.

Delta=xi*(PIEtilde^zzeta)*Delta(-1)+(1-xi)*(J/JJ)^(-zzeta);

Thanks a lot

  1. Yes, everything dated t-1 is known at time t.
  2. The timing problem comes from Dynare having a conditional expectations around each equation. So time t+1 relations hold in expectations, time t relation in every state of the world. See e.g. Expectations vs realized
  3. Don’t use auxiliary variables, use model-local variables. See e.g. DSGE_mod/Basu_Bundick_2017.mod at master · JohannesPfeifer/DSGE_mod · GitHub

Thanks. It’s helpful.