Notation of steady-state variables

Dear professor,

how do I designate the steady-state variables in Dynare? In my non-linear system, I have varables in various periods (e.g. k and k(+1)), as well as variables that aren’t set in any specific time period.

Hi, You can use the steady_state operator in the model block, see the manual here.

Best,
Stéphane

Many thanks. Now I get the following message:

error: Impossible to find the steady state (the sum of square residuals of the static equations is 346478624281152215066805872165644584363345728704245802205184.0000). Either the model doesn’t have a steady state, there are an infinity of steady states, or the guess values are too far from the solution

Could you provide any insight on what am I doing wrong?

Model.txt (1.7 KB)

You did not provide an initial values. Also, the steady states of the exogenous variables cannot be endogenously determined. You need to set them. A similar problem will appear for the interest rate. See

I understand. But how are the initial values obtained? Some sources say I should plug in the parameters values and solve the (very complex) system of equations. Others simply use values for variables like y=1.2 and k=12 from literature, e.g. Mr Willi Mutschler: RBC Baseline Model: steady-state derivations and implementation in Dynare (with preprocessing tips) - YouTube starting at 14.00.

Ideally, you compute the steady state analytically. You can try to find the steady state numerically with simple initial values, but that can only work if the steady state can be computed endogenously, e.g. there must be no unit root.

So, analytical solution means adding “steady_state_model” block, in which I assume a steady state, thus I start by setting all 5 shock variables to 0 and assume stationarity (e.g. k=k(+1)=k(+2)) and then express all equations in terms of labour, as in Mr Mutschler’s example.

However, in one of the equations, I obtain undefined result if I divide with zero in 1/x. Hence, I assume there’s only numerical solution to my system?

In your notation, the shocks need to be 1, because you take their logs.

Of course, thank you!

I have one further question about the "steady_state_model” block. As per Mr Mutschler (4 methods to compute the steady state of a DSGE model in Dynare - YouTube), I have to sequentially construct the block, setting the variables using variables already determined in previous equations. However, in my case, after setting all 5 shocks to 1, I cannot express any other variable using just parameters and shock variables. Can I in this case manually determine one variable, e.g. set price level pi=0 in order to facilitate the solution?

Model.mod (2.0 KB)

Generally no. But in New Keynesian models the Fisher equation tells us that steady state inflation can be picked by the researcher.

I realised I have to determine value of several variables in order for the steady state model to be executable sequentially. However, if I do that, I get error message:

error: The steadystate file did not compute the steady state

Model.mod (2.4 KB)

pi cannot be 0 as it is the gross inflation rate. Using
Model6.mod (2.3 KB) improves the situation. But there must be further mistakes in your computation.

Nice, so I can drop the initval block, thank you. One more question, in the steady_state_model, can I already input the 1 instead of shocks x,a,e,z,v (and equate k=k(+1) etc.)?

Yes, that is the way to compute the steady state.

I corrected several mistakes and doublechecked the model and steady state model equations. Now everything seems correct, except for the two equations, where I computed different results than the paper by Mr Röhe, that I’m trying to replicate. However, even if I follow Röhe, Dynare still doesn’t compute steady state.

The differences are in the expression for y on page 80/262 and lambda on page 81/262
Model7.mod (2.3 KB)

Have you tried contacting the author?

Thank you for idea, I haven’t managed to find any working email address on the internet. I will try contacting Deutsche Bundesbank, where he posted his most recent paper.

However, Dynare returns the same error message, both in case I correct the two “mistakes” or if I don’t. Is it possible that the problem is somewhere else?

Model7.mod (2.3 KB)

That’s hard to tell. See previous discussions like

Ultimately, it’s often hard to tell what is going on without re-deriving everything again.

I have contacted the author as per your suggestion and received very friendly answer, now my Dynare file works after 3 years of trying. I’m very thankful for all your answers in this time.

I have another question, what does double slash (//) mean at the beginning of line in Dynare model file?
Model_OR.mod (3.3 KB)

// at the beginning of the line means that the specific line has been “commented out”, that is to say, it is meant to be ignored by the program.

1 Like