I have just a quick question on the particle filter implementation. Is the particle filter in Dynare smooth/robust enough to work with a gradient-based method (like CSMINWEL) for the posterior mode calculation? It would appear so looking at the code and some of my results, but just wanted to confirm. If so, what kind of particle filter is being used? Auxiliary, SIR, or perhaps something more advanced that I’m not familiar with?
Thanks in advance,
Unfortunately, the particle filtering is not yet official, still under development and mostly undocumented.
You are correct that the resampling step in particle filtering introduces a discontinuity as discussed in Fernandez-Villaverde/Rubio Ramirez (2007): “Estimating Macroeconomic Models:A Likelihood Approach” and Andreasen (2009): “How to Maximize the Likelihood Function for a DSGE Model” . My own experience is that using a gradient based method often works out, but is still discouraged. Based on the latter paper, I would recommend using mode_compute=9. This might also become the new default for nonlinear estimation in future versions.
By default, sequential_importance_particle_filter.m is called.
Thank you for clearing that up. It is much appreciated.
Regarding the sequential_importance_particle_filter.m implementation, I was wondering what is the reason for line 149 and including the variance of dPredictedObservedMean in the variance of the Gaussian observation residual? I thought the variance of the observation residuals (PredictionError) conditional on the propagated states (tmp(mf1,:)) would just be H, but after looking at the code it looks like I’m going wrong somewhere. Could you shed some light on this please, or is there some detail on the derivation? I’ve looked at some other bootstrap/SIR particle filter implementations (for non-DSGE applications) and haven’t seen this done. Just curious what the reasoning is here. I’m assuming the particle filter here assumes (possibly) non-linear states with (only) Gaussian state shocks and linear observations with Gaussian measurement errors. Is the additional term related to less restrictive assumptions being made?
That’s what I thought at first as well, but it replaces this with the end steady state values. I’m looking to show my impulse responses as a deviation from the initial steady state, so the new values aren’t very useful