Produces one or more samples from the specified multivariate normal distribution.

mvrnorm(n = 1, mu, Sigma, tol = 1e-6, empirical = FALSE, EISPACK = FALSE)

Arguments

n

the number of samples required.

mu

a vector giving the means of the variables.

Sigma

a positive-definite symmetric matrix specifying the covariance matrix of the variables.

tol

tolerance (relative to largest variance) for numerical lack of positive-definiteness in Sigma.

empirical

logical. If true, mu and Sigma specify the empirical not population mean and covariance matrix.

EISPACK

logical: values other than FALSE are an error.

Value

If n = 1 a vector of the same length as mu, otherwise an n by length(mu) matrix with one sample in each row.

Side Effects

Causes creation of the dataset .Random.seed if it does not already exist, otherwise its value is updated.

Details

The matrix decomposition is done via eigen; although a Choleski decomposition might be faster, the eigendecomposition is stabler.

References

B. D. Ripley (1987) Stochastic Simulation. Wiley. Page 98.

See also

Examples

Sigma <- matrix(c(10,3,3,2),2,2) Sigma
#> [,1] [,2] #> [1,] 10 3 #> [2,] 3 2
var(mvrnorm(n = 1000, rep(0, 2), Sigma))
#> [,1] [,2] #> [1,] 9.984634 3.046335 #> [2,] 3.046335 2.012398
var(mvrnorm(n = 1000, rep(0, 2), Sigma, empirical = TRUE))
#> [,1] [,2] #> [1,] 10 3 #> [2,] 3 2