Help! 0 eigenvalue and unit root problem

Dear Dynare Guru:

I have a version of SOE model (Adolfson et al (2007) in JIE) with labour market frictions, and hoping to get some sensible estimates. I can simulate the model successfully, but Dynare complains about the BK conditions. The following error is what I get:

[code]??? Error using ==> print_info at 39
Blanchard Kahn conditions are not satisfied: no stable equilibrium

Error in ==> initial_estimation_checks at 101
print_info(info, options_.noprint)

Error in ==> dynare_estimation_1 at 122
initial_estimation_checks(xparam1,gend,data,data_index,number_of_observations,no_more_missing_observations);

Error in ==> dynare_estimation at 62
dynare_estimation_1(var_list,varargin{:});

Error in ==> SOE_LMF at 734
dynare_estimation(var_list_);

Error in ==> dynare at 120
evalin(‘base’,fname) ;[/code]

I have been reading through the posts in this forum, and check the eigenvalues, The following is what I get:

[code]
EIGENVALUES:
Modulus Real Imaginary

           0               -0                0
  4.503e-017       4.503e-017                0
  5.912e-017      -5.912e-017                0
  6.498e-008      -9.147e-013       6.498e-008
  6.498e-008      -9.147e-013      -6.498e-008
    0.002149         0.002149                0
     0.05263         -0.05263                0
      0.6318           0.6318                0
      0.6492           0.5464           0.3505
      0.6492           0.5464          -0.3505
         0.7              0.7                0
      0.7246           0.6378           0.3439
      0.7246           0.6378          -0.3439
      0.7317           0.6594           0.3172
      0.7317           0.6594          -0.3172
        0.75             0.75                0
        0.75             0.75                0
         0.8              0.8                0
         0.8              0.8                0
      0.8182           0.8182                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
        0.85             0.85                0
         0.9              0.9                0
      0.9261           0.9261                0
       0.933           0.9306          0.06584
       0.933           0.9306         -0.06584
      0.9962           0.9899           0.1117
      0.9962           0.9899          -0.1117
           1                1                0
       1.002            0.456           0.8922
       1.002            0.456          -0.8922
       1.004            1.004                0
       1.097            1.097                0
       1.134            1.134                0
       1.766            1.743           0.2876
       1.766            1.743          -0.2876
       1.873            1.873                0
       2.173            2.173                0
       8.598            8.598                0
        1423             1423                0
         Inf              Inf                0
         Inf              Inf                0
         Inf              Inf                0
         Inf              Inf                0
         Inf              Inf                0

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

The rank condition is verified.[/code]

Clearly I have an eigenvalue is exactly 0, (and 4 others are very close to 0) and yet another eigenvalue has value 1. From my understanding, This means I have two problems:

  1. I do not have full rank.
  2. There is a unit root in the model.

I played around with Dynare, and found the rank problem is stemming from the ‘definitional equations’, eg: define unemployment as a function of employment, which creates perfect colinearity in the model. However, I can never get rid of the 0 eigenvalue. So my first question is:

Does a 0 eigenvalue matter for estimation, and is there any ways I can detect which equation causes the trouble?

I guess the source of the unit root stems from the risk-adjusted UIP condition, by multiplying 0.9 in front of the nominal exchange rate (I know this is not right, but for debugging purpose) in the UIP condition I could get rid the unit root. I read the Schmitt-Grohé and Uribe (2003) paper, and it seems a risk premium should have stopped the unit root. So my second question is:

Why I still have a unit root in the model when the risk premium is introduced?

The .mod file and linearized model are attached.

Thanks alot in anticipation…I have been stuck on this for weeks now.

Cheers

Ben
artificial_data.xls (321 KB)
SOE_LMF.mod (21.7 KB)
model.pdf (135 KB)

If the simulation works, but estimation fails with error message you posted, it simply means that you did not supply correct starting values for the estimation. When you do not specify initial values in the estimated_params block, Dynare uses the prior mean I think. If you initialize the estimation with the parameter values that work for simulation, it should run. Note that there may be a problem with the way you specify your model: You linearized your model and set the steady state values in the coefficients as parameters. As long as you do not define these parameters as a function of the estimated parameters inside of the model block using the # operator (see manual), the steady state values will not change with the estimated parameters.

Thanks for your prompt reply. I do use steady state values as parameters, but these are steady state values arise from the linearization procedure, not steady state of the linearized variables. In my case all linearize variables have a 0 steady state.

I have tried to use MLE with initial value set as the same value in the parameter initialization block, but the problem remains. Dynare gives the same error message.

Would one of the eigenvalue is exact 0 matters?

Best,

Ben

Hello Ben,

I was wondering whether you have solved this issue then since I got the same problem now.

Thank you in advance for your support!
Daniel.