Bayesian estimation: Definition of shocks


I have got a question concerning the definition of shocks in bayesian estimations. Having read several posts from this forum I have realized that some mod-files define the shock processes in separate shock blocks, others do not. In the user guide example attached below, for example, the variance of e is not defined. However, it can be estimated perfectly.
I thought that for estimating a model it is necessary to include at least as many shocks as observable variables in order to achieve nonsingularity in the forecast errors. Doesn’t that mean that I have to define the shocks in a separate shocks block, as in the case where we simulate the model without using data? And if not, why does the User guide example run then and other models don’t because of singularity in the forecast errors?
Does it depend on the computing mode?

Thanks in advance for your replies!

RBC_Est1.mod (773 Bytes)

Your model always has as many shocks as you specified in the var_exo statement. For non-singularity, you need as many non-zero variance exogenous shocks as observables.

Now for the distinction between the shocks-block and the estimated_params block: The shocks-block calibrates the model variances while the estimated_params-block specifies which parameters are to be estimated. estimated_params will override the calibration for any estimated parameter, but will leave the non-estimated parameters at the calibrated values.

As the fs2000.mod in the example folder shows, you can estimate models without specifying parameters before the model block and without a shocks-block, if all parameters are estimated. As a matter of good programming practice in Dynare, you should always fully calibrate your model using the shocks-block and the parameter settings before the model block.

Consider a case with two shocks, var_eps_1 and var_eps_2 and two observables obs_1 and obs_2. This model will not be stochastically singular. If you use

estimated_params; stderr var_eps_1,... stderr var_eps_2,... end;
you won’t need a shocks-block as everything you set there will be overwritten. But if you only estimate let’s say var_eps_1

estimated_params; stderr var_eps_1,... end;
the variance of var_eps_2 will be kept at the value previously specified in the shocks-block. If you don’t have one, its variance will be initialized to 0 and you effectively only have one shock. Then, your model will be stochastically singular although you have two shocks in the var_exo statement. Thus, you should always have a shocks-block.

1 Like

Thank you very much, jpfeifer!

That makes sense and I think I got the problem! I didn’t think of the opportunity that the shock variances can also be subject of estimation. I think the fact that in some mod-files the models were fully calibrated and in others not was a bit confusing for me. So the decision of whether I estimate the shocks or leave them calibrated is made only through statistical and economic reasoning. In other words, you look at the observed data and the results from the estimations and decide on whether you include the shocks in the estimation_params block or not.

That’s good to know :smiley: