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.