如何从多元正态分布中模拟 R 中的 200 个矩阵 (20*100)?

How can I simulate 200 matrices (20*100) in R from a multivariate normal distribution?

我正在使用以下代码模拟 100 个预测变量(特征)的 20 个观察值。我要运行模拟200次。不知何故,添加第二个 'for' 循环来创建矩阵列表感觉不对。 您对如何有效地模拟多元正态分布的多个矩阵有什么建议吗?

x <- matrix(rep(NA, 20*100), 20, 100)
for (i in 1:20) {
    x[i, ] <- mvrnorm(n = 1, mu = rep(0, 100), Sigma = diag(100)) 
}

谢谢!

如果你真的不需要关联,只需使用

x = array( rnorm(200*20*100), dim=c(200,20,100) )

您的代码可以缩写为

library(mvtnorm)
x <- rmvnorm( n=20, mean=rep(0,100), sigma=diag(100) )

现在为了拥有 200 个这样的矩阵,我建议使用外部 'for' 循环:

x <- array( dim=c(200,20,100) )
for (i in 1:200) {
  x[i,,] <- rmvnorm( n=20, mean=rep(0,100), sigma=diag(100) )
}
lapply(1:200,function(x) rmvnorm( n=20, mean=rep(0,100), sigma=diag(100) ))

将为您提供此类矩阵的列表。