Fixed bug in initial_estimation_checks + Cosmetic changes.

time-shift
Stéphane Adjemian (Charybdis) 2012-03-30 11:12:59 +02:00
parent 7feb27fe1c
commit 9cc4661942
2 changed files with 17 additions and 12 deletions

View File

@ -113,7 +113,7 @@ if options_.dsge_var
end end
oo_ = initial_estimation_checks(xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_); oo_ = initial_estimation_checks(objective_function,xparam1,dataset_,M_,estim_params_,options_,bayestopt_,oo_);
if isequal(options_.mode_compute,0) && isempty(options_.mode_file) && options_.mh_posterior_mode_estimation==0 if isequal(options_.mode_compute,0) && isempty(options_.mode_file) && options_.mh_posterior_mode_estimation==0
if options_.smoother == 1 if options_.smoother == 1

View File

@ -1,4 +1,4 @@
function DynareResults = initial_estimation_checks(xparam1,DynareDataset,Model,EstimatedParameters,DynareOptions,BayesInfo,DynareResults) function DynareResults = initial_estimation_checks(objective_function,xparam1,DynareDataset,Model,EstimatedParameters,DynareOptions,BayesInfo,DynareResults)
% function initial_estimation_checks(xparam1,gend,data,data_index,number_of_observations,no_more_missing_observations) % function initial_estimation_checks(xparam1,gend,data,data_index,number_of_observations,no_more_missing_observations)
% Checks data (complex values, ML evaluation, initial values, BK conditions,..) % Checks data (complex values, ML evaluation, initial values, BK conditions,..)
% %
@ -35,19 +35,24 @@ if DynareDataset.info.nvobs>Model.exo_nbr+EstimatedParameters.nvn
end end
% check if steady state solves static model (except if diffuse_filter == 1) % check if steady state solves static model (except if diffuse_filter == 1)
[DynareResults.steady_state] = ... [DynareResults.steady_state] = evaluate_steady_state(DynareResults.steady_state,Model,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
evaluate_steady_state(DynareResults.steady_state,Model,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
% Evaluate the likelihood.
[fval,a,b,c,d] = feval(objective_function,xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults);
if DynareOptions.dsge_var if DynareOptions.dsge_var
[fval,cost_flag,info] = DsgeVarLikelihood(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults); info = b;
else else
[fval,cost_flag,ys,trend_coeff,info] = dsge_likelihood(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults); info = d;
if DynareOptions.mode_compute == 5 end
% this call is necessary to initialized persistent variable
% 'penalty' in dsge_likelihood_hh if strcmp(objective_function,'dsge_likelihood') && DynareOptions.mode_compute==5
[fval,llik,cost_flag,ys,trend_coeff,info] = ... % this call is necessary to initialized persistent variable
dsge_likelihood_hh(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults); % 'penalty' in dsge_likelihood_hh
end [fval,llik,cost_flag,ys,trend_coeff,info] = ...
dsge_likelihood_hh(xparam1,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults);
elseif ~strcmp(objective_function,'dsge_likelihood') && DynareOptions.mode_compute==5
error('Options mode_compute=5 is not compatible with non linear filters or Dsge-VAR models!')
end end
if info(1) > 0 if info(1) > 0