Weird (?) behaviour of prior bounds

Hi All

I’m trying to understand how exactly prior bounds are implemented (I’m on dynare 4.4.3 / Win 7 btw,), ultimately with an eye to correctly computing the corresponding prior modes.

In the manual (p.50) LOWER_BOUND and UPPER_BOUND are mentioned in the context of maximum likelihood estimation only. But the plot of priors generated by my Mickey Mouse Bayesian file (attached below):

suggests that they are also taken into account when running Bayesian estimation. So my working assumption is that prior bounds matter for Bayesian as well.

Which brings me to the weird behaviour mentioned in the topic subject. The attached mod file has the following line:

stderr ex,1,0.1,7,INV_GAMMA_PDF,0.05,2;

According to the manual, the things after the PRIOR_SHAPE are the PRIOR_MEAN and PRIOR_STANDARD_ERROR. So basically, with the command above, I’m setting up an inverse gamma distribution with a mean of 0.05 and std error of 2. At the same time I’m truncating the support to [0.1,7] (again, according to the manual, the first parameter is the initial value, while the second and third i.e. 0.1 and 7 are the lower and upper bounds respectively). Which should imply that the mean exceeds 0.1 (i.e. the lower bound of support), right?

So I would have thought this command should crash telling me I’m being stupid (the mean can’t both equal 0.05 and be >0.1). And yet it doesn’t, which I find suspicious (are bounds not taken into account after all?)…

As I mentioned, ultimately what I’m after is the prior mode when the upper and lower bounds are specified. My working assumption would be that the prior density function gets shifted upwards to ensure that things integrate to one following the truncation. If that’s not the case, I’d be grateful if someone would clarify what exactly happens.

And either way, I was wondering if there’s a quick way of figuring the prior mode out? I’ve had a quick look at the compute_prior_mod.m file in the distributions directory, but unless I’m mistaken that doesn’t take bounds into account… If I’m right about the truncation, I could just compute the prior at the unconstrained mode, and the prior values at the upper and lower bound and take the argmax. But that may not work if something else is done to the truncated density. Or there may be a simpler way…

Any thoughts / suggestions will begratefully received.

Test.mod + (2.54 KB)

I will correct and clarify the manual. It should be

Specifies a lower bound for the parameter value in maximum likelihood estimation
and the lower bound for truncation of the prior distribution in Bayesian estimation.
In case of Bayesian estimation, the untruncated prior distribution is simply
truncated to the specified bounds without redistributing the truncated mass. As a
consequence, the specified [prior mean], page 51 and [prior standard error], page 51
still refer to the underlying untruncated distribution. Moreover, the truncated prior
does not integrate to 1. Currently, Dynare does not consider this truncation in
[model comparison], page 70. If unset, defaults to minus infinity (ML) or the natural
lower bound of the prior (Bayesian estimation).

Hi Johannes

Thanks a lot for your reply - very helpful, as per usual.

Best wishes