Hi all,
I am trying to understand how estimation works with Occbin, and I’m using Johannes’ NKM.mod file (tests/occbin/filter · master · Dynare / dynare · GitLab) as a toy example.
One issue I encounter is the way Occbin selects shocks that need to drop out during the periods when some observable is constant, say the interest rate when the ZLB binds.
In Johannes’ file, the command
inx = strmatch(‘epsi’,M_.exo_names);
if any(isnan(inom))
M_.heteroskedastic_shocks.Qscale_orig.periods=find(isnan(inom));
M_.heteroskedastic_shocks.Qscale_orig.exo_id=inx;
M_.heteroskedastic_shocks.Qscale_orig.scale=0;
instructs Dynare to drop the monetary shock when the interest rate drops out of observables.
When I run the file as it is written, and estimate the model using the inversion filter, I get the expected result: epsi is zero when the ZLB binds. See Fig 1 attached.
When I slightly modify the file to reorder the declaration of shocks, say to
varexo
epsi (long_name=‘Notional interest rate shock’)
epss (long_name=‘Risk premium shock’)
epsg {\varepsilon_g} (long_name=‘Productivity growth shock’)
;
the output I get signals that Dynare chooses to drop the risk shock instead of the monetary shock. This is in spite of the command instructing Dynare to drop the monetary shock. See Fig 2.
Even weirder, the smoothed shocks are the same as before, but the labels have changed - ie what Dynare calls epss, which now drops out during the ZLB, exactly corresponds to the smoothed epsi from the original version.
I ran into the issue by adding more shocks to the model and I would like to understand what is going on.