IRFs with explosive dynamics if shocks are large

Hi All,

I would like to have your advice on the following matters:

I am simulating a dsge model in Dynare (using stoch_simul, second order approx.). The Blanchard Kahn conditions are satisified and the model computes policy and transition functions. However, I notice that the impulse response functions display explosive dynamics if I set the irf shock significantly above the default value. This is the case even though the variance of the shocks is very low.

It would seem that the policy functions are not fully cancelling the dynamics associated with the “explosive” roots, but this only becomes an issue if the shock is above a certain threshold. Can this be the case?
If so, is there something I can do?

I also have a related problem: if the volatility of the shocks is high, then the correction to the constant term in the policy function (from Schmitt-Grohe and Uribe 2004) becomes very large and also leads to explosive dynamics. In principle, I am only worried about deviations from a non-stochastic steady state, so the correction to the constant should not matter. Is there a way to set that correction to 0? Or is that not appropriate?

Your help would be most appreciated.

Many thanks,

  • Rafael


second order effects can, if the state is disturbed far from det. steady state, make paths explosive. It is not wrong, that is how it should be. Possible remedy could be trying higher orders with dynare++ or, if the model is small, use some global approximation method.

The constant term behaviour also should be as you are describing. It entails deterministic effects of volatility. If shocks are large, it usually grows (not necessarily) pushing the ergodic mean further from the det. steady state (i.e. point about which 2nd order was done). This has similar effects as a large shock above, which is making a simulation path explosive. Again possible remedy is to use higher orders, and/or calculate approximation about something closer to the ergodic mean. Implemented as “–steps” option in dynare++. See its tutorial.

These deterministic effects of volatility (level term in 2nd order approx, dynamical terms in higher) are very important. If dropped (as you suggest), you get a solution to a very different problem. The problem is completely deterministic, i.e. agents know they would get zero shocks. However, if you put some non-zero shock, agents are surprised. Since you fool them (information set is not consisent with what happens), this is not a rational expectation problem. What dynare and dynare++ solve is a problem, where agents have information sets defined as distributions of future shocks.

Ondra K.