Where is the stochastic steady state in dynare?

Hi,

In dynare++, the dyn_ss stores the stochastic steady state. But what is the corresponding variable in dynare that stores the stochastic stead state, ie, fix point?
How do I find it in dynare? I couldn’t seem to find it in the oo_ variable.

I think this is relevant simple question and I would like to see the answer.

Let’s define this variable as “the risky/stochastic steady state” , ie the one that results zero line when used as the first parameter of the simult_ function with zeros as shocks.

Somewhere I found suggestion to use oo_.mean. It is not available after

stoch_simul(order=3,  nograph) ;

command.

Sorry to revive this old topic, but I could not find any clear answer to the the question of how to obtain the stochastic steady state in Dynare?

To be clear, I mean the fixed point of the system where shocks are absent, but agents take into account that shocks might happen. I know in theory that it can be calculated at the deterministic steady state + risk adjustment from the variance of future shocks. Can I retrieve the stochastic steady state of a variable X by typing

X_pos=strmatch(‘X’,M_.endo_names,‘exact’);
oo_.dr.ys(X_pos) +0.5*oo_.dr.ghs2(oo_.dr.inv_order_var(X_pos))

which jpfeifer described as “steady state plus uncertainty correction” in the topic “Welfare cost of business cycles”?

The easiest way that also works at order=3 is to simulate the model forward. See https://github.com/JohannesPfeifer/DSGE_mod/blob/master/Basu_Bundick_2017/Basu_Bundick_2017.mod

Than you very much!

And I think another way of calculating the stochastic steady state is by using the toolkit by Lan/Meyer-Gohde https://github.com/lanhongken/nlma

You said

The easiest way that also works at order=3 is to simulate the model forward

However, I guess when I have a model without uncertainty shocks, order=2 suffices?

If this is correct, I have a few follow up questions:

  1. When I use the simulation you suggest in Basu_Bundick_2017.mod but with order=2, I get the same results as for order=3. However, when I use order=2 I have the possibility to do it without pruning. Now, when calculating the stoch. steady state at second order but without pruning, I get different results and for predetermined variables, the differences are quite large. Now, which result is “most correct”? I would opt for the one without pruning. Would you agree?

  2. I can’t really get my head around what “simulation without shocks” actually means. My naive expectation would be that when I start from the deterministic steady state and consider my policy functions (which tell me how variables react to each other and to shocks) but then nothing exogenous comes into the system, how can I move away from the deterministic steady state, because there is nothing to react to. However, I guess the point is, that every period, agents expect that something could happen next period and therefore engage in some precautionary behavior. There is an uncertainty correction present at order=2 and higher which implies that the system moves from the deterministic steady state to the stochastic steady state. Is that explanation correct?

Sorry for asking so many questions today, but I have one more:

If I calculate the stochastic steady state as suggested above, simulate the model WITH shocks, starting from this stochastic steady state and using my original policy functions, could I interpret the variance I get from this simulation exercise “variance around the stochastic steady state”? I guess it’s not entirely correct, because I do not use the correct policy functions. In the replication files to Born/Pfeifer (2014) you are letting IRFs start at the stochastic steady state. For this, you are also using the policy functions which you obtained from an approximation around the deterministic steady state, if I’m not mistaken?

Those are different concepts: the point of approximation and the point where you evaluate the policy functions. It is almost always the deterministic steady state around which you do the perturbation, while the point where you compute the policy functions at higher order is either the stochastic steady state or the ergodic mean.
What exactly is it you are trying to compute, i.e. what is the idea of the exercise?

Regarding the old post I forgot to answer:

  1. Depending on what you are doing, second order is sufficient. If your simulations do not explode, do not use pruning. The pruned state space implies that you are actually solving a different model. We only do this if necessary.
  2. Yes, it is the uncertainty correction, i.e the precautionary behavior that drives you away from the deterministic steady state, even if no shocks happen.
1 Like

Thanks a lot!

You stated

while the point where you compute the policy functions at higher order is either the stochastic steady state or the ergodic mean.

So, I guess, when I run a second-order approximation (with irf=0 and no periods specified), per default, Dynare computes the policy functions around the ergodic mean, as the ergodic mean is also what Dynare provides in oo_.mean. Is that correct? How can I ask Dynare to compute the policy functions around the stochastic steady state?

What I’m trying to do is finding an explanation for my results. I’m comparing the (conditional) welfare implications of different unconventional monetary policies. And I think they are driven by differing effects of the policies on the stochastic steady state and on volatility (something which is also given as an explanation in Dedola et al. (2013)). To see which role these channels play I check how the different policies affect the stochastic steady state of some of my variables and I also want to see which effect they have on volatility. But I’m not sure at which volatility measure I should look. Volatility around the ergodic mean? (but maybe it would make more sense to look at this measure when one is interested in unconditional welfare?). Or volatility around the steady state (which I’m trying to compute right now)?

Conditional welfare can be evaluated at arbitrary points with the simult_-function. We do so in https://github.com/JohannesPfeifer/DSGE_mod/tree/master/Born_Pfeifer_2018/Welfare
The stochastic steady state can be computed by simply iterating forwards using the simult_-function with 0 shocks as in the Basu/Bundick code above.

Thanks for your answer. However, I’m still not sure what the point is at which Dynare (per default) computes the policy functions (provided in the output as POLICY AND TRANSITION FUNCTIONS) at higher order, as you stated:

The display of decision rules is about the coefficients in front of the states from the perturbation. That perturbation is always conducted around the deterministic steady state. The computation/evaluation of the policy functions for IRFs is about the state values themselves.

okay, so the sentence from you, which I was quoting, was referring to the point from which we want the IRF to start from?
But now I don’t get what you mean by

…sorry.

Is it correct that when I just let Dynare plot IRF at second-order it will start them at the deterministic steady state and use the policy functions (POLICY AND TRANSITION FUNCTIONS) to calculate the deviations from the steady state?

A linearized policy function has the form
y_t=Ax_{t-1}+B\varepsilon_t
The approximation point determines at which point in the state space x_t you compute the coefficient A. Dynare does this around the deterministic steady state, i.e. you evaluate the first order derivative in the Taylor approximation at x_t=x. Now, once you have computed A and B, you can simulate y_t for any given values on the right-hand side. The IRFs at higher order are usually computed by simulating y_t starting from x_{t-1} being either the stochastic steady state or the ergodic mean.

Now to your question. At higher order, Dynare will use the A and B computed at the deterministic steady state and will use the ergodic mean for x_t (implicitly through simulations).

1 Like

Okay, thanks. So now, I would like to come back to one of my initial questions. In the replication files to Born/Pfeifer (2014) you are letting the IRFs start at the stochastic steady state. However, what you use to compute/simulate the path of the variables in the IRFs (the deviations from the stochastic steady state) are the coefficients A and B (and C, D, E at order=2), which you originally obtained from an approximation around the deterministic steady state. Did I understand this correctly?

1 Like

Yes, that is correct.