The RANDNORMAL function is part of the IMLMLIB library. The RANDNORMAL function returns an matrix that contains random draws from the multivariate normal distribution with mean vector Mean and covariance matrix Cov.
The inputs are as follows:
is the number of desired observations sampled from the multivariate normal distribution.
is a vector of means.
is a symmetric positive definite variance-covariance matrix.
If follows a multivariate normal distribution with mean vector and variance-covariance matrix , then
the probability density function for is
if , the probability density function reduces to a univariate normal distribution.
the expected value of is .
the covariance of and is .
The following example generates 1,000 samples from a two-dimensional multivariate normal distribution with mean vector and a given covariance matrix. Each row of the returned matrix x
is a row vector sampled from the multivariate normal distribution. The example computes the sample mean and covariance and
compares them with the expected values.
call randseed(1); N = 1000; Mean = {1 2}; Cov = {2.4 3, 3 8.1}; x = RandNormal( N, Mean, Cov ); SampleMean = x[:,]; y = x - SampleMean; SampleCov = y`*y / (N-1); print SampleMean Mean, SampleCov Cov;
Figure 24.302: Estimated Mean and Covariance Matrix
SampleMean | Mean | ||
---|---|---|---|
1.0619604 | 2.1156084 | 1 | 2 |
SampleCov | Cov | ||
---|---|---|---|
2.5513518 | 3.2729559 | 2.4 | 3 |
3.2729559 | 8.7099585 | 3 | 8.1 |
For further details about sampling from the multivariate normal distribution, see Gentle (2003).