8.4 Random Multivariate Normal Distribution Deviate
Rmvn
## function (n, Mu, Cov)
## {
## cCov = chol(Cov)
## nDim = dim(Cov)[1]
## x = matrix(Rnorm(n * nDim), nrow = n, ncol = nDim)
## mMu = matrix(rep(Mu, n), nrow = n, ncol = nDim, byrow = TRUE)
## return(x %*% cCov + mMu)
## }
## <bytecode: 0x000001e2ab8a8260>
## <environment: namespace:math>
Test script
= matrix(c(2,1,1,2), ncol=2)
Cov Cov
## [,1] [,2]
## [1,] 2 1
## [2,] 1 2
= c(1,2)
Mu = Rmvn(10000, Mu, Cov)
y summary(y)
## V1 V2
## Min. :-4.130 Min. :-4.56
## 1st Qu.: 0.035 1st Qu.: 1.06
## Median : 0.977 Median : 2.01
## Mean : 0.993 Mean : 2.00
## 3rd Qu.: 1.936 3rd Qu.: 2.92
## Max. : 6.182 Max. : 7.56
var(y)
## [,1] [,2]
## [1,] 2.0019 0.9955
## [2,] 0.9955 1.9526
cor(y)
## [,1] [,2]
## [1,] 1.0000 0.5035
## [2,] 0.5035 1.0000
- Explore mvrnorm {MASS}, rmvnorm {splus2R}