I am using three order perturbation method to solve the model. I want to quantify the relative importance of each shock, so performing a historical decom position of some observable variables is sensible. But I do not know if dynare can do it.

The shock_decomposition relies on the linearity at first order so that the actual observations can be decomposed into the individual contributions. At higher order, that decomposition does not work anymore, because the individual contributions are not additive anymore as there are interaction effects between the shocks. The same applies to the variance decomposition. What you can always do is simulate the model at higher order with only one shock at a time. But for that you would need to run a particle smoother, not the Kalman smoother underlying the shock_decomposition command.

Thank you for your reply! So, what you mean is that shock_decomposition command can not work in higher order model, and this command only use kalman filtering. Is my understanding right?

Another question is why simulating the model at higher order only works for one shock at a time. Many thanks!

Whatever you do, the shock_decomposition command will be based on the Kalman smoother, i.e.

[quote=“jpfeifer”]Whatever you do, the shock_decomposition command will be based on the Kalman smoother, i.e.

Another question is why simulating the model at higher order only works for one shock at a time. Many thanks!

Once you have the values of the shocks, you can simulate any combination of shocks you like. You were asking for shock_decomposition, which provides the contribution of a single shocks. If you are interested in interaction effects of several shocks, you can simulate the them jointly.

Thanks! It’s really helpful.