Adapt identification routines after new dynare estimation commits.

time-shift
Marco Ratto 2011-09-28 20:48:47 +02:00
parent ebcc9d8f91
commit c6a9650d20
5 changed files with 40 additions and 27 deletions

View File

@ -476,10 +476,10 @@ if ((kalman_algo==1) || (kalman_algo==3))% Multivariate Kalman Filter
end end
if analytic_derivation if analytic_derivation
if no_DLIK==0 if no_DLIK==0
[DLIK] = score(T,R,Q,H,Pstar,Y,DT,DYss,DOm,DH,DP,start,mf,kalman_tol,riccati_tol); [DLIK] = score(T,R,Q,H,Pstar,Y,DT,DYss,DOm,DH,DP,start,Z,kalman_tol,riccati_tol);
end end
if nargout==7 if nargout==11
[AHess] = AHessian(T,R,Q,H,Pstar,Y,DT,DYss,DOm,DH,DP,start,mf,kalman_tol,riccati_tol); [AHess] = AHessian(T,R,Q,H,Pstar,Y,DT,DYss,DOm,DH,DP,start,Z,kalman_tol,riccati_tol);
end end
end end
else else

View File

@ -312,9 +312,9 @@ end % if ~isempty(options_.unit_root_vars)
% Test if the data file is declared. % Test if the data file is declared.
if isempty(options_.datafile) if isempty(options_.datafile)
if gsa_flag if gsa_flag
data = []; dataset_ = [];
rawdata = []; % rawdata = [];
data_info = []; % data_info = [];
return return
else else
error('datafile option is missing') error('datafile option is missing')

View File

@ -114,14 +114,26 @@ options_.nomoments=0;
options_ = set_default_option(options_,'datafile',[]); options_ = set_default_option(options_,'datafile',[]);
options_.mode_compute = 0; options_.mode_compute = 0;
options_.plot_priors = 0; options_.plot_priors = 0;
[data,rawdata,xparam1,data_info]=dynare_estimation_init(M_.endo_names,fname_,1); [dataset_,xparam1, M_, options_, oo_, estim_params_,bayestopt_]=dynare_estimation_init(M_.endo_names,fname_,1, M_, options_, oo_, estim_params_, bayestopt_);
if isempty(data_info), if isempty(dataset_),
data_info.gend = periods; dataset_.info.ntobs = periods;
data_info.data = []; dataset_.info.nvobs = rows(options_.varobs);
data_info.data_index = []; dataset_.info.varobs = options_.varobs;
data_info.number_of_observations = periods*size(options_.varobs,1); dataset_.rawdata = [];
data_info.no_more_missing_observations = 0; dataset_.missing.state = 0;
data_info.missing_value = 0; dataset_.missing.aindex = [];
dataset_.missing.vindex = [];
dataset_.missing.number_of_observations = [];
dataset_.missing.no_more_missing_observations = [];
dataset_.descriptive.mean = [];
dataset_.data = [];
% data_info.gend = periods;
% data_info.data = [];
% data_info.data_index = [];
% data_info.number_of_observations = periods*size(options_.varobs,1);
% data_info.no_more_missing_observations = 0;
% data_info.missing_value = 0;
end end
% results = prior_sampler(0,M_,bayestopt_,options_,oo_); % results = prior_sampler(0,M_,bayestopt_,options_,oo_);
@ -240,7 +252,7 @@ if iload <=0,
disp('Testing current parameter values') disp('Testing current parameter values')
end end
[idehess_point, idemoments_point, idemodel_point, idelre_point, derivatives_info_point] = ... [idehess_point, idemoments_point, idemodel_point, idelre_point, derivatives_info_point] = ...
identification_analysis(params,indx,indexo,options_ident,data_info, prior_exist, name_tex,1); identification_analysis(params,indx,indexo,options_ident,dataset_, prior_exist, name_tex,1);
idehess_point.params=params; idehess_point.params=params;
% siH = idemodel_point.siH; % siH = idemodel_point.siH;
% siJ = idemoments_point.siJ; % siJ = idemoments_point.siJ;
@ -274,7 +286,7 @@ if iload <=0,
params = prior_draw(); params = prior_draw();
end end
[dum1, ideJ, ideH, ideGP, dum2 , info] = ... [dum1, ideJ, ideH, ideGP, dum2 , info] = ...
identification_analysis(params,indx,indexo,options_MC,data_info, prior_exist, name_tex,0); identification_analysis(params,indx,indexo,options_MC,dataset_, prior_exist, name_tex,0);
if iteration==0, if iteration==0,
MAX_tau = min(SampleSize,ceil(MaxNumberOfBytes/(size(ideH.siH,1)*nparam)/8)); MAX_tau = min(SampleSize,ceil(MaxNumberOfBytes/(size(ideH.siH,1)*nparam)/8));
stoH = zeros([size(ideH.siH,1),nparam,MAX_tau]); stoH = zeros([size(ideH.siH,1),nparam,MAX_tau]);
@ -429,10 +441,10 @@ if SampleSize > 1,
fprintf('\n') fprintf('\n')
tittxt = 'Draw with HIGHEST condition number'; tittxt = 'Draw with HIGHEST condition number';
fprintf('\n') fprintf('\n')
disp(['Testing ',tittxt, '. Press ENTER']), pause, disp(['Testing ',tittxt, '. Press ENTER']), pause(5),
if ~iload, if ~iload,
[idehess_max, idemoments_max, idemodel_max, idelre_max, derivatives_info_max] = ... [idehess_max, idemoments_max, idemodel_max, idelre_max, derivatives_info_max] = ...
identification_analysis(pdraws(jmax,:),indx,indexo,options_ident,data_info, prior_exist, name_tex,1); identification_analysis(pdraws(jmax,:),indx,indexo,options_ident,dataset_, prior_exist, name_tex,1);
save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_max', 'idemoments_max','idemodel_max', 'idelre_max', 'jmax', '-append'); save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_max', 'idemoments_max','idemodel_max', 'idelre_max', 'jmax', '-append');
end end
disp_identification(pdraws(jmax,:), idemodel_max, idemoments_max, name); disp_identification(pdraws(jmax,:), idemodel_max, idemoments_max, name);
@ -442,10 +454,10 @@ if SampleSize > 1,
fprintf('\n') fprintf('\n')
tittxt = 'Draw with SMALLEST condition number'; tittxt = 'Draw with SMALLEST condition number';
fprintf('\n') fprintf('\n')
disp(['Testing ',tittxt, '. Press ENTER']), pause, disp(['Testing ',tittxt, '. Press ENTER']), pause(5),
if ~iload, if ~iload,
[idehess_min, idemoments_min, idemodel_min, idelre_min, derivatives_info_min] = ... [idehess_min, idemoments_min, idemodel_min, idelre_min, derivatives_info_min] = ...
identification_analysis(pdraws(jmin,:),indx,indexo,options_ident,data_info, prior_exist, name_tex,1); identification_analysis(pdraws(jmin,:),indx,indexo,options_ident,dataset_, prior_exist, name_tex,1);
save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_min', 'idemoments_min','idemodel_min', 'idelre_min', 'jmin', '-append'); save([IdentifDirectoryName '/' M_.fname '_identif.mat'], 'idehess_min', 'idemoments_min','idemodel_min', 'idelre_min', 'jmin', '-append');
end end
disp_identification(pdraws(jmin,:), idemodel_min, idemoments_min, name); disp_identification(pdraws(jmin,:), idemodel_min, idemoments_min, name);
@ -455,10 +467,10 @@ if SampleSize > 1,
for j=1:length(jcrit), for j=1:length(jcrit),
tittxt = ['Rank deficient draw n. ',int2str(j)]; tittxt = ['Rank deficient draw n. ',int2str(j)];
fprintf('\n') fprintf('\n')
disp(['Testing ',tittxt, '. Press ENTER']), pause, disp(['Testing ',tittxt, '. Press ENTER']), pause(5),
if ~iload, if ~iload,
[idehess_(j), idemoments_(j), idemodel_(j), idelre_(j), derivatives_info_(j)] = ... [idehess_(j), idemoments_(j), idemodel_(j), idelre_(j), derivatives_info_(j)] = ...
identification_analysis(pdraws(jcrit(j),:),indx,indexo,options_ident,data_info, prior_exist, name_tex,1); identification_analysis(pdraws(jcrit(j),:),indx,indexo,options_ident,dataset_, prior_exist, name_tex,1);
end end
disp_identification(pdraws(jcrit(j),:), idemodel_(j), idemoments_(j), name); disp_identification(pdraws(jcrit(j),:), idemodel_(j), idemoments_(j), name);
close all, close all,

View File

@ -129,13 +129,14 @@ if info(1)==0,
options_.irf = 0; options_.irf = 0;
options_.noprint = 1; options_.noprint = 1;
options_.order = 1; options_.order = 1;
options_.periods = data_info.gend+100; options_.periods = data_info.info.ntobs+100;
options_.kalman_algo = 1; options_.kalman_algo = 1;
info = stoch_simul(options_.varobs); info = stoch_simul(options_.varobs);
datax=oo_.endo_simul(options_.varobs_id,100+1:end); data_info.data=oo_.endo_simul(options_.varobs_id,100+1:end);
% datax=data; % datax=data;
derivatives_info.no_DLIK=1; derivatives_info.no_DLIK=1;
[fval,cost_flag,ys,trend_coeff,info,DLIK,AHess] = DsgeLikelihood(params',data_info.gend,datax,data_info.data_index,data_info.number_of_observations,data_info.no_more_missing_observations,derivatives_info); [fval,cost_flag,ys,trend_coeff,info,M_,options_,bayestopt_,oo_,DLIK,AHess] = DsgeLikelihood(params',data_info,options_,M_,estim_params_,bayestopt_,oo_,derivatives_info);
% fval = DsgeLikelihood(xparam1,data_info,options_,M_,estim_params_,bayestopt_,oo_);
AHess=-AHess; AHess=-AHess;
ide_hess.AHess= AHess; ide_hess.AHess= AHess;
deltaM = sqrt(diag(AHess)); deltaM = sqrt(diag(AHess));

View File

@ -94,7 +94,7 @@ if SampleSize == 1,
if advanced, if advanced,
disp(' ') disp(' ')
disp('Press ENTER to display advanced diagnostics'), pause, disp('Press ENTER to display advanced diagnostics'), pause(5),
figure('Name',[tittxt, ' - Sensitivity plot']), figure('Name',[tittxt, ' - Sensitivity plot']),
subplot(211) subplot(211)
mmm = (siJnorm)'./max(siJnorm); mmm = (siJnorm)'./max(siJnorm);
@ -258,7 +258,7 @@ else
if options_.nograph, close(gcf); end if options_.nograph, close(gcf); end
if advanced, if advanced,
disp(' ') disp(' ')
disp('Press ENTER to display advanced diagnostics'), pause, disp('Press ENTER to display advanced diagnostics'), pause(5),
options_.nograph=1; options_.nograph=1;
figure('Name','MC Condition Number'), figure('Name','MC Condition Number'),
subplot(221) subplot(221)