About the rank condition

dear Michael,

many thanks again for all your help in prompt replies to our queries.

On the question of rank condition which I presume follows the Blanchard and Kahn solution conditions.

We run two tests, the first being with one endogenous backward looking variable; and the statement we get is:

“There are 0 eigenvalue(s) larger than 1 in modulus for 1 forward-looking variable(s). The rank condition is verified.”

The first question is: why does it tell us that it is a forward looking ( we indeed get an eignevalue less than 1).

Secondly, running the same simulation with five endogenous, of which 1 forward looking and 4 backward-looking and we get the following statement:

“There are 3 eigenvalue(s) larger than 1 in modulus
for 4 forward-looking variable(s). The rank conditions ISN’T verified!”

a) why not just 1 forward looking variable ?

b) we also get two infinite eigenvalues. How’s that possible ?

c) depending on the system we work with, we get sometimes a different number of eigenvalues (fewer or more) than there are declared endogenous variables;

d) is there an order in which we have to enter the equations or variables so that dynare knows which are backward or forward looking variables ?

We’ld be grateful if you could give us a hint on what it means.

P.S. We’ve attached two files:
a) flexp4.mod regards the 1st question (it includes a stoch_simul which we had included as a test. But the rank conditions we get with just simul are the same. That is the part that is intriguing us).
b) flexp.mod regards the 2nd question.

with best regards,

martom
martom_question.zip (1.03 KB)

Sorry to be late to answer this time. I have been busy teaching.

In Dynare, a forward-looking variable is a variable that appears in the model with a lead. In flexp4, you have one forward-looking variable: “c(+1)”, in flexp, you have four forward-looking one c(+1),p(+1),n(+1),f(+1)

A predetermined variable is a variable that appears with a lag. A variable can be both forward-looking and predetermined.

A static variable is a variable that don’t appear in the model with a lead or with a lag.

That way to infer predetermined variable from their timing in the model is both clear (in my humble opinion) and avoid to have to separately declare predetermined and forward-looking variables

It is likely that in your example, you don’t put the right time index on a predetermined variable.

An infinite eigenvalue is defined in the framework of generalized eigenvalues (see Golub and Van Loan, for example). It has to do with the state space representation of the model being singular. An infinite eigenvalue is larger than one in modulus. You can also look at the slides “First and second order approximation” that are on the web site under Coinferences and Workshop (October 2005).

When you have a model with a lead p periods ahead, that variable count for p forward-loking variables.

Best

Michel