Learn R Programming

TruncatedNormal (version 2.3)

trandn: 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)

Value

random variable drawn from the truncated normal distribution

Arguments

l

lower truncation limit

u

upper truncation limit

Author

Zdravko I. Botev

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

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

norminvp

Examples

Run this code
trandn(l = 1,u = Inf)
trandn(l = rep(1, 10), u = rep(Inf, 10))

Run the code above in your browser using DataLab