Skip to content
Snippets Groups Projects
Verified Commit 4829def3 authored by Stéphane Adjemian's avatar Stéphane Adjemian Committed by Stéphane Adjemian
Browse files

Bug fix. The value of the likelihood returned by NLKF (particle filter) was wrong.

parent 456b90cb
Branches
No related tags found
No related merge requests found
......@@ -123,6 +123,8 @@ StateVectorVarianceSquareRoot = chol(ReducedForm.StateVectorVariance)';
lik = NaN(sample_size,1);
LIK = NaN;
n = rows(Y);
for t=1:sample_size
xbar = [StateVectorMean ; zeros(number_of_structural_innovations,1) ] ;
sqr_Px = [StateVectorVarianceSquareRoot zeros(number_of_state_variables,number_of_structural_innovations);
......@@ -186,7 +188,10 @@ for t=1:sample_size
return
end
end
lik(t) = log( sum(probability2(Y(:,t),H_lower_triangular_cholesky,tmp(mf1,:)).*weights,1) ) ;
PredictedObservedVarianceSquareRoot = chol(PredictedObservedVariance);
PredictedObservedInverseVarianceSquareRoot = PredictedObservedVarianceSquareRoot\eye(n); % Inverse of the Cholesky -> inv(PredictedObservedVariance) = A*A'
StandardPredictionError = PredictedObservedInverseVarianceSquareRoot'*PredictionError;
lik(t) = -.5*n*log(2*pi) + sum(log(diag(PredictedObservedInverseVarianceSquareRoot))) - .5*dot(StandardPredictionError, StandardPredictionError);
end
LIK = -sum(lik(start:end));
......@@ -1795,6 +1795,9 @@ mod_and_m_tests = [
{ 'test' : [ 'particle/noisy_ar1.mod',
'particle/noisy_ar1_nlf_sis.mod'],
'extra' : [ 'particle/noisy_ar1_data.m'] },
{ 'test' : [ 'particle/noisy_ar1.mod',
'particle/noisy_ar1_nlf_nlkf.mod'],
'extra' : [ 'particle/noisy_ar1_data.m'] },
{ 'test' : [ 'particle/dsge_base2.mod' ],
'extra' : [ 'particle/risky.m',
'particle/extreme.m',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment