Unit root variables in log-linear models

Hi All
When I code a log-linearised model in Dynare and set the AR(1) coefficient of a shock to 1, the following error message appears:
dynare_estimation_init:: The steady state at the initial parameters cannot be computed.

I have often got the same error message when I defined an equation for the level of a nominal variable say, price = inflation + price(-1).

I remember from many years ago, in the dynare code for the first Smets-Wouters Euro-area model (SW2003), the inflation target shock in the monetary policy was ‘proper’ unit root and not merely very persistent. The earlier versions of Dynare were able to handle the unit roots without any problems - if I remember correctly.

What surprises me is that when I deal with open-economy models with debt accumulation - which are non-stationary in the absence of quick-fixes like endogenous risk premia or adjustment costs - newer versions of Dynare can still ‘solve’ the model and produce impulse response functions. It is just that the model being non-stationary, the IRFs of several real variables will not return to steady-state. So with the command ‘check’, I can observe that one eigenvalue is exactly unity…which disappears when I introduce the stationarity-inducing model features.

How is it that dynare offers a model solution for one type of model exhibiting a unit root while it does not do so for other types?

Cheers
Reuben

This is very similar to question I asked which is about a nonstationary state equation. Please see: https://forum.dynare.org/t/nonstationary-state-space-model-in-dynare/11626/3

As Jonathan suggests, if you are going to do an estimation, you need to use diffuse_filter option, and both in case of simulating and estimation, you need to clearly state which steady state values should be selected for the variables for which infinitely many steady state values exist. That is, if a variable is evolving via a unit root process, there exists infinitely many steady state value of the variable and you need to state one that you need using

steady_state_model

block.

Thank you. Do you have a sample mod file where this is done?
Would a viable solution be to first simulate the model with an AR(1) coefficient of 0.99999, and then figure out the value of the new steady-state after a shock, and then use that in the steady_state_model block?

Cheers
Reuben

I would solve for the steady state analytically or conduct another solver that I cannot give an example of.

If you have, for instance, 0.02 as the growth rate and all the steady state values of other variables are zero, then you would declare:

steady_state_model;
y_growth = 0.02;
pi = 0;
...
...
...
end;

and can solve the model afterwards.

Thanks. I will try that out.

@ykkoca is right. The issue with a unit root is that the steady state is not unique. But that also implies that the Jacobian of the static model is singular. Derivative-based solvers will not be able to endogenously compute the steady state. For that reason, you need to provide it analytically. The problem does not show up in linearized models as the default steady state of 0 already works and there is nothing to compute.

Good afternoon professor pfeifer,
I am working on a linear model where I include variables such as prices and nominal exchange rate, the model runs perfectly, although I am not sure if these type of variables might induce a unit root (since they are in levels) , what do you think?
Dynare still computes the steady state as zero, as the model is linear and I am not estimating the parameters, I just need the impulse response functions which look correct according to the economic intuition
taylor444baseline.mod (7.1 KB)
Many thanks in advance

Yes, there are unit roots in your model, but they do not affect the real variables. Is there anything suspicious in your IRFs?

Thanks for your reply, no, IRF looks perfectly well.
The problem is when I try to compare monetary policies, the difference between a Taylor rule and a PEG seem trivial:
Losses PEG: 0.000190675096548136442349899444
Losses TAY::: 0.000190675096548136957345931375

What do you suggest me?

Thanks in advance

Only economic intuition can answer that. Maybe both monetary policies replicate the same allocation.

@jpfeifer Thank you for your continued efforts to help researchers and clarify complex concepts. I have learned a lot from you over the years. Both on here and from your papers.

I have a question related to this discussion. My model is a medium-scale DSGE that is written in dynare in nonlinear form. I have a few exogenous processes for tax series that I have always forced to be stationary by keeping persistence <1. So whenever I shock a tax rate, it always goes back to SS. However, I want to run a permanent shock to the tax rate. So I tried setting persistence to 1 to see if it will work, and it did! But I don’t understand why or how it did…

From the previous posts on this thread I see that setting persistence to unity will simply imply that the SS is not unique and all I have to do is provide a SS value for the unit root process (which I do in my SS file). But how does dynare deal with the singular jacobian? How is it that this is not a problem for the approximate solution.

Thanks in advance!
S

What is singular is the static Jacobian. You could not pin down the steady state endogenously. But the dynamic Jacobian is not singular, and given a steady state you can compute the dynamic adjustment path.

Thank you for the explanation.

is it possible to point me to where this applies in the “How Dynare Works” pdf linked below? (or any other resource)

Does it have anything to do with the assumption that P_u =0?

It will not appear in that document. Everything works as usual, except for the counting towards stable roots. In the documents, it’s roots smaller than 1 in absolute value. But it works the same when you have roots smaller or equal to 1.