使用不同参数(从矩阵)有效地模拟β分布?

时间:2014-03-20 12:25:46

标签: r performance simulation

我有一个矩阵A,其中包含我的beta分布的alpha参数,A^2包含beta参数。我想得到一个矩阵C,其中包含来自beta分布的模拟,其中C [i,j]是Beta(A[i,j], A[i,j]^2)等的模拟。

我已经尝试了rbeta(1,A,A^2),但这仅为第一个元素提供了模拟。

所以我创建了函数

Beta<-function(x){
rbeta(1, x, x^2)  
}

然后使用apply函数,就像这样

C<-apply(A,c(1,2), Beta)

哪个有效。唯一的问题是A是100 x 100000,我的计算机很难计算C。有谁知道更快的方式来执行这样的任务?

1 个答案:

答案 0 :(得分:0)

您可以使用一个命令创建整个矩阵。您在此处不需要apply

C <- matrix(rbeta(length(A), A, A^2), dim(A))

虽然我没有测试它,但速度要快得多。

相关问题