Remove unnecessary square brackets.
parent
c399f54581
commit
4982ce06b4
|
@ -95,7 +95,7 @@ end
|
|||
|
||||
if p > 0
|
||||
skipline()
|
||||
disp(['Some of the VAR models sampled from the posterior distribution'])
|
||||
disp('Some of the VAR models sampled from the posterior distribution')
|
||||
disp(['were found to be explosive (' num2str(p/options_.bvar_replic) ' percent).'])
|
||||
skipline()
|
||||
end
|
||||
|
|
|
@ -96,7 +96,7 @@ end
|
|||
|
||||
if p > 0
|
||||
skipline()
|
||||
disp(['Some of the VAR models sampled from the posterior distribution'])
|
||||
disp('Some of the VAR models sampled from the posterior distribution')
|
||||
disp(['were found to be explosive (' int2str(p) ' samples).'])
|
||||
skipline()
|
||||
end
|
||||
|
|
|
@ -147,7 +147,7 @@ for i=1:r
|
|||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% a --> Define the random vector x0 for the factors. Note that x0 takes value in the hypercube
|
||||
% [0,...,1-Delta]*[0,...,1-Delta]*[0,...,1-Delta]*[0,...,1-Delta]
|
||||
MyInt = repmat([0:(1/(p-1)):(1-Delta)],NumFact,1); % Construct all possible values of the factors
|
||||
MyInt = repmat(0:(1/(p-1)):(1-Delta),NumFact,1); % Construct all possible values of the factors
|
||||
|
||||
% OLD VERSION - it needs communication toolbox
|
||||
% w = randint(NumFact,1,[1,size(MyInt,2)]);
|
||||
|
|
|
@ -94,7 +94,7 @@ if param_nbr > 0 && (rankX<rankrequired)
|
|||
% search for singular values associated to ONE individual parameter
|
||||
% Compute an orthonormal basis for the null space using the columns of ee1 that correspond
|
||||
% to singular values equal to zero and associated to an individual parameter
|
||||
ee0 = [rankX+1:size([Xparnonzero Xrest],2)]; %look into last columns with singular values of problematic parameter sets (except single parameters)
|
||||
ee0 = rankX+1:size([Xparnonzero Xrest],2); %look into last columns with singular values of problematic parameter sets (except single parameters)
|
||||
ind11 = ones(length(ind1),1); %initialize
|
||||
for j=1:length(ee0)
|
||||
% check if nullspace is spanned by only one parameter
|
||||
|
@ -151,9 +151,9 @@ if param_nbr>0 && (rankX<rankrequired || min(1-Mco)<tol_rank)
|
|||
if length(ind1)<param_nbr
|
||||
% single parameters with zero columns
|
||||
ixno = ixno + 1;
|
||||
indno(ixno,:) = (~ismember([1:param_nbr],ind1));
|
||||
indno(ixno,:) = (~ismember(1:param_nbr,ind1));
|
||||
end
|
||||
ee0 = [rankX+1:size([Xparnonzero Xrest],2)]; %look into last columns with singular values of problematic parameter sets (except single parameters)
|
||||
ee0 = rankX+1:size([Xparnonzero Xrest],2); %look into last columns with singular values of problematic parameter sets (except single parameters)
|
||||
for j=1:length(ee0)
|
||||
% linearly dependent parameters
|
||||
ixno = ixno + 1;
|
||||
|
|
|
@ -54,7 +54,7 @@ tol_rank = options_ident.tol_rank;
|
|||
checks_via_subsets = options_ident.checks_via_subsets;
|
||||
|
||||
%% Display settings
|
||||
disp([' ']),
|
||||
disp(' '),
|
||||
fprintf('Note that differences in the criteria could be due to numerical settings,\n')
|
||||
fprintf('numerical errors or the method used to find problematic parameter sets.\n')
|
||||
fprintf('Settings:\n')
|
||||
|
@ -157,7 +157,7 @@ for jide = 1:4
|
|||
disp(' !!!WARNING!!!');
|
||||
if SampleSize>1
|
||||
if non_minimal_state_space_error
|
||||
fprintf(['\n The minimal state space could not be computed for %u out of %u cases.\n'],SampleSize-EffectiveSampleSize,SampleSize);
|
||||
fprintf('\n The minimal state space could not be computed for %u out of %u cases.\n',SampleSize-EffectiveSampleSize,SampleSize);
|
||||
end
|
||||
if jide==2
|
||||
if sum(ide.ino & ide.minimal_state_space)>0
|
||||
|
|
|
@ -236,7 +236,7 @@ if strcmp(options_mom_.mom.mom_method,'SMM')
|
|||
% remove burn-in and focus on observables (note that y_sim is in declaration order)
|
||||
y_sim = y_sim(oo_.dr.order_var(oo_.mom.obs_var) , end-options_mom_.mom.long+1:end)';
|
||||
if ~all(diag(M_.H)==0)
|
||||
i_ME = setdiff([1:size(M_.H,1)],find(diag(M_.H) == 0)); % find ME with 0 variance
|
||||
i_ME = setdiff(1:size(M_.H,1),find(diag(M_.H) == 0)); % find ME with 0 variance
|
||||
chol_S = chol(M_.H(i_ME,i_ME)); % decompose rest
|
||||
shock_mat=zeros(size(options_mom_.mom.ME_shock_series)); % initialize
|
||||
shock_mat(:,i_ME)=options_mom_.mom.ME_shock_series(:,i_ME)*chol_S;
|
||||
|
|
|
@ -109,7 +109,7 @@ for fig = 1:nbplt
|
|||
if ndim==2
|
||||
legend([h1,h2],legend_list,'box','off')
|
||||
else
|
||||
legend([h1],legend_list,'box','off')
|
||||
legend(h1,legend_list,'box','off')
|
||||
end
|
||||
end
|
||||
if options_.TeX
|
||||
|
|
|
@ -76,8 +76,8 @@ if odd
|
|||
end
|
||||
y = y*rho;
|
||||
end
|
||||
y = prod([1:2:s1])*prod([1:2:s2])*y;
|
||||
y = prod(1:2:s1)*prod(1:2:s2)*y;
|
||||
if nargout > 1
|
||||
dy = prod([1:2:s1])*prod([1:2:s2])*dy;
|
||||
dy = prod(1:2:s1)*prod(1:2:s2)*dy;
|
||||
end
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ s2 = s/2;
|
|||
% Use univariate normal results
|
||||
%
|
||||
if m==1
|
||||
y = V^s2*prod([1:2:s-1]);
|
||||
y = V^s2*prod(1:2:s-1);
|
||||
return
|
||||
end
|
||||
%
|
||||
|
@ -104,4 +104,4 @@ for i=1:fix(prod(nu+1)/2)
|
|||
end
|
||||
end
|
||||
end
|
||||
y = y/prod([1:s2]);
|
||||
y = y/prod(1:s2);
|
||||
|
|
|
@ -82,9 +82,9 @@ s2 = s/2;
|
|||
% Use univariate normal results
|
||||
%
|
||||
if m==1
|
||||
y = V^s2*prod([1:2:s-1]);
|
||||
y = V^s2*prod(1:2:s-1);
|
||||
if nargout > 1
|
||||
dy = s2*V^(s2-1)*dV*prod([1:2:s-1]);
|
||||
dy = s2*V^(s2-1)*dV*prod(1:2:s-1);
|
||||
dy = reshape(dy,1,size(dV,3));
|
||||
end
|
||||
return
|
||||
|
@ -169,8 +169,8 @@ for i=1:fix(prod(nu+1)/2)
|
|||
end
|
||||
end
|
||||
end
|
||||
y = y/prod([1:s2]);
|
||||
y = y/prod(1:s2);
|
||||
if nargout > 1
|
||||
dy = dy/prod([1:s2]);
|
||||
dy = dy/prod(1:s2);
|
||||
dy = reshape(dy,1,size(dV,3));
|
||||
end
|
|
@ -31,7 +31,7 @@ global M_ options_ oo_
|
|||
|
||||
% Check that the model is actually backward
|
||||
if M_.maximum_lead
|
||||
error(['backward_model_forecast:: The specified model is not backward looking!'])
|
||||
error('backward_model_forecast:: The specified model is not backward looking!')
|
||||
end
|
||||
|
||||
% Initialize returned argument.
|
||||
|
|
|
@ -72,7 +72,7 @@ elseif isempty(varlist) && ~isempty(options_.endo_vars_for_moment_computations_i
|
|||
end
|
||||
elseif isempty(varlist) && isempty(options_.endo_vars_for_moment_computations_in_estimation)
|
||||
skipline()
|
||||
disp(['You did not declare endogenous variables after the estimation/calib_smoother command.'])
|
||||
disp('You did not declare endogenous variables after the estimation/calib_smoother command.')
|
||||
cas = '';
|
||||
if options_.bayesian_irf
|
||||
cas = 'Posterior IRFs';
|
||||
|
|
|
@ -79,7 +79,7 @@ if isempty(ext)
|
|||
fname = [pathstr, name, '.m'];
|
||||
else
|
||||
if ~isequal(ext, '.m')
|
||||
error(['The first argument needs to be the name of a matlab script (with an .m extension)!'])
|
||||
error('The first argument needs to be the name of a matlab script (with an .m extension)!')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -88,13 +88,13 @@ if ~iscell(c)
|
|||
end
|
||||
|
||||
if ndims(c)>2
|
||||
error(['The cell passed has a second argument cannot have more than two dimensions!'])
|
||||
error('The cell passed has a second argument cannot have more than two dimensions!')
|
||||
end
|
||||
|
||||
variablename = inputname(2);
|
||||
|
||||
if isempty(variablename) && nargin<3
|
||||
error(['You must pass the name of the cell (second input argument) as a string in the third input argument!'])
|
||||
error('You must pass the name of the cell (second input argument) as a string in the third input argument!')
|
||||
end
|
||||
|
||||
if nargin>2
|
||||
|
|
|
@ -81,7 +81,7 @@ UDIAG = zeros(NumberOfLines,6,npar-fpar+1);
|
|||
if whoiam
|
||||
waitbarString = ['Please wait... MCMC diagnostics (' int2str(fpar) 'of' int2str(npar) ')...'];
|
||||
if Parallel(ThisMatlab).Local
|
||||
waitbarTitle=['Local '];
|
||||
waitbarTitle='Local ';
|
||||
else
|
||||
waitbarTitle=[Parallel(ThisMatlab).ComputerName];
|
||||
end
|
||||
|
|
|
@ -63,7 +63,7 @@ ivar=zeros(n, 1);
|
|||
for i=1:n
|
||||
i_tmp = strmatch(var_list{i}, M_.endo_names, 'exact');
|
||||
if isempty(i_tmp)
|
||||
error (['One of the specified variables does not exist']) ;
|
||||
error ('One of the specified variables does not exist') ;
|
||||
else
|
||||
ivar(i) = i_tmp;
|
||||
end
|
||||
|
|
|
@ -47,7 +47,7 @@ else
|
|||
end
|
||||
|
||||
if mu<lb
|
||||
error(['The prior expectation (%f) %scannot be smaller than the lower bound of the Beta distribution (%f)!'], mu, name1, lb)
|
||||
error('The prior expectation (%f) %scannot be smaller than the lower bound of the Beta distribution (%f)!', mu, name1, lb)
|
||||
end
|
||||
|
||||
if mu>ub
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 4fceb85e3a1d10e8040b60bcb5cf79a3c533956c
|
||||
Subproject commit c799f003eb8d8ca51ef2926f1e9deec1f80cb5e2
|
|
@ -36,9 +36,9 @@ if ~(nargin >= 3)
|
|||
end
|
||||
|
||||
if options_.smpl == 0
|
||||
k = [1:size(oo_.endo_simul,2)];
|
||||
k = 1:size(oo_.endo_simul,2);
|
||||
else
|
||||
k = [M_.maximum_lag+options_.smpl(1):M_.maximum_lag+options_.smpl(2)];
|
||||
k = M_.maximum_lag+options_.smpl(1):M_.maximum_lag+options_.smpl(2);
|
||||
end
|
||||
|
||||
if nargin == 3
|
||||
|
|
|
@ -69,7 +69,7 @@ else
|
|||
running_text = varargin{2};
|
||||
end
|
||||
if Parallel.Local
|
||||
waitbarTitle=['Local '];
|
||||
waitbarTitle='Local ';
|
||||
else
|
||||
waitbarTitle=[Parallel.ComputerName];
|
||||
end
|
||||
|
|
|
@ -83,7 +83,7 @@ if isoctave
|
|||
skipline()
|
||||
elseif octave_ver_less_than('7.1.0') % Should match the test in meson.build, and also the one in matlab/modules/dseries/src/initialize_dseries_class.m
|
||||
skipline()
|
||||
warning(['This version of Dynare has only been tested on Octave 7.1.0 and above. Dynare may fail to run or give unexpected result. Consider upgrading your version of Octave.'])
|
||||
warning('This version of Dynare has only been tested on Octave 7.1.0 and above. Dynare may fail to run or give unexpected result. Consider upgrading your version of Octave.')
|
||||
skipline()
|
||||
end
|
||||
else
|
||||
|
|
|
@ -132,7 +132,7 @@ if ~isempty(endo_prior_restrictions.moment)
|
|||
for i=1:nvar
|
||||
i_tmp = strmatch(var_list_(i,:), M_.endo_names, 'exact');
|
||||
if isempty(i_tmp)
|
||||
error (['One of the variable specified does not exist'])
|
||||
error ('One of the variable specified does not exist')
|
||||
else
|
||||
ivar(i) = i_tmp;
|
||||
end
|
||||
|
|
|
@ -49,11 +49,11 @@ else
|
|||
end
|
||||
pfm.nd = pfm.nyp+pfm.ny0+pfm.nyf;
|
||||
pfm.nrc = pfm.nyf+1;
|
||||
pfm.isp = [1:pfm.nyp];
|
||||
pfm.is = [pfm.nyp+1:pfm.ny+pfm.nyp];
|
||||
pfm.isp = 1:pfm.nyp;
|
||||
pfm.is = pfm.nyp+1:pfm.ny+pfm.nyp;
|
||||
pfm.isf = pfm.iyf+pfm.nyp;
|
||||
pfm.isf1 = [pfm.nyp+pfm.ny+1:pfm.nyf+pfm.nyp+pfm.ny+1];
|
||||
pfm.iz = [1:pfm.ny+pfm.nyp+pfm.nyf];
|
||||
pfm.isf1 = pfm.nyp+pfm.ny+1:pfm.nyf+pfm.nyp+pfm.ny+1;
|
||||
pfm.iz = 1:pfm.ny+pfm.nyp+pfm.nyf;
|
||||
pfm.periods = options_.ep.periods;
|
||||
pfm.steady_state = oo_.steady_state;
|
||||
pfm.params = M_.params;
|
||||
|
|
|
@ -70,8 +70,8 @@ else
|
|||
end
|
||||
|
||||
if verbose
|
||||
disp ([' -----------------------------------------------------']);
|
||||
disp (['MODEL SIMULATION :']);
|
||||
disp (' -----------------------------------------------------');
|
||||
disp ('MODEL SIMULATION :');
|
||||
fprintf('\n');
|
||||
end
|
||||
|
||||
|
|
|
@ -337,7 +337,7 @@ fprintf(fidTeX, ' & \\multicolumn{3}{c}{Prior} & \\multicolumn{4}{c}{Posterio
|
|||
fprintf(fidTeX, ' \\cmidrule(r{.75em}){2-4} \\cmidrule(r{.75em}){5-8}\n');
|
||||
fprintf(fidTeX, ' & Dist. & Mean & Stdev. & Mean & Stdev. & HPD inf & HPD sup\\\\\n');
|
||||
fprintf(fidTeX, '\\midrule \\endfirsthead \n');
|
||||
fprintf(fidTeX, ['\\caption{(continued)}\\\\']);
|
||||
fprintf(fidTeX, '\\caption{(continued)}\\\\');
|
||||
fprintf(fidTeX, '\\toprule \n');
|
||||
fprintf(fidTeX, ' & \\multicolumn{3}{c}{Prior} & \\multicolumn{4}{c}{Posterior} \\\\\n');
|
||||
fprintf(fidTeX, ' \\cmidrule(r{.75em}){2-4} \\cmidrule(r{.75em}){5-8}\n');
|
||||
|
@ -349,7 +349,7 @@ fid = fidTeX;
|
|||
|
||||
|
||||
function TeXCore(fid, name, shape, priormean, priorstd, postmean, poststd, hpd)
|
||||
fprintf(fid,['$%s$ & %s & %7.3f & %6.4f & %7.3f& %6.4f & %7.4f & %7.4f \\\\ \n'],...
|
||||
fprintf(fid,'$%s$ & %s & %7.3f & %6.4f & %7.3f& %6.4f & %7.4f & %7.4f \\\\ \n',...
|
||||
name, ...
|
||||
shape, ...
|
||||
priormean, ...
|
||||
|
|
|
@ -400,7 +400,7 @@ if ~options_.nograph && ~options_.no_graph.posterior
|
|||
fprintf(fidTeX,'\\centering \n');
|
||||
fprintf(fidTeX,'\\includegraphics[width=%2.2f\\textwidth]{%s/%s_Bayesian_IRF_%s_%d}\n',options_.figures.textwidth*min(subplotnum/nn,1),DirectoryName,M_.fname,tit{ii},figunumber);
|
||||
if options_.relative_irf
|
||||
fprintf(fidTeX,['\\caption{Bayesian relative IRF.}']);
|
||||
fprintf(fidTeX,'\\caption{Bayesian relative IRF.}');
|
||||
else
|
||||
fprintf(fidTeX,'\\caption{Bayesian IRF: Orthogonalized shock to $%s$.}\n',titTeX{ii});
|
||||
end
|
||||
|
|
|
@ -60,7 +60,7 @@ end
|
|||
|
||||
if nargin == 6
|
||||
indx = restrict_columns;
|
||||
indx0=find(~ismember([1:np],indx));
|
||||
indx0=find(~ismember(1:np,indx));
|
||||
else
|
||||
indx=(find(max(abs(T))>=1.e-10));
|
||||
indx0=(find(max(abs(T))<1.e-10));
|
||||
|
|
|
@ -204,7 +204,7 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
|
|||
ip = 1;
|
||||
for i=1:nvx
|
||||
k = estim_params_.var_exo(i,1);
|
||||
fprintf(fidTeX,[ '$%s$ & %4s & %7.3f & %6.4f & %8.4f & %7.4f \\\\ \n'],...
|
||||
fprintf(fidTeX, '$%s$ & %4s & %7.3f & %6.4f & %8.4f & %7.4f \\\\ \n',...
|
||||
M_.exo_names_tex{k},...
|
||||
pnames{bayestopt_.pshape(ip)+1},...
|
||||
bayestopt_.p1(ip),...
|
||||
|
@ -241,7 +241,7 @@ if any(bayestopt_.pshape > 0) && options_.TeX %% Bayesian estimation (posterior
|
|||
for i=1:ncx
|
||||
k1 = estim_params_.corrx(i,1);
|
||||
k2 = estim_params_.corrx(i,2);
|
||||
fprintf(fidTeX,[ '$%s$ & %s & %7.3f & %6.4f & %8.4f & %7.4f \\\\ \n'],...
|
||||
fprintf(fidTeX, '$%s$ & %s & %7.3f & %6.4f & %8.4f & %7.4f \\\\ \n',...
|
||||
[M_.exo_names_tex{k1} ',' M_.exo_names_tex{k2}], ...
|
||||
pnames{bayestopt_.pshape(ip)+1}, ...
|
||||
bayestopt_.p1(ip), ...
|
||||
|
@ -294,7 +294,7 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
|
|||
ip = 1;
|
||||
for i=1:nvx
|
||||
k = estim_params_.var_exo(i,1);
|
||||
fprintf(fidTeX,[ '$%s$ & %8.4f & %7.4f & %7.4f\\\\ \n'], ...
|
||||
fprintf(fidTeX, '$%s$ & %8.4f & %7.4f & %7.4f\\\\ \n', ...
|
||||
M_.exo_names_tex{k}, ...
|
||||
xparam1(ip), ...
|
||||
stdh(ip), ...
|
||||
|
@ -327,7 +327,7 @@ elseif all(bayestopt_.pshape == 0) && options_.TeX %% MLE and GMM Latex output
|
|||
for i=1:ncx
|
||||
k1 = estim_params_.corrx(i,1);
|
||||
k2 = estim_params_.corrx(i,2);
|
||||
fprintf(fidTeX,[ '$%s$ & %8.4f & %7.4f & %7.4f \\\\ \n'], ...
|
||||
fprintf(fidTeX, '$%s$ & %8.4f & %7.4f & %7.4f \\\\ \n', ...
|
||||
[M_.exo_names_tex{k1} ',' M_.exo_names_tex{k2}], ...
|
||||
xparam1(ip), ...
|
||||
stdh(ip), ...
|
||||
|
|
|
@ -394,7 +394,7 @@ switch options_.lik_init
|
|||
end
|
||||
catch ME
|
||||
disp(ME.message)
|
||||
disp(['dsge_likelihood:: I am not able to solve the Riccati equation, so I switch to lik_init=1!']);
|
||||
disp('dsge_likelihood:: I am not able to solve the Riccati equation, so I switch to lik_init=1!');
|
||||
options_.lik_init = 1;
|
||||
Pstar=lyapunov_solver(T,R,Q,options_);
|
||||
end
|
||||
|
@ -886,7 +886,7 @@ if isfield(M_,'filter_initial_state') && ~isempty(M_.filter_initial_state)
|
|||
elseif ~options_.loglinear && ~options_.logged_steady_state
|
||||
a(bayestopt_.mf0(ii)) = eval(M_.filter_initial_state{state_indices(ii),2}) - dr.ys(state_indices(ii));
|
||||
else
|
||||
error(['The steady state is logged. This should not happen. Please contact the developers'])
|
||||
error('The steady state is logged. This should not happen. Please contact the developers')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -111,7 +111,7 @@ end
|
|||
% Set options_.lik_init equal to 3 if diffuse filter is used or kalman_algo refers to a diffuse filter algorithm.
|
||||
if isequal(options_.diffuse_filter,1) || (options_.kalman_algo>2)
|
||||
if isequal(options_.lik_init,2)
|
||||
error(['options diffuse_filter, lik_init and/or kalman_algo have contradictory settings'])
|
||||
error('options diffuse_filter, lik_init and/or kalman_algo have contradictory settings')
|
||||
else
|
||||
options_.lik_init = 3;
|
||||
end
|
||||
|
@ -428,7 +428,7 @@ if info(1)
|
|||
M_local.params=params;
|
||||
plist = list_of_parameters_calibrated_as_NaN(M_local);
|
||||
if ~isempty(plist)
|
||||
message = ['dynare_estimation_init:: Some of the parameters are NaN (' ];
|
||||
message = 'dynare_estimation_init:: Some of the parameters are NaN (' ;
|
||||
for i=1:length(plist)
|
||||
if i<length(plist)
|
||||
message = [message, plist{i} ', '];
|
||||
|
@ -440,7 +440,7 @@ if info(1)
|
|||
fprintf('%s\n',message)
|
||||
plist = list_of_parameters_calibrated_as_Inf(M_local);
|
||||
if ~isempty(plist)
|
||||
message = ['dynare_estimation_init:: Some of the parameters are Inf (' ];
|
||||
message = 'dynare_estimation_init:: Some of the parameters are Inf (' ;
|
||||
for i=1:length(plist)
|
||||
if i<size(plist)
|
||||
message = [message, plist{i} ', '];
|
||||
|
|
|
@ -125,30 +125,30 @@ non_zero_ME=length(estim_params_.H_entries_to_check_for_positive_definiteness);
|
|||
|
||||
print_init_check_warning=false;
|
||||
if maximum_number_non_missing_observations>M_.exo_nbr+non_zero_ME
|
||||
error(['initial_estimation_checks:: Estimation can''t take place because there are less declared shocks than observed variables!'])
|
||||
error('initial_estimation_checks:: Estimation can''t take place because there are less declared shocks than observed variables!')
|
||||
end
|
||||
if init_number_non_missing_observations>M_.exo_nbr+non_zero_ME
|
||||
if options_.no_init_estimation_check_first_obs
|
||||
print_init_check_warning=true;
|
||||
else
|
||||
error(['initial_estimation_checks:: Estimation can''t take place because there are less declared shocks than observed variables in first period!'])
|
||||
error('initial_estimation_checks:: Estimation can''t take place because there are less declared shocks than observed variables in first period!')
|
||||
end
|
||||
end
|
||||
|
||||
if options_.heteroskedastic_filter
|
||||
if any(observations_by_period>(non_zero_shocks_by_period+non_zero_ME))
|
||||
error(['initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance: Check heteroskedastic block and shocks calibration!'])
|
||||
error('initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance: Check heteroskedastic block and shocks calibration!')
|
||||
end
|
||||
else
|
||||
if maximum_number_non_missing_observations>length(find(diag(M_.Sigma_e)))+non_zero_ME
|
||||
error(['initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance!'])
|
||||
error('initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance!')
|
||||
end
|
||||
end
|
||||
if init_number_non_missing_observations>length(find(diag(M_.Sigma_e)))+non_zero_ME
|
||||
if options_.no_init_estimation_check_first_obs
|
||||
print_init_check_warning=true;
|
||||
else
|
||||
error(['initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance in first period!'])
|
||||
error('initial_estimation_checks:: Estimation can''t take place because too many shocks have been calibrated with a zero variance in first period!')
|
||||
end
|
||||
end
|
||||
if print_init_check_warning
|
||||
|
@ -158,7 +158,7 @@ if print_init_check_warning
|
|||
end
|
||||
|
||||
if (any(bayestopt_.pshape >0 ) && options_.mh_replic) && options_.mh_nblck<1
|
||||
error(['initial_estimation_checks:: Bayesian estimation cannot be conducted with mh_nblocks=0.'])
|
||||
error('initial_estimation_checks:: Bayesian estimation cannot be conducted with mh_nblocks=0.')
|
||||
end
|
||||
|
||||
% check and display warnings if steady-state solves static model (except if diffuse_filter == 1) and if steady-state changes estimated parameters
|
||||
|
@ -251,8 +251,8 @@ end
|
|||
|
||||
if options_.prefilter==1
|
||||
if (~options_.loglinear && any(abs(oo_.steady_state(bayestopt_.mfys))>1e-9)) || (options_.loglinear && any(abs(log(oo_.steady_state(bayestopt_.mfys)))>1e-9))
|
||||
disp(['You are trying to estimate a model with a non zero steady state for the observed endogenous'])
|
||||
disp(['variables using demeaned data!'])
|
||||
disp('You are trying to estimate a model with a non zero steady state for the observed endogenous')
|
||||
disp('variables using demeaned data!')
|
||||
error('You should change something in your mod file...')
|
||||
end
|
||||
end
|
||||
|
|
|
@ -91,14 +91,14 @@ for i=1:NumberOfModels
|
|||
catch
|
||||
if strcmpi(type,'LaplaceApproximation')
|
||||
if isfield(mstruct.oo_,'mle_mode')
|
||||
disp(['MODEL_COMPARISON: Model comparison is a Bayesian approach and does not support models estimated with ML'])
|
||||
disp('MODEL_COMPARISON: Model comparison is a Bayesian approach and does not support models estimated with ML')
|
||||
else
|
||||
disp(['MODEL_COMPARISON: I cant''t find the Laplace approximation associated to model ' ModelNames{i}])
|
||||
end
|
||||
return
|
||||
elseif strcmpi(type,'ModifiedHarmonicMean')
|
||||
if isfield(mstruct.oo_,'mle_mode')
|
||||
disp(['MODEL_COMPARISON: Model comparison is a Bayesian approach and does not support models estimated with ML'])
|
||||
disp('MODEL_COMPARISON: Model comparison is a Bayesian approach and does not support models estimated with ML')
|
||||
else
|
||||
disp(['MODEL_COMPARISON: I cant''t find the modified harmonic mean estimate associated to model ' ModelNames{i}])
|
||||
end
|
||||
|
|
|
@ -155,7 +155,7 @@ elseif filter_covar_indicator
|
|||
hpd_interval=NaN([size_matrix(1:3),2]);
|
||||
end
|
||||
if size(stock1_filter_covar,draw_dimension)>9
|
||||
post_deciles =quantile(stock1_filter_covar,[0.1:0.1:0.9],draw_dimension);
|
||||
post_deciles =quantile(stock1_filter_covar,0.1:0.1:0.9,draw_dimension);
|
||||
else
|
||||
size_matrix=size(stock1_filter_covar);
|
||||
post_deciles=NaN([size_matrix(1:3),9]);
|
||||
|
@ -177,7 +177,7 @@ elseif state_uncert_indicator
|
|||
hpd_interval=NaN([size_matrix(1:3),2]);
|
||||
end
|
||||
if size(stock1_state_uncert,draw_dimension)>9
|
||||
post_deciles =quantile(stock1_state_uncert,[0.1:0.1:0.9],draw_dimension);
|
||||
post_deciles =quantile(stock1_state_uncert,0.1:0.1:0.9,draw_dimension);
|
||||
else
|
||||
size_matrix=size(stock1_state_uncert);
|
||||
post_deciles=NaN([size_matrix(1:3),9]);
|
||||
|
|
|
@ -38,7 +38,7 @@ switch info
|
|||
nvar = length(ivar);
|
||||
oo_ = job(type,SampleSize,arg1,arg2,arg3,options_,M_,oo_,nvar,vartan);
|
||||
otherwise
|
||||
error(['posterior_analysis:: Check_posterior_analysis_data gave a meaningless output!'])
|
||||
error('posterior_analysis:: Check_posterior_analysis_data gave a meaningless output!')
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -227,23 +227,23 @@ for curr_block = fblck:nblck
|
|||
end
|
||||
save([BaseName '_mh' int2str(NewFile(curr_block)) '_blck' int2str(curr_block) '.mat'],'x2','logpo2','LastSeeds','accepted_draws_this_chain','accepted_draws_this_file','feval_this_chain','feval_this_file');
|
||||
fidlog = fopen([MetropolisFolder '/metropolis.log'],'a');
|
||||
fprintf(fidlog,['\n']);
|
||||
fprintf(fidlog,'\n');
|
||||
fprintf(fidlog,['%% Mh' int2str(NewFile(curr_block)) 'Blck' int2str(curr_block) ' (' datestr(now,0) ')\n']);
|
||||
fprintf(fidlog,' \n');
|
||||
fprintf(fidlog,[' Number of simulations.: ' int2str(length(logpo2)) '\n']);
|
||||
fprintf(fidlog,[' Acceptance ratio......: ' num2str(accepted_draws_this_file/length(logpo2)) '\n']);
|
||||
fprintf(fidlog,[' Feval per iteration...: ' num2str(feval_this_file/length(logpo2)) '\n']);
|
||||
fprintf(fidlog,[' Posterior mean........:\n']);
|
||||
fprintf(fidlog,' Posterior mean........:\n');
|
||||
for i=1:length(x2(1,:))
|
||||
fprintf(fidlog,[' params:' int2str(i) ': ' num2str(mean(x2(:,i))) '\n']);
|
||||
end
|
||||
fprintf(fidlog,[' log2po:' num2str(mean(logpo2)) '\n']);
|
||||
fprintf(fidlog,[' Minimum value.........:\n']);
|
||||
fprintf(fidlog,' Minimum value.........:\n');
|
||||
for i=1:length(x2(1,:))
|
||||
fprintf(fidlog,[' params:' int2str(i) ': ' num2str(min(x2(:,i))) '\n']);
|
||||
end
|
||||
fprintf(fidlog,[' log2po:' num2str(min(logpo2)) '\n']);
|
||||
fprintf(fidlog,[' Maximum value.........:\n']);
|
||||
fprintf(fidlog,' Maximum value.........:\n');
|
||||
for i=1:length(x2(1,:))
|
||||
fprintf(fidlog,[' params:' int2str(i) ': ' num2str(max(x2(:,i))) '\n']);
|
||||
end
|
||||
|
|
|
@ -182,7 +182,7 @@ if ~options_.load_mh_file && ~options_.mh_recover
|
|||
% Find initial values for the NumberOfBlocks chains...
|
||||
if NumberOfBlocks > 1 || options_.mh_initialize_from_previous_mcmc.status% Case 1: multiple chains
|
||||
options_=set_dynare_seed_local_options(options_,'default');
|
||||
fprintf(fidlog,[' Initial values of the parameters:\n']);
|
||||
fprintf(fidlog,' Initial values of the parameters:\n');
|
||||
fprintf('%s: Searching for initial values...\n', dispString);
|
||||
if ~options_.mh_initialize_from_previous_mcmc.status
|
||||
ix2 = zeros(NumberOfBlocks,npar);
|
||||
|
@ -253,7 +253,7 @@ if ~options_.load_mh_file && ~options_.mh_recover
|
|||
fprintf(fidlog,' \n');
|
||||
fprintf('%s: Initial values found!\n\n',dispString);
|
||||
else% Case 2: one chain (we start from the posterior mode)
|
||||
fprintf(fidlog,[' Initial values of the parameters:\n']);
|
||||
fprintf(fidlog,' Initial values of the parameters:\n');
|
||||
candidate = transpose(xparam1(:));%
|
||||
if all(candidate(:) >= mh_bounds.lb) && all(candidate(:) <= mh_bounds.ub)
|
||||
ix2 = candidate;
|
||||
|
@ -313,10 +313,10 @@ if ~options_.load_mh_file && ~options_.mh_recover
|
|||
fprintf('Ok!\n');
|
||||
id = write_mh_history_file(MetropolisFolder, ModelName, record);
|
||||
fprintf('%s: Details about the MCMC are available in %s_mh_history_%u.mat\n\n', dispString,BaseName,id);
|
||||
fprintf(fidlog,[' CREATION OF THE MH HISTORY FILE!\n\n']);
|
||||
fprintf(fidlog,' CREATION OF THE MH HISTORY FILE!\n\n');
|
||||
fprintf(fidlog,[' Expected number of files per block.......: ' int2str(AnticipatedNumberOfFiles) '.\n']);
|
||||
fprintf(fidlog,[' Expected number of lines in the last file: ' int2str(AnticipatedNumberOfLinesInTheLastFile) '.\n']);
|
||||
fprintf(fidlog,['\n']);
|
||||
fprintf(fidlog,'\n');
|
||||
for j = 1:NumberOfBlocks
|
||||
fprintf(fidlog,[' Initial state of the Gaussian random number generator for chain number ',int2str(j),':\n']);
|
||||
for i=1:length(record.InitialSeeds(j).Normal)
|
||||
|
|
|
@ -142,7 +142,7 @@ skipline(2)
|
|||
|
||||
|
||||
function format_string = build_format_string(PriorMode,PriorStandardDeviation,LowerBound,UpperBound)
|
||||
format_string = ['%s \t %6.4f \t'];
|
||||
format_string = '%s \t %6.4f \t';
|
||||
if isnan(PriorMode)
|
||||
format_string = [ format_string , ' %s \t'];
|
||||
else
|
||||
|
|
|
@ -38,7 +38,7 @@ switch info
|
|||
nvar = length(ivar);
|
||||
oo_ = job(type,SampleSize,arg1,arg2,arg3,options_,M_,oo_,nvar,vartan);
|
||||
otherwise
|
||||
error(['prior_analysis:: Check_prior_analysis_data gave a meaningless output!'])
|
||||
error('prior_analysis:: Check_prior_analysis_data gave a meaningless output!')
|
||||
end
|
||||
|
||||
|
||||
|
|
|
@ -352,7 +352,7 @@ for b=fpar:B
|
|||
stock_forcst_point(:,:,irun(7)) = yf1(maxlag+1:end,:)';
|
||||
if ~isequal(M_.H,0)
|
||||
ME_shocks=zeros(length(varobs),horizon);
|
||||
i_exo_var = setdiff([1:length(varobs)],find(diag(M_.H) == 0));
|
||||
i_exo_var = setdiff(1:length(varobs),find(diag(M_.H) == 0));
|
||||
nxs = length(i_exo_var);
|
||||
chol_H = chol(M_.H(i_exo_var,i_exo_var));
|
||||
if ~isempty(M_.H)
|
||||
|
|
|
@ -63,7 +63,7 @@ switch nargin
|
|||
end
|
||||
drawsize = drsize+npar*8/1048576;
|
||||
otherwise
|
||||
error(['selec_posterior_draws:: Unexpected number of input arguments!'])
|
||||
error('selec_posterior_draws:: Unexpected number of input arguments!')
|
||||
end
|
||||
|
||||
MetropolisFolder = CheckPath('metropolis',M_.dname);
|
||||
|
|
|
@ -99,7 +99,7 @@ for l=1:npar
|
|||
name = get_the_name(l,TeX,M_,estim_params_,options_.varobs);
|
||||
str = sprintf('%s\n %s \t\t %5.4f \t\t %7.5f \t\t %5.4f', str, name, lb95_xparam(l), mean_xparam(l), ub95_xparam(l));
|
||||
end
|
||||
disp([str])
|
||||
disp(str)
|
||||
disp('')
|
||||
|
||||
%% Plot parameters densities
|
||||
|
|
|
@ -53,7 +53,7 @@ if ~options_.bytecode && options_.block && options_.solve_algo == 5
|
|||
end
|
||||
|
||||
if isoctave && options_.solve_algo == 11
|
||||
error(['STEADY: you can''t use solve_algo = %u under Octave'],options_.solve_algo)
|
||||
error('STEADY: you can''t use solve_algo = %u under Octave',options_.solve_algo)
|
||||
end
|
||||
|
||||
% To ensure that the z and zx matrices constructed by repmat and passed to bytecode
|
||||
|
|
|
@ -78,7 +78,7 @@ hessian_mat = zeros(size(f0,1), n*n);
|
|||
for i=1:n
|
||||
if i > 1
|
||||
%fill symmetric part of Hessian based on previously computed results
|
||||
k = [i:n:n*(i-1)];
|
||||
k = i:n:n*(i-1);
|
||||
hessian_mat(:,(i-1)*n+1:(i-1)*n+i-1) = hessian_mat(:,k);
|
||||
end
|
||||
hessian_mat(:,(i-1)*n+i) = (f1(:,i)+f_1(:,i)-2*f0)./(h1(i)*h_1(i)); %formula 25.3.23
|
||||
|
|
|
@ -130,7 +130,7 @@ if strcmpi(flag,'--load-mh-history') || strcmpi(flag,'--display-mh-history')
|
|||
disp([' o Acceptance ratio in the current chain is ' num2str(oar(b)*100,'%5.2f') '%']);
|
||||
disp([' o Initial value of the posterior kernel is: ' num2str(oo.InitialLogPost(b),'%10.5f')])
|
||||
disp([' o Last value of the posterior kernel is: ' num2str(o.LastLogPost(b),'%10.5f')])
|
||||
disp([' o State of the chain:'])
|
||||
disp(' o State of the chain:')
|
||||
skipline()
|
||||
d1 = num2str(transpose(oo.InitialParameters(b,:)),'%10.5f\n');
|
||||
d2 = num2str(transpose(o.LastParameters(b,:)),'%10.5f\n');
|
||||
|
|
|
@ -699,7 +699,7 @@ if isfield(M_,'filter_initial_state') && ~isempty(M_.filter_initial_state)
|
|||
elseif ~options_.loglinear && ~options_.logged_steady_state
|
||||
a(oo_.dr.restrict_columns(ii)) = eval(M_.filter_initial_state{state_indices(ii),2}) - oo_.dr.ys(state_indices(ii));
|
||||
else
|
||||
error(['The steady state is logged. This should not happen. Please contact the developers'])
|
||||
error('The steady state is logged. This should not happen. Please contact the developers')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -123,7 +123,7 @@ while rank(Z*Pinf*Z',diffuse_kalman_tol) && (t<=last)
|
|||
end
|
||||
|
||||
if t>last
|
||||
warning(['kalman_filter_d: There isn''t enough information to estimate the initial conditions of the nonstationary variables. The diffuse Kalman filter never left the diffuse stage.']);
|
||||
warning('kalman_filter_d: There isn''t enough information to estimate the initial conditions of the nonstationary variables. The diffuse Kalman filter never left the diffuse stage.');
|
||||
dLIK = NaN;
|
||||
return
|
||||
end
|
||||
|
|
|
@ -134,7 +134,7 @@ while rank(Pinf,diffuse_kalman_tol) && (t<=last)
|
|||
end
|
||||
|
||||
if t==(last+1)
|
||||
warning(['kalman_filter_d: There isn''t enough information to estimate the initial conditions of the nonstationary variables. The diffuse Kalman filter never left the diffuse stage.']);
|
||||
warning('kalman_filter_d: There isn''t enough information to estimate the initial conditions of the nonstationary variables. The diffuse Kalman filter never left the diffuse stage.');
|
||||
dLIK = NaN;
|
||||
return
|
||||
end
|
||||
|
|
|
@ -181,7 +181,7 @@ while newRank && (t<=last)
|
|||
end
|
||||
|
||||
if (t>last)
|
||||
warning(['univariate_diffuse_kalman_filter:: There isn''t enough information to estimate the initial conditions of the nonstationary variables']);
|
||||
warning('univariate_diffuse_kalman_filter:: There isn''t enough information to estimate the initial conditions of the nonstationary variables');
|
||||
dLIK = NaN;
|
||||
return
|
||||
end
|
||||
|
|
|
@ -815,6 +815,6 @@ epsilonhat = Y - Z*alphahat;
|
|||
|
||||
|
||||
if (d==smpl)
|
||||
warning(['missing_DiffuseKalmanSmootherH3_Z:: There isn''t enough information to estimate the initial conditions of the nonstationary variables']);
|
||||
warning('missing_DiffuseKalmanSmootherH3_Z:: There isn''t enough information to estimate the initial conditions of the nonstationary variables');
|
||||
return
|
||||
end
|
||||
|
|
|
@ -48,7 +48,7 @@ if Long_names_present==1
|
|||
else
|
||||
fprintf(fid, '\\begin{longtable}{cc}\n');
|
||||
end
|
||||
fprintf(fid, ['\\caption{Parameter Values}\\\\%%\n']);
|
||||
fprintf(fid, '\\caption{Parameter Values}\\\\%%\n');
|
||||
|
||||
fprintf(fid, '\\toprule%%\n');
|
||||
fprintf(fid, '\\multicolumn{1}{c}{\\textbf{Parameter}} &\n');
|
||||
|
|
|
@ -175,7 +175,7 @@ fprintf(fidTeX,'%% End of TeX file.\n');
|
|||
fclose(fidTeX);
|
||||
|
||||
function format_string = build_format_string(PriorMode,PriorStandardDeviation,LowerBound,UpperBound)
|
||||
format_string = ['%s & %s & %6.4f &'];
|
||||
format_string = '%s & %s & %6.4f &';
|
||||
if isnan(PriorMode)
|
||||
format_string = [ format_string , ' %s &'];
|
||||
else
|
||||
|
|
|
@ -35,12 +35,12 @@ iyf = find(lead_lag_incidence(3,:)>0) ;
|
|||
|
||||
nd = nyp+ny0+nyf;
|
||||
nrc = nyf+1 ;
|
||||
isp = [1:nyp] ;
|
||||
is = [nyp+1:ny+nyp] ;
|
||||
isp = 1:nyp ;
|
||||
is = nyp+1:ny+nyp ;
|
||||
isf = iyf+nyp ;
|
||||
isf1 = [nyp+ny+1:nyf+nyp+ny+1] ;
|
||||
isf1 = nyp+ny+1:nyf+nyp+ny+1 ;
|
||||
stop = 0 ;
|
||||
iz = [1:ny+nyp+nyf];
|
||||
iz = 1:ny+nyp+nyf;
|
||||
|
||||
periods = options.periods;
|
||||
steady_state = oo_.steady_state;
|
||||
|
|
|
@ -34,7 +34,7 @@ else
|
|||
try
|
||||
data_mat=[data_mat vec(data_file.(varobs{var_iter}))];
|
||||
catch
|
||||
error(['makedataset: The variable %s does not have dimensions conformable with the previous one'], varobs{var_iter});
|
||||
error('makedataset: The variable %s does not have dimensions conformable with the previous one', varobs{var_iter});
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -59,19 +59,19 @@ problem_dummy=0;
|
|||
%naming conflict in steady state file
|
||||
if options_.steadystate_flag == 1
|
||||
if strmatch('ys',M_.endo_names,'exact')
|
||||
disp(['MODEL_DIAGNOSTICS: using the name ys for an endogenous variable will typically conflict with the internal naming in user-defined steady state files.'])
|
||||
disp('MODEL_DIAGNOSTICS: using the name ys for an endogenous variable will typically conflict with the internal naming in user-defined steady state files.')
|
||||
problem_dummy=1;
|
||||
end
|
||||
if strmatch('ys',M_.param_names,'exact')
|
||||
disp(['MODEL_DIAGNOSTICS: using the name ys for a parameter will typically conflict with the internal naming in user-defined steady state files.'])
|
||||
disp('MODEL_DIAGNOSTICS: using the name ys for a parameter will typically conflict with the internal naming in user-defined steady state files.')
|
||||
problem_dummy=1;
|
||||
end
|
||||
if strmatch('M_',M_.endo_names,'exact')
|
||||
disp(['MODEL_DIAGNOSTICS: using the name M_ for an endogenous variable will typically conflict with the internal naming in user-defined steady state files.'])
|
||||
disp('MODEL_DIAGNOSTICS: using the name M_ for an endogenous variable will typically conflict with the internal naming in user-defined steady state files.')
|
||||
problem_dummy=1;
|
||||
end
|
||||
if strmatch('M_',M_.param_names,'exact')
|
||||
disp(['MODEL_DIAGNOSTICS: using the name M_ for a parameter will typically conflict with the internal naming in user-defined steady state files.'])
|
||||
disp('MODEL_DIAGNOSTICS: using the name M_ for a parameter will typically conflict with the internal naming in user-defined steady state files.')
|
||||
problem_dummy=1;
|
||||
end
|
||||
end
|
||||
|
@ -124,10 +124,10 @@ if check1(1)
|
|||
problem_dummy=1;
|
||||
disp('MODEL_DIAGNOSTICS: The steady state cannot be computed')
|
||||
if any(isnan(dr.ys))
|
||||
disp(['MODEL_DIAGNOSTICS: Steady state contains NaNs'])
|
||||
disp('MODEL_DIAGNOSTICS: Steady state contains NaNs')
|
||||
end
|
||||
if any(isinf(dr.ys))
|
||||
disp(['MODEL_DIAGNOSTICS: Steady state contains Inf'])
|
||||
disp('MODEL_DIAGNOSTICS: Steady state contains Inf')
|
||||
end
|
||||
return
|
||||
end
|
||||
|
|
|
@ -58,7 +58,7 @@ ivar=zeros(nvar,1);
|
|||
for i=1:nvar
|
||||
i_tmp = strmatch(var_list{i}, M_.endo_names, 'exact');
|
||||
if isempty(i_tmp)
|
||||
error (['One of the variables specified does not exist']) ;
|
||||
error ('One of the variables specified does not exist') ;
|
||||
else
|
||||
ivar(i) = i_tmp;
|
||||
end
|
||||
|
@ -70,9 +70,9 @@ nspred = M_.nspred;
|
|||
nstatic = M_.nstatic;
|
||||
kstate = oo_.dr.kstate;
|
||||
order = oo_.dr.order_var;
|
||||
iv(order) = [1:length(order)];
|
||||
iv(order) = 1:length(order);
|
||||
nx = size(ghx,2);
|
||||
ikx = [nstatic+1:nstatic+nspred];
|
||||
ikx = nstatic+1:nstatic+nspred;
|
||||
k0 = kstate(find(kstate(:,2) <= M_.maximum_lag+1),:);
|
||||
i0 = find(k0(:,2) == M_.maximum_lag+1);
|
||||
i00 = i0;
|
||||
|
|
|
@ -302,6 +302,6 @@ if options_.order==1
|
|||
end
|
||||
end
|
||||
else
|
||||
fprintf(['Estimation::compute_moments_varendo: (conditional) variance decomposition only available at order=1. Skipping computations\n'])
|
||||
fprintf('Estimation::compute_moments_varendo: (conditional) variance decomposition only available at order=1. Skipping computations\n')
|
||||
end
|
||||
fprintf('Done!\n\n');
|
||||
|
|
|
@ -58,7 +58,7 @@ if ~all(M_.H==0)
|
|||
end
|
||||
if ~isempty(observable_pos_requested_vars)
|
||||
ME_present=1;
|
||||
i_ME = setdiff([1:size(M_.H,1)],find(diag(M_.H) == 0)); % find ME with 0 variance
|
||||
i_ME = setdiff(1:size(M_.H,1),find(diag(M_.H) == 0)); % find ME with 0 variance
|
||||
chol_S = chol(M_.H(i_ME,i_ME)); %decompose rest
|
||||
shock_mat=zeros(options_.periods,size(M_.H,1)); %initialize
|
||||
shock_mat(:,i_ME)=randn(length(i_ME),options_.periods)'*chol_S;
|
||||
|
@ -173,7 +173,7 @@ if ~options_.nodecomposition
|
|||
end
|
||||
end
|
||||
%back out shock matrix used for generating y
|
||||
i_exo_var = setdiff([1:M_.exo_nbr],find(diag(M_.Sigma_e) == 0)); % find shocks with 0 variance
|
||||
i_exo_var = setdiff(1:M_.exo_nbr,find(diag(M_.Sigma_e) == 0)); % find shocks with 0 variance
|
||||
chol_S = chol(M_.Sigma_e(i_exo_var,i_exo_var)); %decompose rest
|
||||
shock_mat=zeros(options_.periods,M_.exo_nbr); %initialize
|
||||
shock_mat(:,i_exo_var)=oo_.exo_simul(:,i_exo_var)/chol_S; %invert construction of oo_.exo_simul from simult.m
|
||||
|
|
|
@ -43,7 +43,7 @@ function oo_=disp_th_moments_pruned_state_space(dr,M_,options_,i_var,oo_)
|
|||
|
||||
|
||||
if options_.one_sided_hp_filter || options_.hp_filter || options_.bandpass.indicator
|
||||
error(['disp_th_moments:: theoretical moments incompatible with filtering. Use simulated moments instead'])
|
||||
error('disp_th_moments:: theoretical moments incompatible with filtering. Use simulated moments instead')
|
||||
end
|
||||
|
||||
nvars=length(i_var);
|
||||
|
|
|
@ -121,7 +121,7 @@ vlog_a0_Yao = zeros(nvar,1);
|
|||
vlog=zeros(ndraws2,1);
|
||||
for k=1:nvar
|
||||
bk = Uiconst{k}'*A0xhat(:,k);
|
||||
indx_ks=[k:nvar]; % the columns that exclude 1-(k-1)th columns
|
||||
indx_ks=k:nvar; % the columns that exclude 1-(k-1)th columns
|
||||
A0gbs0 = A0hat; % starting at some point such as the peak
|
||||
nk = n0(k);
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ for i_chain = 1:n_chains
|
|||
%//== column of the transition matrix. Each element must be positive. For each column,
|
||||
%//== the relative size of the prior elements determine the relative size of the elements
|
||||
%//== of the transition matrix and overall larger sizes implies a tighter prior.
|
||||
fprintf(fh,['//== Transition matrix prior for state_variable[%d] ==//\n'], ...
|
||||
fprintf(fh,'//== Transition matrix prior for state_variable[%d] ==//\n', ...
|
||||
i_chain);
|
||||
Alpha = ones(n_states,n_states);
|
||||
for i_state = 1:n_states
|
||||
|
|
|
@ -289,7 +289,7 @@ if options_.ms.indxestima
|
|||
% - 0.01 (or any number < 1) is used so that qmStart+options_.ms.nlags -options_.ms.dummy_obs ==-?*options_.ms.freq give us an extra year back.
|
||||
end
|
||||
end
|
||||
dateswd = fn_dataext([yrStartEsti qmStartEsti],[yrEnd qmEnd],xdatae(:,[1:2])); % dates with dummies
|
||||
dateswd = fn_dataext([yrStartEsti qmStartEsti],[yrEnd qmEnd],xdatae(:,1:2)); % dates with dummies
|
||||
phie = [dateswd phi];
|
||||
ye = [dateswd y];
|
||||
|
||||
|
@ -484,8 +484,8 @@ if options_.ms.indxestima
|
|||
% only actual growth rates
|
||||
yafyrghate
|
||||
if options_.ms.indxgforhat
|
||||
keyindx = [1:nvar];
|
||||
conlab=['unconditional'];
|
||||
keyindx = 1:nvar;
|
||||
conlab='unconditional';
|
||||
|
||||
figure
|
||||
yafyrghate(:,3:end) = yafyrghate(:,3:end)/100;
|
||||
|
@ -680,9 +680,9 @@ if options_.ms.indxestima
|
|||
[yacyrghate,yacyrhate,yacqmyghate] = fn_datana(yachate,options_.ms.freq,options_.ms.log_var(1:nlogeno),options_.ms.percent_var(1:npereno));
|
||||
% actual and conditional forecast growth rates
|
||||
if options_.ms.indxgdls && nconstr
|
||||
keyindx = [1:nvar];
|
||||
keyindx = 1:nvar;
|
||||
% conlab=['conditional on' ylab{PorR(1)}];
|
||||
conlab=['v-conditions'];
|
||||
conlab='v-conditions';
|
||||
|
||||
figure
|
||||
fn_foregraph(yafyrghate,yact2yrge,keyindx,rnum,cnum,options_.ms.freq,ylab,forelabel,conlab)
|
||||
|
@ -713,9 +713,9 @@ if options_.ms.indxestima
|
|||
disp([sprintf('%4.0f %2.0f %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f\n',yacEyrghate')])
|
||||
|
||||
if 1
|
||||
keyindx = [1:nvar];
|
||||
keyindx = 1:nvar;
|
||||
% conlab=['conditional on' ylab{PorR(1)}];
|
||||
conlab=['shock-conditions'];
|
||||
conlab='shock-conditions';
|
||||
|
||||
figure
|
||||
gyrfore(yacEyrghate,yact2yrge,keyindx,rnum,cnum,ylab,forelabel,conlab)
|
||||
|
@ -733,7 +733,7 @@ if options_.ms.indxestima
|
|||
qmStartWod = options_.ms.freq;
|
||||
end
|
||||
yrStartWod = yrStart + floor((qmStart+options_.ms.nlags -1)/options_.ms.freq);
|
||||
dateswod = fn_dataext([yrStartWod qmStartWod],[yrEnd qmEnd],xdatae(:,[1:2]));
|
||||
dateswod = fn_dataext([yrStartWod qmStartWod],[yrEnd qmEnd],xdatae(:,1:2));
|
||||
eplhate = [dateswod eplhat];
|
||||
|
||||
Aphat = Fhat;
|
||||
|
|
|
@ -48,7 +48,7 @@ end
|
|||
%1 CBO output gap -- log(x_t)-log(x_t potential)
|
||||
%2 GDP deflator -- (P_t/P_{t-1})^4-1.0
|
||||
%2 FFR/100.
|
||||
options_.ms.vlist = [1:length(options_.varobs)]; % 1: U; 4: PCE inflation.
|
||||
options_.ms.vlist = 1:length(options_.varobs); % 1: U; 4: PCE inflation.
|
||||
options_.ms.varlist=cellstr(options_.varobs');
|
||||
options_.ms.log_var = sort(varlist_indices(options_.ms.vlistlog,char(options_.varobs))); % subset of "options_.ms.vlist. Variables in log level so that differences are in **monthly** growth, unlike R and U which are in annual percent (divided by 100 already).
|
||||
options_.ms.percent_var =setdiff(options_.ms.vlist,options_.ms.log_var);
|
||||
|
|
|
@ -83,7 +83,7 @@ for i=1:nvars
|
|||
series_names{i} = endo_names{i};
|
||||
end
|
||||
|
||||
x = [1:T];
|
||||
x = 1:T;
|
||||
plot_dates = 0;
|
||||
data = 0;
|
||||
steady = 0;
|
||||
|
|
|
@ -80,7 +80,7 @@ if strcmpi(type,'StructuralShock')
|
|||
end
|
||||
end
|
||||
catch
|
||||
disp(['Off diagonal terms of the covariance matrix are not estimated (state equation)'])
|
||||
disp('Off diagonal terms of the covariance matrix are not estimated (state equation)')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -309,7 +309,7 @@ else
|
|||
ysteady = [ys(oo_.dr.order_var); U/(1-beta)];
|
||||
|
||||
% Generates the sequence of shocks to compute unconditional welfare
|
||||
i_exo_var = setdiff([1:M_.exo_nbr],find(diag(M_.Sigma_e) == 0));
|
||||
i_exo_var = setdiff(1:M_.exo_nbr,find(diag(M_.Sigma_e) == 0));
|
||||
nxs = length(i_exo_var);
|
||||
chol_S = chol(M_.Sigma_e(i_exo_var,i_exo_var));
|
||||
exo_simul = zeros(M_.exo_nbr,options_.ramsey.periods);
|
||||
|
@ -397,7 +397,7 @@ if ~isempty(M_.det_shocks)
|
|||
end
|
||||
shock_indices=find(periods==1);
|
||||
if any(cellfun(@(x) ~strcmp(x, 'level'), { M_.det_shocks(shock_indices).type }))
|
||||
fprintf(['\nevaluate_planner_objective: Shock values need to be specified in level.\n'])
|
||||
fprintf('\nevaluate_planner_objective: Shock values need to be specified in level.\n')
|
||||
end
|
||||
u([M_.det_shocks(shock_indices).exo_id])=[M_.det_shocks(shock_indices).value];
|
||||
else
|
||||
|
|
|
@ -298,7 +298,7 @@ input.fitfun = fitfun; % record used input
|
|||
if isempty(fitfun)
|
||||
% fitfun = definput.fitfun;
|
||||
% warning(['Objective function not determined, ''' fitfun ''' used']);
|
||||
error(['Objective function not determined']);
|
||||
error('Objective function not determined');
|
||||
end
|
||||
if ~ischar(fitfun)
|
||||
error('first argument FUN must be a string');
|
||||
|
@ -328,7 +328,7 @@ if isempty(insigma)
|
|||
if all(size(myeval(xstart)) > 1)
|
||||
insigma = std(xstart, 0, 2);
|
||||
if any(insigma == 0)
|
||||
error(['Initial search volume is zero, choose SIGMA or X0 appropriate']);
|
||||
error('Initial search volume is zero, choose SIGMA or X0 appropriate');
|
||||
end
|
||||
else
|
||||
% will be captured later
|
||||
|
@ -510,7 +510,7 @@ while irun <= myeval(opts.Restarts) % for-loop does not work with resume
|
|||
stopTolX = myeval(opts.TolX); % reevaluate these
|
||||
stopTolUpX = myeval(opts.TolUpX);
|
||||
else
|
||||
error(['Initial step sizes (SIGMA) not determined']);
|
||||
error('Initial step sizes (SIGMA) not determined');
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -543,10 +543,10 @@ while irun <= myeval(opts.Restarts) % for-loop does not work with resume
|
|||
|
||||
% Initialize dynamic internal state parameters
|
||||
if any(insigma <= 0)
|
||||
error(['Initial search volume (SIGMA) must be greater than zero']);
|
||||
error('Initial search volume (SIGMA) must be greater than zero');
|
||||
end
|
||||
if max(insigma)/min(insigma) > 1e6
|
||||
error(['Initial search volume (SIGMA) badly conditioned']);
|
||||
error('Initial search volume (SIGMA) badly conditioned');
|
||||
end
|
||||
sigma = max(insigma); % overall standard deviation
|
||||
pc = zeros(N,1); ps = zeros(N,1); % evolution paths for C and sigma
|
||||
|
|
|
@ -148,7 +148,7 @@ while i<n
|
|||
x = check_bounds(x,bounds);
|
||||
end
|
||||
if Verbose
|
||||
fprintf(['Done for param %s = %8.4f; f = %8.4f\n'],parameter_names{i},x(i),f0)
|
||||
fprintf('Done for param %s = %8.4f; f = %8.4f\n',parameter_names{i},x(i),f0)
|
||||
end
|
||||
end
|
||||
xh1=x;
|
||||
|
|
|
@ -219,7 +219,7 @@ if outer_product_gradient
|
|||
hessian_mat = zeros(size(f0,1),n*n);
|
||||
for i=1:n
|
||||
if i > 1
|
||||
k=[i:n:n*(i-1)];
|
||||
k=i:n:n*(i-1);
|
||||
hessian_mat(:,(i-1)*n+1:(i-1)*n+i-1)=hessian_mat(:,k);
|
||||
end
|
||||
hessian_mat(:,(i-1)*n+i)=(f1(:,i)+f_1(:,i)-2*f0)./(hess_info.h1(i)*h_1(i));
|
||||
|
|
|
@ -149,7 +149,7 @@ while norm(gg)>gtol && check==0 && jit<nit
|
|||
tic1 = tic;
|
||||
icount=icount+1;
|
||||
penalty = fval0(icount);
|
||||
disp_verbose([' '],Verbose)
|
||||
disp_verbose(' ',Verbose)
|
||||
disp_verbose(['Iteration ',num2str(icount)],Verbose)
|
||||
[fval,x0] = csminit1(func0,xparam1,penalty,fval0(icount),gg,0,H,Verbose,varargin{:});
|
||||
if igrad
|
||||
|
@ -335,11 +335,11 @@ if jit==nit
|
|||
end
|
||||
|
||||
if norm(gg)<=gtol
|
||||
disp_verbose(['Estimation ended:'],Verbose)
|
||||
disp_verbose('Estimation ended:',Verbose)
|
||||
disp_verbose(['Gradient norm < ', num2str(gtol)],Verbose)
|
||||
end
|
||||
if check==1
|
||||
disp_verbose(['Estimation successful.'],Verbose)
|
||||
disp_verbose('Estimation successful.',Verbose)
|
||||
end
|
||||
|
||||
return
|
||||
|
|
|
@ -394,7 +394,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
|
|||
end
|
||||
else
|
||||
if isfinite(fv(1))
|
||||
dprintf(['%s %s %12.7E %12.7E %s'], iter_, fval_, fv(1) , critX, move)
|
||||
dprintf('%s %s %12.7E %12.7E %s', iter_, fval_, fv(1) , critX, move)
|
||||
else
|
||||
dprintf('%s %s %12.7E %s', iter_, fval_, critX, move)
|
||||
end
|
||||
|
|
|
@ -125,7 +125,7 @@ for it_=start:incr:finish
|
|||
correcting_factor=correcting_factor*4;
|
||||
if verbose
|
||||
disp(['The Jacobian matrix is singular, det(Jacobian)=' num2str(detJ,'%f') '.'])
|
||||
disp([' trying to correct the Jacobian matrix:'])
|
||||
disp(' trying to correct the Jacobian matrix:')
|
||||
disp([' correcting_factor=' num2str(correcting_factor,'%f') ' max(Jacobian)=' num2str(full(max_factor),'%f')])
|
||||
end
|
||||
dx = - r/(g1+correcting_factor*speye(Blck_size));
|
||||
|
|
|
@ -761,7 +761,7 @@ while 1
|
|||
nsteps(2:kg)=nsteps(1:kg-1);
|
||||
end
|
||||
nsteps(1)=dx/(abs(h)*norm(g0));
|
||||
kk=sum(nsteps(1:kg).*[kg:-1:1])/sum([kg:-1:1]);
|
||||
kk=sum(nsteps(1:kg).*[kg:-1:1])/sum(kg:-1:1);
|
||||
if kk>des
|
||||
if kg==1
|
||||
h=h*(kk-des+1);
|
||||
|
|
|
@ -315,7 +315,7 @@ for Node=1:length(DataInput) % To obtain a recursive function remove the 'for'
|
|||
% Build a command file to test the matlab execution and dynare path ...
|
||||
|
||||
fid = fopen('Tracing.m', 'w+');
|
||||
s1=(['fT = fopen(''MatlabOctaveIsOk.txt'',''w+'');\n']);
|
||||
s1=('fT = fopen(''MatlabOctaveIsOk.txt'',''w+'');\n');
|
||||
s2='fclose(fT);\n';
|
||||
SBS=strfind(DataInput(Node).DynarePath,'\');
|
||||
DPStr=DataInput(Node).DynarePath;
|
||||
|
@ -329,17 +329,17 @@ for Node=1:length(DataInput) % To obtain a recursive function remove the 'for'
|
|||
DPStrNew=[DPStrNew,DPStr(SBS(end)+1:end)];
|
||||
end
|
||||
s3=['addpath(''',DPStrNew,'''),\n'];
|
||||
s4=['try,\n dynareroot = dynare_config();\n'];
|
||||
s41=([' fT = fopen(''DynareIsOk.txt'',''w+'');\n']);
|
||||
s4='try,\n dynareroot = dynare_config();\n';
|
||||
s41=(' fT = fopen(''DynareIsOk.txt'',''w+'');\n');
|
||||
s42=' fclose(fT);\n';
|
||||
s5=['catch,\n'];
|
||||
s51=([' fT = fopen(''DynareFailed.txt'',''w+'');\n']);
|
||||
s5='catch,\n';
|
||||
s51=(' fT = fopen(''DynareFailed.txt'',''w+'');\n');
|
||||
s52=' fclose(fT);\n';
|
||||
s6=['end,\n'];
|
||||
s7=['if ismac,\n'];
|
||||
s71=([' fT = fopen(''IsMac.txt'',''w+'');\n']);
|
||||
s6='end,\n';
|
||||
s7='if ismac,\n';
|
||||
s71=(' fT = fopen(''IsMac.txt'',''w+'');\n');
|
||||
s72=' fclose(fT);\n';
|
||||
s8=['end,\n'];
|
||||
s8='end,\n';
|
||||
send='exit';
|
||||
StrCommand=([s1,s2,s3,s4,s41,s42,s5,s51,s52,s6,s7,s71,s72,s8,send]);
|
||||
|
||||
|
@ -530,7 +530,7 @@ for Node=1:length(DataInput) % To obtain a recursive function remove the 'for'
|
|||
Environment1 = 2;
|
||||
end
|
||||
else
|
||||
command_string = ['psinfo \\'];
|
||||
command_string = 'psinfo \\';
|
||||
[si0, de0] = system(command_string);
|
||||
end
|
||||
else
|
||||
|
|
|
@ -76,7 +76,7 @@ end
|
|||
% parallel computations with Strategy == 1 delete the traces (if exists) of
|
||||
% previous computations.
|
||||
|
||||
delete(['P_slave_*End.txt']);
|
||||
delete('P_slave_*End.txt');
|
||||
masterParallel(options_.parallel,[],[],[],[],[],[],options_.parallel_info,1);
|
||||
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ for indPC=1:length(Parallel)
|
|||
delete( 'slaveParallel_input*.mat');
|
||||
delete( 'slaveJob*.mat');
|
||||
pause(1)
|
||||
delete(['slaveParallel_*.log']);
|
||||
delete('slaveParallel_*.log');
|
||||
delete ConcurrentCommand1.bat;
|
||||
|
||||
end
|
||||
|
|
|
@ -53,8 +53,8 @@ for j=1:lP
|
|||
skipline()
|
||||
disp(['PARALLEL_ERROR:: NumberOfThreadsPerJob = ',int2str(Parallel(j).NumberOfThreadsPerJob),' is not an exact divisor of number of CPUs = ',int2str(length(Parallel(j).CPUnbr)),'!'])
|
||||
disp([' You must re-set properly NumberOfThreadsPerJob of node ' int2str(j) ' ' Parallel(j).ComputerName])
|
||||
disp([' in your configuration file'])
|
||||
error(['PARALLEL_ERROR:: NumberOfThreadsPerJob is not an exact divisor of CPUnbr'])
|
||||
disp(' in your configuration file')
|
||||
error('PARALLEL_ERROR:: NumberOfThreadsPerJob is not an exact divisor of CPUnbr')
|
||||
end
|
||||
nCPU(j)=length(Parallel(j).CPUnbr)/Parallel(j).NumberOfThreadsPerJob;
|
||||
totCPU=totCPU+nCPU(j);
|
||||
|
|
|
@ -49,9 +49,9 @@ for indPC=1:length(Parallel)
|
|||
|
||||
for i=1:length(NewFilesFromSlaves)
|
||||
SlashNumberAndPosition=[];
|
||||
PRCDirPosition=findstr(NewFilesFromSlaves{i}, ([PRCDir]));
|
||||
PRCDirPosition=findstr(NewFilesFromSlaves{i}, (PRCDir));
|
||||
sT=NewFilesFromSlaves{i};
|
||||
sT(1:(PRCDirPosition+length([PRCDir]))-2)=[];
|
||||
sT(1:(PRCDirPosition+length(PRCDir))-2)=[];
|
||||
sT(1)='.';
|
||||
SlashNumberAndPosition=findstr(sT,fS);
|
||||
fileaddress={sT(1:SlashNumberAndPosition(end)),sT(SlashNumberAndPosition(end)+1:end)};
|
||||
|
|
|
@ -48,7 +48,7 @@ for indPC=1:length(Parallel)
|
|||
end
|
||||
if ischar(NamFileInput0)
|
||||
for j=1:size(NamFileInput0,1)
|
||||
NamFile(j,:)={['./'],deblank(NamFileInput0(j,:))};
|
||||
NamFile(j,:)={'./',deblank(NamFileInput0(j,:))};
|
||||
end
|
||||
NamFileInput = NamFile;
|
||||
end
|
||||
|
@ -94,7 +94,7 @@ for indPC=1:length(Parallel)
|
|||
else
|
||||
if ischar(NamFileInput0)
|
||||
for j=1:size(NamFileInput0,1)
|
||||
NamFile(j,:)={['.\'],deblank(NamFileInput0(j,:))};
|
||||
NamFile(j,:)={'.\',deblank(NamFileInput0(j,:))};
|
||||
end
|
||||
NamFileInput = NamFile;
|
||||
end
|
||||
|
|
|
@ -51,9 +51,9 @@ for indPC=1:length(Parallel)
|
|||
|
||||
for i=1:length(NewFilesFromSlaves)
|
||||
SlashNumberAndPosition=[];
|
||||
PRCDirPosition=findstr(NewFilesFromSlaves{i}, ([PRCDir]));
|
||||
PRCDirPosition=findstr(NewFilesFromSlaves{i}, (PRCDir));
|
||||
sT=NewFilesFromSlaves{i};
|
||||
sT(1:(PRCDirPosition+length([PRCDir]))-2)=[];
|
||||
sT(1:(PRCDirPosition+length(PRCDir))-2)=[];
|
||||
sT(1)='.';
|
||||
SlashNumberAndPosition=findstr(sT,fS);
|
||||
fileaddress={sT(1:SlashNumberAndPosition(end)),sT(SlashNumberAndPosition(end)+1:end)};
|
||||
|
|
|
@ -43,7 +43,7 @@ catch
|
|||
end
|
||||
|
||||
fslave = dir( ['slaveParallel_input',int2str(njob),'.mat']);
|
||||
fbreak = dir( ['slaveParallel_break.mat']);
|
||||
fbreak = dir( 'slaveParallel_break.mat');
|
||||
if isempty(fslave) || ~isempty(fbreak)
|
||||
error('Master asked to break the job');
|
||||
end
|
||||
|
|
|
@ -102,7 +102,7 @@ if nargin>8 && initialize==1
|
|||
evalin('base','clear PRCDirTmp,')
|
||||
else
|
||||
% Delete the traces (if existing) of last local session of computations.
|
||||
mydelete(['slaveParallel_input*.mat']);
|
||||
mydelete('slaveParallel_input*.mat');
|
||||
end
|
||||
return
|
||||
end
|
||||
|
@ -183,11 +183,11 @@ if parallel_recover ==0
|
|||
|
||||
case 1
|
||||
if exist('fGlobalVar','var')
|
||||
save(['temp_input.mat'],'fInputVar','fGlobalVar')
|
||||
save('temp_input.mat','fInputVar','fGlobalVar')
|
||||
else
|
||||
save(['temp_input.mat'],'fInputVar')
|
||||
save('temp_input.mat','fInputVar')
|
||||
end
|
||||
save(['temp_input.mat'],'Parallel','-append')
|
||||
save('temp_input.mat','Parallel','-append')
|
||||
closeSlave(Parallel,PRCDir,-1);
|
||||
end
|
||||
|
||||
|
@ -608,7 +608,7 @@ if parallel_recover ==0
|
|||
hstatus(j) = axes('position',[0.05/ncol+(jcol-1)/ncol vstart-vspace*(jrow-1) 0.9/ncol 0.3*vspace], ...
|
||||
'box','on','xtick',[],'ytick',[],'xlim',[0 1],'ylim',[0 1]);
|
||||
hpat(j) = patch([0 0 0 0],[0 1 1 0],'r','EdgeColor','r');
|
||||
htit(j) = title(['Initialize ...']);
|
||||
htit(j) = title('Initialize ...');
|
||||
|
||||
end
|
||||
|
||||
|
@ -902,13 +902,13 @@ switch Strategy
|
|||
catch
|
||||
end
|
||||
|
||||
mydelete(['*_core*_input*.mat']);
|
||||
mydelete('*_core*_input*.mat');
|
||||
|
||||
end
|
||||
|
||||
delete ConcurrentCommand1.bat
|
||||
case 1
|
||||
delete(['temp_input.mat'])
|
||||
delete('temp_input.mat')
|
||||
if newInstance
|
||||
if isempty(dir('dynareParallelLogFiles'))
|
||||
rmdir('dynareParallelLogFiles');
|
||||
|
|
|
@ -194,7 +194,7 @@ if(options_.ACES_solver)
|
|||
for i=1:num_inst
|
||||
i_tmp = strmatch(deblank(lq_instruments.names(i,:)), M_.endo_names,'exact');
|
||||
if isempty(i_tmp)
|
||||
error (['One of the specified instrument variables does not exist']) ;
|
||||
error ('One of the specified instrument variables does not exist') ;
|
||||
else
|
||||
i_var(i) = i_tmp;
|
||||
end
|
||||
|
@ -303,7 +303,7 @@ if ( M_.maximum_lag <= 1) && (M_.maximum_lead <= 1)
|
|||
if num_exp_0>0
|
||||
AA3(:,exp_0)=AA1(:,exp_0);
|
||||
XX0=zeros(nendo,num_exp_0);
|
||||
AA1(:,exp_0)=XX0(:,[1:num_exp_0])
|
||||
AA1(:,exp_0)=XX0(:,1:num_exp_0)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -32,7 +32,7 @@ function plan = basic_plan(plan, exogenous, expectation_type, date, value)
|
|||
% along with Dynare. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
if ~ischar(expectation_type) || size(expectation_type,1) ~= 1
|
||||
error(['in basic_plan the third argument should be a string containing the simulation type (''perfect_foresight'' or ''surprise'')']);
|
||||
error('in basic_plan the third argument should be a string containing the simulation type (''perfect_foresight'' or ''surprise'')');
|
||||
end
|
||||
exogenous = strtrim(exogenous);
|
||||
ix = find(strcmp(exogenous, plan.exo_names));
|
||||
|
|
|
@ -32,7 +32,7 @@ function plan = flip_plan(plan, exogenous, endogenous, expectation_type, date, v
|
|||
% You should have received a copy of the GNU General Public License
|
||||
% along with Dynare. If not, see <https://www.gnu.org/licenses/>.
|
||||
if ~ischar(expectation_type) || size(expectation_type,1) ~= 1
|
||||
error(['in flip_plan the fourth argument should be a string containing the simulation type (''perfect_foresight'' or ''surprise'')']);
|
||||
error('in flip_plan the fourth argument should be a string containing the simulation type (''perfect_foresight'' or ''surprise'')');
|
||||
end
|
||||
exogenous = strtrim(exogenous);
|
||||
ix = find(strcmp(exogenous, plan.endo_names));
|
||||
|
|
|
@ -118,7 +118,7 @@ while ~(cvg || iter > options_.simul.maxit)
|
|||
correcting_factor=correcting_factor*4;
|
||||
if verbose
|
||||
disp(['The Jacobian matrix is singular, det(Jacobian)=' num2str(detJ,'%f') '.']);
|
||||
disp([' trying to correct the Jacobian matrix:']);
|
||||
disp(' trying to correct the Jacobian matrix:');
|
||||
disp([' correcting_factor=' num2str(correcting_factor,'%f') ' max(Jacobian)=' num2str(full(max_factor),'%f')]);
|
||||
end
|
||||
dx = (g1aa+correcting_factor*speye(periods*Blck_size))\ba- ya_save;
|
||||
|
|
|
@ -97,7 +97,7 @@ elseif iscell(o.xTickLabels)
|
|||
x = o.xTicks;
|
||||
xTickLabels = o.xTickLabels;
|
||||
else
|
||||
x = [1:dd.ndat];
|
||||
x = 1:dd.ndat;
|
||||
xTickLabels = strings(dd);
|
||||
end
|
||||
fprintf(fid, 'xticklabels={');
|
||||
|
|
|
@ -64,7 +64,7 @@ if nargin==8
|
|||
if isfield(opts_decomp,'fig_name')
|
||||
fig_name = opts_decomp.fig_name;
|
||||
% fig_name = ['_' fig_name];
|
||||
fig_name1 = [fig_name];
|
||||
fig_name1 = fig_name;
|
||||
fig_name = [fig_name '_'];
|
||||
end
|
||||
if screen_shocks
|
||||
|
|
|
@ -269,7 +269,7 @@ for j=1:nvar
|
|||
if nfigs>1
|
||||
suffix = ['_detail_' int2str(jf)];
|
||||
else
|
||||
suffix = ['_detail'];
|
||||
suffix = '_detail';
|
||||
end
|
||||
if ~options_.plot_shock_decomp.expand
|
||||
dyn_saveas(fhandle,[GraphDirectoryName, filesep, M_.fname, ...
|
||||
|
|
|
@ -605,7 +605,7 @@ for i=1:ngroups
|
|||
end
|
||||
zothers = sum(z(:,1:nshocks,:),2);
|
||||
shock_groups.(['group' int2str(ngroups+1)]).label = 'Others';
|
||||
shock_groups.(['group' int2str(ngroups+1)]).shocks = cellstr(M_.exo_names(find(~ismember([1:M_.exo_nbr],kcum)),:))';
|
||||
shock_groups.(['group' int2str(ngroups+1)]).shocks = cellstr(M_.exo_names(find(~ismember(1:M_.exo_nbr,kcum)),:))';
|
||||
M_.shock_groups.(options_.plot_shock_decomp.use_shock_groups)=shock_groups;
|
||||
if any(any(zothers))
|
||||
shock_names = [shock_names; {'Others + Initial Values'}];
|
||||
|
|
|
@ -129,7 +129,7 @@ else
|
|||
running_text = 'Fast realtime shock decomposition ';
|
||||
end
|
||||
newString=sprintf(running_text);
|
||||
fprintf(['%s'],newString);
|
||||
fprintf('%s',newString);
|
||||
|
||||
for j=presample+1:nobs
|
||||
% evalin('base',['options_.nobs=' int2str(j) ';'])
|
||||
|
|
|
@ -60,7 +60,7 @@ if local_order == 1
|
|||
y = y2(:,M_.maximum_lag+1:end)-y1;
|
||||
else
|
||||
% eliminate shocks with 0 variance
|
||||
i_exo_var = setdiff([1:M_.exo_nbr],find(diag(M_.Sigma_e) == 0 ));
|
||||
i_exo_var = setdiff(1:M_.exo_nbr,find(diag(M_.Sigma_e) == 0 ));
|
||||
nxs = length(i_exo_var);
|
||||
ex1 = zeros(long+drop,M_.exo_nbr);
|
||||
chol_S = chol(M_.Sigma_e(i_exo_var,i_exo_var));
|
||||
|
|
|
@ -72,7 +72,7 @@ if replic > 1
|
|||
end
|
||||
|
||||
% eliminate shocks with 0 variance
|
||||
i_exo_var = setdiff([1:M_.exo_nbr],find(diag(M_.Sigma_e) == 0));
|
||||
i_exo_var = setdiff(1:M_.exo_nbr,find(diag(M_.Sigma_e) == 0));
|
||||
nxs = length(i_exo_var);
|
||||
exo_simul = zeros(options_.periods,M_.exo_nbr);
|
||||
chol_S = chol(M_.Sigma_e(i_exo_var,i_exo_var));
|
||||
|
|
|
@ -53,7 +53,7 @@ end
|
|||
nx = size(dr.ghu,2);
|
||||
y_ = zeros(size(y0,1),iter+ykmin);
|
||||
y_(:,1:ykmin) = y0;
|
||||
k1 = [ykmin:-1:1];
|
||||
k1 = ykmin:-1:1;
|
||||
k2 = dr.kstate(find(dr.kstate(:,2) <= ykmin+1),[1 2]);
|
||||
k2 = k2(:,1)+(ykmin+1-k2(:,2))*endo_nbr;
|
||||
k3 = M_.lead_lag_incidence(1:ykmin,:)';
|
||||
|
@ -64,14 +64,14 @@ k4 = k4(:,1)+(ykmin+1-k4(:,2))*endo_nbr;
|
|||
nvar = length(var_list);
|
||||
if nvar == 0
|
||||
nvar = endo_nbr;
|
||||
ivar = [1:nvar];
|
||||
ivar = 1:nvar;
|
||||
else
|
||||
ivar=zeros(nvar,1);
|
||||
for i=1:nvar
|
||||
i_tmp = strmatch(var_list{i}, M_.endo_names, 'exact');
|
||||
if isempty(i_tmp)
|
||||
disp(var_list{i})
|
||||
error (['One of the variable specified does not exist']) ;
|
||||
error ('One of the variable specified does not exist') ;
|
||||
else
|
||||
ivar(i) = i_tmp;
|
||||
end
|
||||
|
|
|
@ -73,7 +73,7 @@ if M_.maximum_endo_lag == 0
|
|||
fprintf('\nSTOCHASTIC_SOLVER: Dynare does not solve purely forward models with var_exo_det.\n')
|
||||
fprintf('STOCHASTIC_SOLVER: To circumvent this restriction, you can add a backward-looking dummy equation of the form:\n')
|
||||
fprintf('STOCHASTIC_SOLVER: junk=0.9*junk(-1);\n')
|
||||
error(['var_exo_det not implemented for purely forward models'])
|
||||
error('var_exo_det not implemented for purely forward models')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -81,7 +81,7 @@ if M_.maximum_endo_lead==0 && M_.exo_det_nbr~=0
|
|||
fprintf('\nSTOCHASTIC_SOLVER: Dynare does not solve purely backward models with var_exo_det.\n')
|
||||
fprintf('STOCHASTIC_SOLVER: To circumvent this restriction, you can add a foward-looking dummy equation of the form:\n')
|
||||
fprintf('STOCHASTIC_SOLVER: junk=0.9*junk(+1);\n')
|
||||
error(['var_exo_det not implemented for purely backwards models'])
|
||||
error('var_exo_det not implemented for purely backwards models')
|
||||
end
|
||||
|
||||
if options_.k_order_solver
|
||||
|
@ -261,7 +261,7 @@ else
|
|||
k1 = nonzeros(M_.lead_lag_incidence(:,order_var)');
|
||||
kk = [k1; length(k1)+(1:M_.exo_nbr+M_.exo_det_nbr)'];
|
||||
nk = size(kk,1);
|
||||
kk1 = reshape([1:nk^2],nk,nk);
|
||||
kk1 = reshape(1:nk^2,nk,nk);
|
||||
kk1 = kk1(kk,kk);
|
||||
hessian1 = hessian1(:,kk1(:));
|
||||
end
|
||||
|
@ -295,7 +295,7 @@ if M_.exo_det_nbr > 0
|
|||
zud=[zeros(nspred,M_.exo_det_nbr);dr.ghud{1};gx(:,1:nspred)*hud;zeros(M_.exo_nbr,M_.exo_det_nbr);eye(M_.exo_det_nbr)];
|
||||
R1 = hessian1*kron(zx,zud);
|
||||
dr.ghxud = cell(M_.exo_det_length,1);
|
||||
kf = [M_.endo_nbr-nfwrd-nboth+1:M_.endo_nbr];
|
||||
kf = M_.endo_nbr-nfwrd-nboth+1:M_.endo_nbr;
|
||||
kp = nstatic+[1:nspred];
|
||||
dr.ghxud{1} = -M1*(R1+f1*dr.ghxx(kf,:)*kron(dr.ghx(kp,:),dr.ghud{1}(kp,:)));
|
||||
Eud = eye(M_.exo_det_nbr);
|
||||
|
|
|
@ -32,7 +32,7 @@ function info=test_for_deep_parameters_calibration(M_)
|
|||
plist = list_of_parameters_calibrated_as_NaN(M_);
|
||||
if ~isempty(plist)
|
||||
info=1;
|
||||
message = ['Some of the parameters have no value (' ];
|
||||
message = 'Some of the parameters have no value (' ;
|
||||
for i=1:length(plist)
|
||||
if i<length(plist)
|
||||
message = [message, plist{i} ', '];
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit a6b97581c379bde8e5022e230075c18421a8094a
|
||||
Subproject commit 3362b3f43053a2bb5d3d3a1dbfb1a9e0c42a8fb8
|
Loading…
Reference in New Issue