Merge pull request #926 from JohannesPfeifer/return_values
Make sure non_linear_dsge_likelihood.m and dsge_var_likelihood.m retu…time-shift
commit
450520e946
|
@ -239,10 +239,38 @@ else% Evaluation of the likelihood of the dsge-var model when the dsge prior wei
|
||||||
lik = .5*lik;% Minus likelihood
|
lik = .5*lik;% Minus likelihood
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if isnan(lik)
|
||||||
|
info = 45;
|
||||||
|
fval = objective_function_penalty_base + 100;
|
||||||
|
exit_flag = 0;
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if imag(lik)~=0
|
||||||
|
info = 46;
|
||||||
|
fval = objective_function_penalty_base + 100;
|
||||||
|
exit_flag = 0;
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
% Add the (logged) prior density for the dsge-parameters.
|
% Add the (logged) prior density for the dsge-parameters.
|
||||||
lnprior = priordens(xparam1,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
|
lnprior = priordens(xparam1,BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
|
||||||
fval = (lik-lnprior);
|
fval = (lik-lnprior);
|
||||||
|
|
||||||
|
if isnan(fval)
|
||||||
|
info = 47;
|
||||||
|
fval = objective_function_penalty_base + 100;
|
||||||
|
exit_flag = 0;
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if imag(fval)~=0
|
||||||
|
info = 48;
|
||||||
|
fval = objective_function_penalty_base + 100;
|
||||||
|
exit_flag = 0;
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
if (nargout == 8)
|
if (nargout == 8)
|
||||||
if isinf(dsge_prior_weight)
|
if isinf(dsge_prior_weight)
|
||||||
iXX = iGXX;
|
iXX = iGXX;
|
||||||
|
|
|
@ -319,9 +319,11 @@ DynareOptions.warning_for_steadystate = 0;
|
||||||
LIK = feval(DynareOptions.particle.algorithm,ReducedForm,Y,start,DynareOptions);
|
LIK = feval(DynareOptions.particle.algorithm,ReducedForm,Y,start,DynareOptions);
|
||||||
set_dynare_random_generator_state(s1,s2);
|
set_dynare_random_generator_state(s1,s2);
|
||||||
if imag(LIK)
|
if imag(LIK)
|
||||||
|
info = 46;
|
||||||
likelihood = objective_function_penalty_base;
|
likelihood = objective_function_penalty_base;
|
||||||
exit_flag = 0;
|
exit_flag = 0;
|
||||||
elseif isnan(LIK)
|
elseif isnan(LIK)
|
||||||
|
info = 45;
|
||||||
likelihood = objective_function_penalty_base;
|
likelihood = objective_function_penalty_base;
|
||||||
exit_flag = 0;
|
exit_flag = 0;
|
||||||
else
|
else
|
||||||
|
@ -332,4 +334,18 @@ DynareOptions.warning_for_steadystate = 1;
|
||||||
% Adds prior if necessary
|
% Adds prior if necessary
|
||||||
% ------------------------------------------------------------------------------
|
% ------------------------------------------------------------------------------
|
||||||
lnprior = priordens(xparam1(:),BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
|
lnprior = priordens(xparam1(:),BayesInfo.pshape,BayesInfo.p6,BayesInfo.p7,BayesInfo.p3,BayesInfo.p4);
|
||||||
fval = (likelihood-lnprior);
|
fval = (likelihood-lnprior);
|
||||||
|
|
||||||
|
if isnan(fval)
|
||||||
|
info = 47;
|
||||||
|
fval = objective_function_penalty_base + 100;
|
||||||
|
exit_flag = 0;
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if imag(fval)~=0
|
||||||
|
info = 48;
|
||||||
|
fval = objective_function_penalty_base + 100;
|
||||||
|
exit_flag = 0;
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
Loading…
Reference in New Issue