BK condition not satisfied indeterminacy due to rank failure

Dear professor jpfeifer:

When I run my two-country model in Dynare, it always notes that “Blanchard Kahn conditions are not satisfied: indeterminacy due to rank failure”. To deal with it correctly, I have tried to re-check the equations and change some parameters, and have read lots of correlative topics on the Dynare official forum, but it still doesn’t work. Additionally, the model_diagnostic command shows “the Jacobian of the static model is singular there is 4 colinear relationships between the variables and the equations”, but the 4 colinear equations are AR(1) equations. Also, the reason why I choose the coefficient in the last 4 equations, which value equals 1, is that I need permanent shocks.

I would appreciate it if you could help me.Thank you!

There are 11 eigenvalue(s) larger than 1 in modulus
for 11 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 98)
print_info(info, options_.noprint, options_);

Impulsewithexp3 (line 435)
info = stoch_simul(var_list_);

dynare (line 180)
evalin(‘base’,fname) ;

model_diagnostics(M_,options_,oo_)
model_diagnostic: the Jacobian of the static model is singular
there is 4 colinear relationships between the variables and the equations
The presence of a singularity problem typically indicates that there is one
redundant equation entered in the model block, while another non-redundant equation
is missing. The problem often derives from Walras Law.

but when I remove these four AR(1) equation(make fE fEstar fX fXstar being exogeneous variables), there is no message after the command of model_diagnostics, while the same BK condition problem sill exist.
best
oishi
Impulsewithoutexp2.mod (7.54 KB)

That is hard to diagnose. The model_diagnostics warnings come from the unit roots in your model. But that is a feature. There must be a deeper problem hidden in your model that is unrelated to the exogenous shock processes. I can only recommend to simplify the model as far as possible to get a working one and then start adding features again.

Dear professor jpfeifer:
Thank you for your suggestions, and I will try to simplify my model.
Also I have another question about the Figure 16 in your paper “A Guide to Specifying Observation Equations for the Estimation of DSGE Models” . I can’t figure out the timing structure of the interest rate or inflation rate. Should I treat them as normal variables like output Y or as predetermined variables like capital K? So, I wonder whether I should add (+1) after the rate in bond Euler equations or add ( -1) after the rate in accounting equations(In the code above, I add(+1) in bond Euler equations).

  Best wishes!
  oishi

That all depends on your setup. For example, for risk-free bonds the interest rate is known at time t and shows up in the Euler equation with a time t timing. In contrast, the inflation rate is not known in advance. A typical Euler equation therefore is

Why don’t you properly derive your Euler equation for your model?

[quote=“jpfeifer”]That all depends on your setup. For example, for risk-free bonds the interest rate is known at time t and shows up in the Euler equation with a time t timing. In contrast, the inflation rate is not known in advance. A typical Euler equation therefore is

Why don’t you properly derive your Euler equation for your model?[/quote]

Dear Professor jpfeifer,
These are my Euler equations of Bonds and accounting equation. r is the risk-free rate of return. Q is the real exchange rate.

1+eta1*B=beta1*(1+r(+1))*C/C(+1); 1+eta1*Bustar=beta1*(1+r(+1))*Cstar*Q/(Cstar(+1)*Q(+1)); 1+eta1*Blstar=beta1*(1+rstar(+1))*Q(+1)*C/(Q*C(+1)); 1+eta1*Blustar=beta1*(1+rstar(+1))*Cstar/Cstar(+1);

    Also I can't figure out the difference between the end of time t-1 and the beginning of time t. e.g. the interest rate begins at the beginning of time t-1 and ends at the beginning of time t, so at time t there are two kinds of interest rate, the interest rate at the beginning of time t and the interest rate at the end of time t. so which interest rate can be used to calculate the interest at time t?
    That's all. Thank you a lot!

What matters for the timing convention in Dynare is when a variable is decided upon. The variable gets a timing t-1 when it cannot be affected by e.g. a TFP shock happening at the beginning of period t.

Dear professor jpfeifer:
I very appreciate for your help. Thank you again!
best!
oishi