用不同的协方差矩阵模拟多元法线

时间:2013-12-01 17:12:40

标签: r statistics

我正在尝试模拟具有不同协方差矩阵的多元法线的绘制(在Gibbs采样之后)。我在循环中使用了rmvnorm(在库mvtnorm中),但这非常慢。我也尝试使用array并将其传递给rmvnorm,但也没有成功。我已使用apply,并在列表中尝试了sapply,但速度并不快。

有快速的方法吗? 谢谢!

编辑:我的代码看起来像这样(有更多尺寸和模拟)。我正在使用mvtnorm::rmvnorm

library(mvtnorm)
covs = array(dim=c(5,5,2))
covs[,,1] = diag(5)
covs[,,2] = 5*diag(5)
sample = matrix(nrow=2, ncol=5)
for (i in 1:2) {
    sample[i,] = rmvnorm(1, sigma=covs[,,i])
}
apply(covs, 3, function(x) rmvnorm(1, sigma=x)) # tried apply
l1 = list() # also tried with a list
l1[[1]] = diag(5)
l1[[2]] = 5*diag(5)
sapply(l1, function(x) rmvnorm(1, sigma=x))

0 个答案:

没有答案