R: Simulate from a Multivariate Normal Distribution

mvrnorm {MASS} | R Documentation

## Simulate from a Multivariate Normal Distribution

### Description

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

### Usage

    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. Set to true to reproduce results from MASS versions prior to 3.1-21.

### Details

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

### 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.

### References

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

### See Also

`rnorm`

### Examples

    Sigma <- matrix(c(10,3,3,2),2,2)
    Sigma
    var(mvrnorm(n=1000, rep(0, 2), Sigma))
    var(mvrnorm(n=1000, rep(0, 2), Sigma, empirical = TRUE))

[Package MASS version 7.3-35 Index]