commit
848d81eb84
|
@ -147,7 +147,7 @@ options_ = set_default_option(options_,'datafile','');
|
|||
options_.mode_compute = 0;
|
||||
options_.plot_priors = 0;
|
||||
options_.smoother=1;
|
||||
[dataset_,dataset_info,xparam1,hh, M_, options_, oo_, estim_params_,bayestopt_]=dynare_estimation_init(M_.endo_names,fname_,1, M_, options_, oo_, estim_params_, bayestopt_);
|
||||
[dataset_,dataset_info,xparam1,hh, M_, options_, oo_, estim_params_,bayestopt_,bounds]=dynare_estimation_init(M_.endo_names,fname_,1, M_, options_, oo_, estim_params_, bayestopt_);
|
||||
options_ident = set_default_option(options_ident,'analytic_derivation_mode',options_.analytic_derivation_mode); % if not set by user, inherit default global one
|
||||
|
||||
if prior_exist
|
||||
|
@ -310,7 +310,7 @@ if iload <=0,
|
|||
disp('Testing current parameter values')
|
||||
end
|
||||
[idehess_point, idemoments_point, idemodel_point, idelre_point, derivatives_info_point, info, options_ident] = ...
|
||||
identification_analysis(params,indx,indexo,options_ident,dataset_, dataset_info, prior_exist, name_tex,1,parameters);
|
||||
identification_analysis(params,indx,indexo,options_ident,dataset_, dataset_info, prior_exist, name_tex,1,parameters,bounds);
|
||||
if info(1)~=0,
|
||||
skipline()
|
||||
disp('----------- ')
|
||||
|
@ -353,7 +353,7 @@ if iload <=0,
|
|||
kk=kk+1;
|
||||
params = prior_draw();
|
||||
[idehess_point, idemoments_point, idemodel_point, idelre_point, derivatives_info_point, info, options_ident] = ...
|
||||
identification_analysis(params,indx,indexo,options_ident,dataset_,dataset_info, prior_exist, name_tex,1,'Random_prior_params');
|
||||
identification_analysis(params,indx,indexo,options_ident,dataset_,dataset_info, prior_exist, name_tex,1,'Random_prior_params',bounds);
|
||||
end
|
||||
end
|
||||
if info(1)
|
||||
|
@ -407,7 +407,7 @@ if iload <=0,
|
|||
params = prior_draw();
|
||||
end
|
||||
[dum1, ideJ, ideH, ideGP, dum2 , info, options_MC] = ...
|
||||
identification_analysis(params,indx,indexo,options_MC,dataset_, dataset_info, prior_exist, name_tex,0);
|
||||
identification_analysis(params,indx,indexo,options_MC,dataset_, dataset_info, prior_exist, name_tex,0,[],bounds);
|
||||
if iteration==0 && info(1)==0,
|
||||
MAX_tau = min(SampleSize,ceil(MaxNumberOfBytes/(size(ideH.siH,1)*nparam)/8));
|
||||
stoH = zeros([size(ideH.siH,1),nparam,MAX_tau]);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
function [ide_hess, ide_moments, ide_model, ide_lre, derivatives_info, info, options_ident] = identification_analysis(params,indx,indexo,options_ident,dataset_,dataset_info, prior_exist,name_tex,init,tittxt)
|
||||
function [ide_hess, ide_moments, ide_model, ide_lre, derivatives_info, info, options_ident] = identification_analysis(params,indx,indexo,options_ident,dataset_,dataset_info, prior_exist,name_tex,init,tittxt,bounds)
|
||||
% function [ide_hess, ide_moments, ide_model, ide_lre, derivatives_info, info] = identification_analysis(params,indx,indexo,options_ident,data_info, prior_exist,name_tex,init,analyis_type)
|
||||
% given the parameter vector params, wraps all identification analyses
|
||||
%
|
||||
|
@ -122,7 +122,7 @@ if info(1)==0,
|
|||
ide_strength_J=NaN(1,nparam);
|
||||
ide_strength_J_prior=NaN(1,nparam);
|
||||
if init, %~isempty(indok),
|
||||
normaliz = abs(params);
|
||||
normaliz = NaN(1,nparam);
|
||||
if prior_exist,
|
||||
if ~isempty(estim_params_.var_exo),
|
||||
normaliz1 = estim_params_.var_exo(:,7)'; % normalize with prior standard deviation
|
||||
|
@ -155,12 +155,12 @@ if info(1)==0,
|
|||
info = stoch_simul(char(options_.varobs));
|
||||
dataset_ = dseries(oo_.endo_simul(options_.varobs_id,100+1:end)',dates('1Q1'), options_.varobs);
|
||||
derivatives_info.no_DLIK=1;
|
||||
bounds = prior_bounds(bayestopt_, options_.prior_trunc);
|
||||
%bounds = prior_bounds(bayestopt_, options_.prior_trunc);
|
||||
[fval,info,cost_flag,DLIK,AHess,ys,trend_coeff,M_,options_,bayestopt_,oo_] = dsge_likelihood(params',dataset_,dataset_info,options_,M_,estim_params_,bayestopt_,bounds,oo_,derivatives_info);
|
||||
% fval = DsgeLikelihood(xparam1,data_info,options_,M_,estim_params_,bayestopt_,oo_);
|
||||
options_.analytic_derivation = analytic_derivation;
|
||||
AHess=-AHess;
|
||||
if min(eig(AHess))<0,
|
||||
if min(eig(AHess))<-1.e-10,
|
||||
error('identification_analysis: Analytic Hessian is not positive semi-definite!')
|
||||
end
|
||||
% chol(AHess);
|
||||
|
@ -241,7 +241,7 @@ if info(1)==0,
|
|||
end
|
||||
ide_strength_J(indok) = (1./(normaliz(indok)'./abs(params(indok)')));
|
||||
ide_strength_J_prior(indok) = (1./(normaliz(indok)'./normaliz1(indok)'));
|
||||
ide_strength_J(params==0)=ide_strength_J_prior(params==0);
|
||||
ide_strength_J(params==0)=1./normaliz(params==0)';
|
||||
deltaM_prior = deltaM.*abs(normaliz1');
|
||||
deltaM = deltaM.*abs(params');
|
||||
deltaM(params==0)=deltaM_prior(params==0);
|
||||
|
|
|
@ -55,6 +55,29 @@ JJ1 = JJ(:,ind1);
|
|||
condJ= cond(JJ1);
|
||||
rankJ = rank(JJ);
|
||||
rankJJ = rankJ;
|
||||
icheck=0;
|
||||
if npar>0 && (rankJ<npar),
|
||||
% search for singular values associated to ONE individual parameter
|
||||
ee0 = [rankJJ+1:length(ind1)];
|
||||
ind11=ones(length(ind1),1);
|
||||
for j=1:length(ee0),
|
||||
if length(find(abs(ee1(:,ee0(j))) > 1.e-3))==1,
|
||||
icheck=1;
|
||||
ind11 = ind11.*(abs(ee1(:,ee0(j))) <= 1.e-3); % take non-zero columns
|
||||
end
|
||||
end
|
||||
ind1 = ind1(find(ind11)); % take non-zero columns
|
||||
end
|
||||
|
||||
if icheck,
|
||||
JJ1 = JJ(:,ind1);
|
||||
[eu,ee2,ee1] = svd( JJ1, 0 );
|
||||
condJ= cond(JJ1);
|
||||
rankJ = rank(JJ);
|
||||
rankJJ = rankJ;
|
||||
end
|
||||
|
||||
|
||||
% if hess_flag==0,
|
||||
% rankJJ = rank(JJ'*JJ);
|
||||
% end
|
||||
|
|
Loading…
Reference in New Issue