From ec9b47426aa1a07d31cea9976db90101239c9ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Charybdis=29?= <stephane.adjemian@univ-lemans.fr> Date: Fri, 9 Mar 2012 12:44:25 +0100 Subject: [PATCH] Added an option for the threshold level of neff in the generic case of the resampling routines. --- matlab/global_initialization.m | 3 ++- matlab/particle/sequential_importance_particle_filter.m | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m index 6eaf33c47..406cee251 100644 --- a/matlab/global_initialization.m +++ b/matlab/global_initialization.m @@ -179,7 +179,8 @@ particle.unscented.alpha = 1; particle.unscented.beta = 2; particle.unscented.kappa = 1; % Configuration of resampling in case of particles -particle.resampling.status = 'systematic' ; +particle.resampling.status = 'systematic'; % 'generic' +particle.resampling.neff_threshold = .5; % Choice of the resampling method particle.resampling.method1 = 'traditional' ; particle.resampling.method2 = 'kitagawa'; diff --git a/matlab/particle/sequential_importance_particle_filter.m b/matlab/particle/sequential_importance_particle_filter.m index a38363243..a7786db20 100644 --- a/matlab/particle/sequential_importance_particle_filter.m +++ b/matlab/particle/sequential_importance_particle_filter.m @@ -131,7 +131,7 @@ for t=1:sample_size lik(t) = log(mean(wtilde))+dfac; weights = wtilde/sum(wtilde); Neff = 1/(weights*weights'); - if (Neff<.5*sample_size && strcmpi(DynareOptions.particle.resampling.status,'generic')) || strcmpi(DynareOptions.particle.resampling.status,'systematic') + if (Neff<DynareOptions.particle.resampling.neff_threshold*sample_size && strcmpi(DynareOptions.particle.resampling.status,'generic')) || strcmpi(DynareOptions.particle.resampling.status,'systematic') nb_obs_resamp = nb_obs_resamp+1 ; StateVectors = tmp(mf0,resample(weights,DynareOptions.particle.resampling.method1,DynareOptions.particle.resampling.method2)); weights = ones(1,number_of_particles)/number_of_particles ; -- GitLab