Open Economy

Dear all,

when I run model diagnositics, I get the following error: the Jacobian of the static model is singular.
I have a small open economy model. Now I’m wondering if this always happen in open economy models due to the current account equation. If so, then do I have to take the warning seriously, anymore?


If there is a unit root in the model (which may be deliberate), there must be singularity of the Jacobian. In contrast, in stationary small open economy models a la Schmitt-Grohe/Uribe(2003) there is no singularity.

So if I use debt elastic interest rates an unit root should not be there and the singularity warning is important for me??

Yes. For example, it might mean that you have a variable like the nominal exchange rate in a real model that cannot be determined.

That could be the case. How can I solve this problem?

Would it be possible if I send to you a very well commented dynare code? And you could take a quick look at it? Perhaps I have one equation, that I do not have to use and only missing another important one? (THAT WOULD BE REALLY GREAT)

Wie man so schön sagt, vor lauter Bäumen sehe ich, glaube ich, den Wald nicht mehr. :wink:

Checking models is the type of support I cannot provide.

Regarding the nominal exchange rate: unless you add a money supply and demand process to determine the nominal variables, there is nothing you can do as this variable is simply not determined, i.e. can never be computed. Just drop this variable and the equation belonging to it.

I understand it that you cannot check my model. But perhaps you can answer me this question:

I have two equations in my model, which seems to be redundant in my eyes:

  1. GDP = Private Consumption + Government Consumption + Investments + Exports - Imports
  2. Foreign Debt = Exports - Imports + Foreign Debt (-1) * Foreign Interest Rate

Are these equations redundant??
If so, I have to use a different equation that is missing, do you have a hint, which one could be missing? Since I need an equation for the foreign debt, as I have a closing equation like Schmitt-Grohe and Uribe have (debt elastic interest rates), the new equation has to include foreign debt.

(One note: I do not have a nominal interest rate. All variables are real. Sorry for the misinformation.)

Just one thing:

I was thinking about what I write and I quess I really only need the second equation.
But for estimation I need a definition of GDP in my model. So I have to include equation number one.
Thus is it still true that singularity of the model is a problem then?

I also was wondering about the error message dynare has printed:
model_diagnostic: the Jacobian of the static model is singular
there is 1 colinear relationships between the variables and the equations
Colinear variables:
Colinear equations

It says that there is 1 colinear relationships between the variables and the equations but also says that 20 equations are colinear. HOW CAN THAT BE???

That is the equation number with the presumably detected problem, not the number of problematic equations.

Regarding your previous question, the foreign interest rate should contain the debt elastic interest premium. Does your model have a unit root? Use check;
to see this.

No I have no unit root. I found a way to solve the singularity problem, but I do not understand it:

Here is what I have done:

  1. I have a Taylor rule in my model:
    RB/steady_state(RB) = (RB(-1)/steady_state(RB))^(phiiRB)(PI/steady_state(PI))^(phiiPI)(Y/steady_state(Y))^(phiiY);
  2. I changed the steady_state command of the inflation PI with a value I have calculated for the steady state of PI, namly PIss:
    RB/steady_state(RB) = (RB(-1)/steady_state(RB))^(phiiRB)(PI/PIss)^(phiiPI)(Y/steady_state(Y))^(phiiY);

Now, no error message appears anymore. WHY???

Please send me the two different mod-files.

Ok, it seems you are trying to determine variables in steady state that cannot be endogeneously.

  1. Take inflation: every percentage point higher steady state inflation will increase the steady state nominal interest accordingly. But any consistent combination of both (via the link the Fisher equation provides) is feasible. You need to pin down one of them by setting the value. The model cannot do this for you.
  2. Take bonds. When Ricardian equivalence holds, bonds and lump sum taxes are perfect substitutes. You cannot tell the model to separately identify both in steady state as only their sum is determined. In contrast, when you fix one in steady state, the other one is also automatically determined.

That is the reason the model is singular when you use the steady state operator.

Okay. I understand. Thank you again for your help.
If I understand you correctly, when comming to estimation I have to use the #-operator for the steady state values, so that dynare changes the steady state values during finding the estimates. Am I right? I think I have to do this, because if I do not use the steady_state command, dynare does not change the steady state values PIss and Bstarss. Or does I not need the #-operator since I have declared PIss and Bstarss as parameter?

You are confusing somehting (see my guide on observation equations). Only independent parameters are to be specified as parameters while functions of these parameters should be model-local variables (the ones with the #-operator). For example, you can estimate beta and Pi_ss from data, but this will define the steady state of the nominal interest rate. Thus, R_ss must be a model-local variable.