Steady State and Strange IRFS

Hi folks,

I am working on a production network model with capital. For simplicity, the sector number is currently set by two instead of 37. There are multiple questions about this code:

The code can generate a steady state by putting into a random guess (The code can generate a steady state for a specific set of initial guesses (initval). ). However, the code cannot find a steady state if I remove the guess (even though I randomly generated it). When I increase the sector number from 2 to 8, the steady-state fails to be seen again.
From the simulation of the IRFs, I found that consumption, capital, and investment do not return to the original steady state.

Does anyone have an idea? Any comment will be appreciated! The code mod-file, model, and IRFs are attached below.


code.mod (5.6 KB)


Model setup:

  1. Having no initial values implicitly sets them to 0. Zero is not allowed for most variables like consumption. Thus, it’s not surprising it does not work.
  2. Your IRFs are not permanent, they are just very persistent. Increase periods to see this.

Dear Jpfeifer,

Thanks for the prompt reply! You are absolutely correct about the IRFs after we extended the periods. However, this might not be the appropriate steady-state since the initial guess is unreasonable. To question 1, in the code, variables that should not be 0 are in exp(), so I would not be too worried about this issue.

My most struggling problem with this code is that it can not find a steady state for the general case when I have more than two sectors, with or without a reasonable guess of the initial value. For example, when I use the solved steady state allocations for the two sectors as an initial guess for the three sector case (which should be reasonable given the symmetry of the sectors), the solver fails to converge to a steady state.

Is there any way I can tell whether the problem comes from the code or the model itself? I hope I did not commit any of the deadly Dynare sins… Also, is there a way to generate a reasonable initial guess for a large model? Thank you!

Below is the updated version of the code.

code_xij.mod (6.0 KB)

You should only use exp()-substitutions once the model works. There are many cases where the steady state finding works better that way. Regarding your last question, for big models often the only solution is to manually compute the steady state using pencil and paper.