"Initial parameter values are outside parameter bounds"

Hi everyone,

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:

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

it works for dynare 4.1.1 also. thank you