I am wondering if there is any plan for supporting particle filter estimation of nonlinear models with missing observations. Is there any workaround to this right now? I currently want to perform estimation of a model at a monthly frequency but where some data are only observed at an annual or quarterly frequency.
@stepan-a and @frederic.karame may know. But looking at the codes, it might be straightforward to implement for some filters. Which one did you have in mind?
I was planning to use an auxiliary particle filter for parameter/state estimation but even a bootstrap particle filter would be fine.
It is not difficult a priori.
I will have a look Thursday.
Thank you!
Try this and let me know (put these two files in the same rep that your mod-file).
auxiliary_particle_filter.m (9.8 KB)
sequential_importance_particle_filter.m (7.9 KB)
I will push them in Dynare unstable if it is OK.
Best,
Thank you! I’ll give this a test and let you know.
Dear Prof. Pfeifer,
I am trying for the first time to use the particle filter for the estimation of a nonlinear model with Dynare. A linear version of the mode works fine.
The command I am using is:
estimation(order=2, datafile=data_Climate, number_of_particles=1000, mode_compute=11, silent_optimizer,mh_replic=0);
And the error messages I am getting are:
ESTIMATION_CHECKS: There was an error in computing the likelihood for initial parameter values.
ESTIMATION_CHECKS: If this is not a problem with the setting of options (check the error message below),
ESTIMATION_CHECKS: you should try using the calibrated version of the model as starting values. To do
ESTIMATION_CHECKS: this, add an empty estimated_params_init-block with use_calibration option immediately before the estimation
ESTIMATION_CHECKS: command (and after the estimated_params-block so that it does not get overwritten):
Error using initial_estimation_checks
Error using initial_estimation_checks
initial_estimation_checks:: particle filtering requires measurement error on the observables
Error in dynare_estimation_1 (line 165)
oo_ = initial_estimation_checks(objective_function,xparam1,dataset_,dataset_info,M_,estim_params_,options_,bayestopt_,bounds,oo_);
Error in dynare_estimation (line 105)
dynare_estimation_1(var_list,dname);
Error in Climate_NonLin_estim.driver (line 628)
oo_recursive_=dynare_estimation(var_list_);
Error in dynare (line 310)
evalin(‘base’,[fname ‘.driver’]);
Not sure I understand what the problem is and how to follow the tentative instructions provided. I wonder whether anyone could offer some help. Many thanks!
As the message says, estimation with a particle filter requires measurement error on the observables.
Many thanks! For some reason, I missed that part and focused on the initial values for the estimation block.