Since in perfect foresight simulations with permanent shocks the steady state of the model changes, the use of STEADY_STATE() in the model block is ambiguous. This issue has already been raised in the following GitHub forum: https://github.com/DynareTeam/dynare/issues/835. The discussion has not come to a conclusion, though, and I wonder whether this issue has been resolved?
To better outline the problem, I will make a quick example:
Let’s assume the initial and end steady state of our permanently shocked simulation is init_SS and end_SS. Let’s assume further, that the monetary policy rule in the model block features a term " GDP / STEADY_STATE(GDP) ", the idea being that the nominal interest rate moves with deviations of GDP to its steady state. When Dynare calculates the perfect foresight solution, does it assume that STEADY_STATE(GDP) = init_SS (GDP) or = end_SS(GDP)? Does Dynare even switch the interpretation of STEADY_STATE(GDP) from init_SS (before the shock; up t=0 in case of a shock at t=0) to end_SS after the shock?
It would be great if this could be cleared up.
Thanks,
Ivan
Dynare should compute the steady state conditional on the value of the exogenous variables (which presumably differ here). But I am not sure that correctly works. If you have an example file to check the behavior that would be great.
I have attached a very simple example file that illustrates what I found out in the meantime with the help of a colleague, namely that STEADY_STATE switches in the period that a change in the exogenous variable is known. The example file should be self-explanatory.
Note, you can run the code for ANTICIPATION = 0 where the permanent shock is unanticipated or ANTICIPATION = 1 where (if I coded this correctly), the shock is permanent but happens only at t=10. Also in this latter case STEADY_STATE() switches to the final SS in t=1.
I would like to know if there has been any changes in this regard since this post was actif.
Does the steady_state command in a perfect foresight simulation with permanent shocks uses the steady state value of the variable at each shock value ? Meaning does the steady state state value changes at each iteration?
If the steady value changes at each iteration, is there a way to call the value of the variable in the endval block ?