I am working with a truncated normal as posterior distribution in a Bayesian estimation problem. Precisely, it is a normal distribution truncated at 0 from below.
When calculating the parameters of the posterior distribution, I sometimes end up with a negative mean parameter $\mu = -8.0 $ and a variance of $\sigma^2 = 0.2$.
However, I try to sample from a truncated normal with these parameters. Is it even possible to obtain a sample within $[0,\infty)$ using these parameters? According to my understanding that would require at least $18\sigma$ to compensate the negative mean of $-8.0$.
I assume something is wrong in the calculation of the mean of the posterior distribution here, since - for me - it doesn't seem reasonable to have a negative (theoretical) mean for a distribution which is truncated at 0 from below. Am I right here or is it possible to overcome the negativity caused by the mean?
-
$\begingroup$ I'm rather trying to sample from $x \sim N(-8.0;0.2)1_{x\geq0}$. But I guess your reasoning still holds? $\endgroup$– mscnvrsyCommented Aug 1, 2016 at 12:21
-
$\begingroup$ related: stats.stackexchange.com/a/317438/5536 $\endgroup$– a06eCommented Feb 14, 2018 at 13:08
1 Answer
$\mu$ parameter from truncated normal distribution describes it's mean before the truncation. The mean of the truncated normal distribution is
$$ \operatorname{E}(X \mid a<X<b) = \mu + \sigma\frac{\phi(\frac{a-\mu}{\sigma})-\phi(\frac{b-\mu}{\sigma})}{\Phi(\frac{b-\mu}{\sigma})-\Phi(\frac{a-\mu}{\sigma})} $$
where $a$ and $b$ are lower and upper truncation points. This mean is always between $a$ and $b$.
You are right that sampling from truncated normal distribution with parameters $\mu=-8$, $\sigma=0.2$, $a=0$, $b=\infty$ using non-specialized algorithm would be very inefficient (possibly you'd have problems with numbers falling below numerical precision), however since non-truncated normal distribution ranges from $-\infty$ to $\infty$, you can pick any truncation points such that $a < b$. Hopefully we have specialized algorithms that deal with such cases as the one described by Christian Robert (mentioned in a comment below).
-
2$\begingroup$ To complement Tim's (+1) answer, there exist very efficient ways to simulate a truncated Normal. One is by cdf inversion, the most standard approach to simulation, and another one by accept-reject. I wrote a paper on this method for truncated Normals a while ago. $\endgroup$– Xi'anCommented Aug 1, 2016 at 17:44
-
$\begingroup$ @Xi'an but, from this example, it seems that for cases like this it is more efficient to used inverse CDF rather than the accept-reject algorithm. $\endgroup$– TimCommented Aug 1, 2016 at 18:50