Condition check for changed parameters on whether parameters are estimated in the first place
Fixes crash in master unit testtime-shift
parent
fe938c902a
commit
a7f380d8c0
|
@ -49,20 +49,22 @@ old_steady_params=Model.params; %save initial parameters for check if steady sta
|
||||||
% % 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, new_steady_params] = evaluate_steady_state(DynareResults.steady_state,Model,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
|
[DynareResults.steady_state, new_steady_params] = evaluate_steady_state(DynareResults.steady_state,Model,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
|
||||||
|
|
||||||
%check whether steady state file changes estimated parameters
|
if ~isempty(EstimatedParameters.param_vals)
|
||||||
Model_par_varied=Model; %store Model structure
|
%check whether steady state file changes estimated parameters
|
||||||
Model_par_varied.params(EstimatedParameters.param_vals(:,1))=Model_par_varied.params(EstimatedParameters.param_vals(:,1))*1.01; %vary parameters
|
Model_par_varied=Model; %store Model structure
|
||||||
[junk, new_steady_params_2] = evaluate_steady_state(DynareResults.steady_state,Model_par_varied,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
|
Model_par_varied.params(EstimatedParameters.param_vals(:,1))=Model_par_varied.params(EstimatedParameters.param_vals(:,1))*1.01; %vary parameters
|
||||||
|
[junk, new_steady_params_2] = evaluate_steady_state(DynareResults.steady_state,Model_par_varied,DynareOptions,DynareResults,DynareOptions.diffuse_filter==0);
|
||||||
|
|
||||||
changed_par_indices=find((old_steady_params(EstimatedParameters.param_vals(:,1))-new_steady_params(EstimatedParameters.param_vals(:,1))) ...
|
changed_par_indices=find((old_steady_params(EstimatedParameters.param_vals(:,1))-new_steady_params(EstimatedParameters.param_vals(:,1))) ...
|
||||||
| (Model_par_varied.params(EstimatedParameters.param_vals(:,1))-new_steady_params_2(EstimatedParameters.param_vals(:,1))));
|
| (Model_par_varied.params(EstimatedParameters.param_vals(:,1))-new_steady_params_2(EstimatedParameters.param_vals(:,1))));
|
||||||
|
|
||||||
if ~isempty(changed_par_indices)
|
if ~isempty(changed_par_indices)
|
||||||
fprintf('\nThe steady state file internally changed the values of the following estimated parameters:\n')
|
fprintf('\nThe steady state file internally changed the values of the following estimated parameters:\n')
|
||||||
disp(Model.param_names(changed_par_indices,:));
|
disp(Model.param_names(changed_par_indices,:));
|
||||||
fprintf('This will override the parameter values drawn from the proposal density and may lead to wrong results.\n')
|
fprintf('This will override the parameter values drawn from the proposal density and may lead to wrong results.\n')
|
||||||
fprintf('Check whether this is really intended.\n')
|
fprintf('Check whether this is really intended.\n')
|
||||||
warning('The steady state file internally changes the values of the estimated parameters.')
|
warning('The steady state file internally changes the values of the estimated parameters.')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if any(BayesInfo.pshape) % if Bayesian estimation
|
if any(BayesInfo.pshape) % if Bayesian estimation
|
||||||
|
|
Loading…
Reference in New Issue