trandn: Fast truncated normal generator

View source: R/trandn.R

trandnR 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

norminvp

Examples

trandn(l = 1,u = Inf)
trandn(l = rep(1, 10), u = rep(Inf, 10))

lbelzile/TruncatedNormal documentation built on March 4, 2024, 5:50 p.m.