Why are oo_.steady_state and oo_.mean both zero after log-linearization (even with order=2)?

Hi everyone,

After I log-linearized my DSGE model and ran it in Dynare, I noticed that both oo_.steady_state and oo_.mean are zero, regardless of whether I use a first-order (order=1) or a second-order (order=2) approximation.

I have several related questions:

  1. Why are both oo_.steady_state and oo_.mean equal to zero after log-linearization?

  2. Can Dynare still recognize or compute the true steady-state values of the original (non-log-linearized) variables?

  3. If I want to see the actual steady-state levels rather than zero deviations, how should I define or recover them in the model file?

  4. I plan to conduct conditional and unconditional welfare analysis to compare two policy scenarios. Is it still possible to perform meaningful welfare computations when the model has been log-linearized, or do I need to use a nonlinear (levels-based) specification so that Dynare can capture the second-order terms required for welfare evaluation?

Thank you very much for your help!

My main question is:

Can a log-linearized model still be used for meaningful conditional and unconditional welfare analysis in Dynare, or do I need to return to the nonlinear (levels-based) version of the model so that Dynare can compute the second-order welfare terms correctly?

If you log-linearized your model, the model will be linear. Consequently, a higher-order approximation will not capture the second-order terms you removed from your model. You generally cannot use such a linear model for welfare comparison.

Thank you very much!
I followed your suggestion and successfully implemented the welfare loss approach — it worked perfectly. I really appreciate your guidance!