Ramsey_model for Cooperation with Multiple tools - Not Working

Dear all,

I am trying to solve a Ramsey model for a multi-country economy model. The case I am interested in solving with the built-in ramsey_model command is Cooperation, i.e., single policy objective function and only 1 planner.

The issue though, is that I have a model with multiple tools, and ramsey_model() is not working.

The model works fine with policy rules or if I solve the Ramsey with only 1 tool:

   planner_objective nc*(Cc^(1-sigmma)/(1-sigmma) - Hc^(1+pssi)/(1+pssi)) ;
   ramsey_model(instruments=(tauc), planner_discount=betta);   

However, if I solve it with three instruments the model won’t run. It gets stuck trying to get the Steady State.

  planner_objective nc*(Cc^(1-sigmma)/(1-sigmma) - Hc^(1+pssi)/(1+pssi)) + na*(Ca^(1-sigmma)/(1-sigmma) - Ha^(1+pssi)/(1+pssi)) + nb*(Cb^(1-sigmma)/(1-sigmma) - Hb^(1+pssi)/(1+pssi)) ;
  ramsey_model(instruments=(tauc, taua, taub), planner_discount=betta); 

Just to clarify, I made sure my file is looking for a Steady State that is conditional on the value of the instrument (I followed Johannes instructions on another post to have a valid SS file).

What else can I do to make the single planner case (with 3 instruments) work?

(attached are the files to run the model)

model.mod (15.2 KB)
model_steadystate.m (5.9 KB)
find_ss.m (1.6 KB)
model_sseqs.m (7.0 KB)
parametersMaP.mat (1.5 KB)



1 Like

The problem here is not with your steady state file for the private sector economy, but rather the steady state of the Ramsey model. That one cannot be found. This begs the question whether a unique steady state for the Ramsey model exists. Does a simpler version work?

Hi Johannes, thanks a lot for your reply!

Based on your comment, I just tried simpler versions of the model (full depreciation, no adjustment costs of investment) and it still does not work.

At the same time, I did obtain the Ramsey model using the Matlab symbolic toolbox, pretty much like Levin-Lopez Salido, Dynare ramsey_planner and Bodenstein et al (2019, JME). Under commitment, Nash and semi-cooperation works (2 countries against one), however, Cooperation does not work (I can get the SS but the BKahn conditions won’t hold). Since it’s the only case with 1 planner, I thought using the built in ramsey planner would work.

Just in case, I also just tried to set the cooperative case in Bodenstein et al (2019, JME) toolbox, making use of the symmetry between peripheries and thus setting a two planner game where the third planner just mimics the instrument of the second. I know you guys don’t give support on other Authors’ toolboxes but still wanted to mention that in there, I get the SS too, but the B-Kahn conditions won’t hold either. Surprisingly enough, in my codes B-Kahn won’t hold due to Indeterminacy, whereas using their toolbox it won’t hold due to Instability.

Finally, and I know it’s not entirely comparable, I set the discretionary policy case (also using the symbolic toolbox to get the Ramsey FOCs). In that case Cooperation works. However, I am trying to get the Commitment case here (funny enough, under discretion not all of the other policy frameworks work).

Anyhow, one final thing I want to mention related to your reply:

When I look for the Steady States (using Christiano, Rostagno and Motto (2007) algorithm for instrument-conditional steady states) the Cooperation case is the only one in which I get several steady states (I get 2, the solver will converge to one or the other depending on the initial values).

Do you think it can be argued that such version of the model (Coop) has several equilibria based on obtaining two steady states?

I don’t know how to interpret that one policy framework depicts this feature when the rest are better behaved (only one SS and B-Kahn conds holding).

Thanks again for replying and any attention you can put into this, I highly appreciate it.



1 Like

I am not entirely following your description as this is not my literature. The big question for me is: is this a problem with Dynare or the model itself? It seems you did cross-checks with other toolboxes. Did that reveal anything?
When you say:

does that mean you found a steady state but Dynare does not?

Thanks for your reply,

Yes, I did check with several toolboxes (including Dynare builtin ramsey_model which was what I asked about).

Other than Dynare’s built-in ramsey_planner I tried to write my own code (using the symbolic toolbox for the Ramsey FOCs) and tried using Bodenstein et al (2019) toolbox for “Macroeconomic Policy Games”.

(CAN SKIP THIS paragraph, it’s just context on the SS solution)

On the Citation and Method used for the SS conditional on an instrument:

The citation I mention for the SS just refers to the procedure followed in all these toolboxes for finding an instrument conditional SS ( https://faculty.wcas.northwestern.edu/~lchrist/d16/d1606/ramsey.pdf). The difference to the standard method is given by the fact that you ex-ante set a value for the instrument, then solve for the rest of variables (economic variables and policy lagrange mult).

This also seems to be what Dynare does and the reason of why when running with external files we cannot impose a given value in the steady-state file. In another post you helped me fix the code so that my SS file uses the instrument that Dynare is imposing in the current iteration (and not one I am providing as initial).

The added difficulty from setting the instrument value ex-ante is that you have some extra equations in the static system (as many more as instruments you are setting exante). Hence the solution to the static system is not the typical of finding N unknowns from N static variables. In the algorithms these toolboxes follow, find an approximate solution repeatedly for several values of the instrument and at the end, the Instrument Steady State is given the value that minimizes a norm of a vector of errors (very similar to how in an OLS the beta vector of size K minimizes the norm of the errors in N equations, with N > K)

(Answer continues here)

So Yes, I found the Ramsey SS and Dynare ramsey_planner didn’t

From there (the other Matlab codes and toolboxes) is where I can tell you that I have been able to find the Steady State for the Cooperative case (also for the non-cooperative ones but those cases are working). In the case of Cooperation I find 2 steady states, i.e., the mentioned algorithm converges to 2 solutions depending of my initial point.

When I solve the minimization leading me to the instrument steady state the solution looks like this:

(each row is a solution with a different initial point, allTools is the SS of the instrument, given symmetry the second one is the SS inst. value for two peripheral countries. Fval is just the value of the function being minimized):

>> fvals
fvals =
   1.0e-06 *
>> allTools
allTools =
  -0.863867770817641  -0.696571779462338  
  -0.863811368331457  -0.696527014684744  
  -0.863858183772768  -0.696564676442737  
  -0.863799593203131  -0.696526695668037  
  -0.017594419885106   0.279950004915512
  -0.017598811143025   0.280009973625563
  -0.017549046182765   0.279986344816593
  -0.863798750838208  -0.696524538654685  
  -0.017603804133000   0.279960319674315  

As you can see there are two potential SS: (-0.863, -0.696) and (-0.017, 0.279).

This does not occur with the other cases (Nash, Semicooperation 1 and 2).

Unfortunately, even after having the SS for the RamseyCoop model the Blanchard-Kahn conditions won’t hold with any toolboxes or my code so my guess is that even if Dynare ramsey_model() would obtain the SS, probably the same would happen.

My questions are two-fold:

  1. Why Dynare cannot find the SS and obtain a solution for the Cooperative case with 1 planner and 3 instruments? (it worked for 1 instrument).

  2. What does it mean to find 2 Steady States (as I did in Cooperation)?. Is this a sign of a multiple equilibria case and gives any hints on why the Blanchard-Kahn condition won’t hold with the other toolboxes (or my code using the symbolic toolbox) leading to indeterminacy?



Thanks for the detailed information. Unfortunately, this is a more complicated issue than normal. It may take a bit to have a deeper look at the issue.

Hi I am learning Bodenstein et al (2019, JME) and their toolbox. But I came across a lot of obstacles and can not run it successfully. I am a new learner of DSGE and Dynare. Their toolbox was released in 2019, so that I guess there are some problems with editions. I first tried to edit some coding I am familiar like the _steadystate.m, but still can not walk through it afterwards. For now, I could not calculate the LM variables. To be specific, when I run the OLS as the toolbox did, it said the matrix deficiency. This problem confuses me for a long time as well as this toolbox. Could you please give me some clues? Would you mind sharing the code that works? Thank you so much

If you use their toolbox I recommend using versions of Dynare from that time, anything before 4.6. After that version (or approximately that version) the structure of the Steady State files changed.


There are other (non dynare but structural) issues you may be having. If it’s the example models of Bodenstein et al 2019 there’s no issue. But if you have a model with more planners or so, then you may have problems with the Blanchard-Kahn conditions or with finding the Steady State of the Ramsey Model (maximization problem of the planner). In the first case (too many planners), you will have to use something different to their toolbox. In the other case (difficulty finding the Steady State), try to simplify the model as much as you can, usually too many restrictions they may not care about lead to zero-valued Lagrange multipliers for the planners that generate problems of singularity that the problem cannot get around to for estimation.

For the Steady state is also useful to follow Christiano, Motto, and Rostagno (2007):

In this case, you would be finding an Instrument Contingent Steady State (a slightly different concept than the usual steady state but that’s also a solution to the static system of equations of the Ramsey model)

1 Like