diff --git a/matlab/particle/sequential_importance_particle_filter.m b/matlab/particle/sequential_importance_particle_filter.m index cbf675237030ba8b473837a6f222cd95a3d14023..a383632433d95082bd1c4f603f5019fd584e01d6 100644 --- a/matlab/particle/sequential_importance_particle_filter.m +++ b/matlab/particle/sequential_importance_particle_filter.m @@ -115,7 +115,7 @@ lik = NaN(sample_size,1); % Initialization of the weights across particles. nb_obs_resamp = 0 ; -weights = ones(1,number_of_particles) ; +weights = ones(1,number_of_particles)/number_of_particles ; StateVectors = bsxfun(@plus,StateVectorVarianceSquareRoot*randn(state_variance_rank,number_of_particles),StateVectorMean); for t=1:sample_size yhat = bsxfun(@minus,StateVectors,state_variables_steady_state); @@ -134,10 +134,9 @@ for t=1:sample_size if (Neff<.5*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) ; + weights = ones(1,number_of_particles)/number_of_particles ; elseif strcmpi(DynareOptions.particle_filter.resampling.status,'none') StateVectors = tmp(mf0,:); - weights = number_of_particles*weights; end end