How to obtain trace plots after a Metropolis-Hastings
It can be useful to plot iterations vs. sampled values for each variable (parameter) in a chain. If the Metropolis-Hastings converges to a stable distribution, the trace plot has to be stable (e.g. no trend in the sampled values).
After a metropolis (that is after the estimation command in the mod file) you just have to write:
trace_plot(options_,M_,estim_params_,type,blck,name1,name2)
where:
- options_, M_ and estim_params_ are Dynare's global structures describing the model,
type is a string equal to 'DeepParameter' (for a parameter of the structural model), 'MeasurementError' (std. or correlation in the measurement equation error) or 'StructuralShock' (for the standard deviation of a structural shock or the correlation between two shocks),
blck<mh_nblck is an integer specifying the mh chain to be considered,
- name1 is a string specifying for instance the name of a deep parameter,
- name2 is an optional second string needed if you are interested in the correlation between two structural shocks or two measurement errors.
After the estimation of the model in fs2000.mod if we want to build a trace plot for parameter alp, we write:
trace_plot(options_,M_,estim_params_,'DeepParameter',2,'alp')
and the following plot will pop up:
where the black curve is a moving average of the sampled values. That is, if the sampled values are where is the number of simulations in the Metropolis Hastings chain, the moving average curve is defined as:
for all between and . The default value of is 200. The value of may be changed by writing:
options_.trace_plot_ma = 2222;
before the call to trace_plot. A value of roughly equal to of seems to be reasonable. In our example, we see that the moving average curve is slightly downward slopping, meaning that the Metropolis Hastings did not reach the ergodic distribution after 22000 draws.