Wrong computation of lower bounds for priors?


In relation to my previous message to this forum, I’ve tried to trace the source of the problems.

I’ve noticed that Dynare computes bounds for priors, even if the user did not want to have bounds (besided the natural bounds imposed by the distributions)

In prior_bounds.m these bounds are computed and in dynare_estimation.m they are set as lower (lb) and upper (ub) bounds (about line 107).

For example the value set to the lower bound is (first numer is just the entry line, second is the lower bound)

Notice though that my priors are (the first figure is added only here for convenience!)

The fact that some prameters’ initial values are below lb causes the crash of Dynare (in DsgeLikelihood.m)

  if options_.mode_compute ~= 1 & any(xparam1 < bayestopt_.lb)
    k = find(xparam1 < bayestopt_.lb);
    fval = bayestopt_.penalty+sum((bayestopt_.lb(k)-xparam1(k)).^2);
    cost_flag = 0;
    info = 41;

To me all this is a bit obscure. It would be nice to have a warning saying that Dynare is taking over the choice of bounds indicating (in the piece of code above) which option should be changed to avoid this problem. (Notice for example that the interest rate inertia parameter lambda_R has a lower bound of 0.3934!!!)