trandn {TruncatedNormal} | R Documentation |
Fast truncated normal generator
Description
Efficient state-of-the-art generator of a vector of length(l)=length(u)
from the standard multivariate normal distribution truncated over the region [l,u]
.
Infinite values for u
and l
are accepted.
Usage
trandn(l, u)
Arguments
l |
lower truncation limit |
u |
upper truncation limit |
Details
Suppose we wish to simulate a random variable Z
drawn from N(\mu,\sigma^2)
and
conditional on l<Z<u
using the inverse transform method.
To achieve this, first compute
X=norminvp(runif(1),(l-mu)/sig,(u-mu)/sig)
and then set
Z=mu+sig*X
Value
random variable drawn from the truncated normal distribution
Note
Use norminvp
for the (slower) inverse transform method of simulating truncated normal variables.
Author(s)
Zdravko I. Botev
References
Z. I. Botev (2017), The Normal Law Under Linear Restrictions: Simulation and Estimation via Minimax Tilting, Journal of the Royal Statistical Society, Series B, 79 (1), pp. 1–24.
See Also
Examples
trandn(l = 1,u = Inf)
trandn(l = rep(1, 10), u = rep(Inf, 10))