Just a small suggestion for improving the error message "Initial parameter values are outside parameter bounds".
Currently, Dynare 4.0.4 prints numbers corresponding to the parameters that are being initialised outside their prior bounds. I've found it a bit more useful to delete lines 108 and 109 of dynare\4.0.4\matlab\dynare_estimation_1.m, and replace them with these lines:
- Code: Select all
too_low = find(xparam1 < bounds(:,1));
too_high = find(xparam1 > bounds(:,2));
ipp = estim_params_.nvx+estim_params_.nvn+estim_params_.ncx+estim_params_.ncn+1;
for j = 1:length(too_low)
ip = too_low(j);
if(ip >= ipp)
fprintf('%s is %f, but should be above %f\n', bayestopt_.name{ip}, xparam1(ip), bounds(ip,1));
else
fprintf('%s is %f, but should be above %f\n', deblank(M_.exo_names(estim_params_.var_exo(ip,1),:)),...
xparam1(ip), bounds(ip,1));
end
end
for j = 1:length(too_high)
ip = too_high(j);
if(ip >= ipp)
fprintf('%s is %f, but should be below %f\n', bayestopt_.name{ip}, xparam1(ip), bounds(ip,2));
else
fprintf('%s is %f, but should be below %f\n', deblank(M_.exo_names(estim_params_.var_exo(ip,1),:)),...
xparam1(ip), bounds(ip,2));
end
end
fprintf('\n\n');
Hope that's helpful....
Jamie