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: Select all
??? 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) ;
I have been reading through the posts in this forum, and check the eigenvalues, The following is what I get:
- Code: Select all
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.
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