Before I think of changing the model: eigenvalues

Hi all,
I spent quite some weekend time now trying to figure out this, so any suggestions would be much appreciated.
I know the topic has been discussed in detail. When such an error occurs:
*There are 14 eigenvalue(s) larger than 1 in modulus
for 13 forward-looking variable(s)

The rank condition is verified.

??? Error using ==> print_info at 21
Blanchard Kahn conditions are not satisfied: no stable equilibrium*
It means I need to check model, parameters, and think of changing the model. Now I’ve done the first two steps and before I throw out what I think is a simple but nice model, let me ask a couple of questions:

**Anything from the eignvalues can give me some hint on where the error is ? **
See below.
Modulus Real Imaginary

  7.629e-017       7.629e-017                0
  4.445e-016       4.445e-016                0
  2.031e-015      -2.031e-015                0
  2.072e-015       2.072e-015                0
  4.577e-015      -4.577e-015                0
      0.0074           0.0074                0
       0.292            0.292                0
      0.4638           0.4638                0
      0.4743           0.4743                0
      0.6032           0.6032                0
      0.6078           0.6078                0
      0.6631           0.6631                0
      0.8535           0.8535                0
      0.9108           0.9108                0
      0.9353           0.9353                0
       0.979            0.979                0
      0.9799           0.9799                0
      0.9998           0.9998                0
       1.007            1.007                0
       1.013            1.013                0

** 1.019 0.537 0.8663
1.019 0.537 -0.8663**
1.172 1.172 0
1.554 1.554 0
1.681 1.681 0
2.273 2.273 0
Inf Inf 0
Inf Inf 0
Inf Inf 0
Inf Inf 0
Inf Inf 0
Inf -Inf 0

I see that two take the same value. Does that mean anything ?

I attached the files. Any help would be much appreciated.
liu_wang_zha_modif1.mod (4.82 KB)
LWZ_bench_modif1.m (5.43 KB)

For an n*n matrix you need to have n independent eigenvectors, otherwise you can’t diagonalize and can’t get a unique solution. I’m very new to Dynare, but my understanding is that even with the Sims solver, which is a very generalized way to solve DSGE models, you still need n independent eigenvectors (and accordingly n unique eigenvalues). Perhaps some others here can be more helpful.

That’s what I thought. But I don’t have that. What could be the problem behind this ? Anyone ?

The most likely cause is that your equations are linearly dependent. Maybe look to see if you can cancel something and get rid of a variable.

I don’t agree with the previous comments. Linear dependence of variables is only an issue for estimation. Consider for example the budget constraint C+I=Y. It is clearly linear and enters all almost models, but does not make them unstable.

The answers to your first questions are no. Unfortunately, there is nothing you can directly infer from the output and the fact that two eigenvalues are the same.

You are right that there are two things that you should check:

  1. Is the model entered correctly? If the BK-condition does not hold, it is often a matter of getting the timing wrong. From my experience with Dynare models, this particularly happens with predetermined states like capital or bonds, which have to be entered with the period in which they are decided. See the manual for more information.
  2. Check the parametrization. It is very uncommon that a model is unstable for the whole parameter range.

If your model is well-specified, there should usually be no reason to change it. From my experience with the Dynare forum, the problem is more often with the Dynare program than with the model itself. I don’t know what you did in your model, but it looks like you modified a previously running model. Were you able to replicate this model? If yes, the problem is with what you added. You might want to check this part or describe it here in the forum so people might help you.
Also when checking for problems, you might want to shut off features of the model, e.g. variable capital utilization or investment adjustment costs. Sometimes it even helps to replace the labor FOC with l=1.

I hope this helps.

Hi, I agree with Johannes. The singularity issues shows up in infinite or zero eigenvalues not in multiplicity of the eigenvalues. Also don’t forget to check for sign errors. With a wrong sign on a quadratic cost (on investment for instance) you will obtain local instability of the steady state. That’s why the last advice given by Johannes (shut off the rigidities one by one) may help.