如何创建具有高斯分布的随机(x,y)点?

时间:2013-02-12 13:32:01

标签: r random

我需要在R中创建一组100个随机(x,y)点,它们是高斯​​的。我该怎么做?

1 个答案:

答案 0 :(得分:5)

查看MASS包中的mvrnorm函数

library(MASS)
Sigma <- matrix(c(10,3,3,2),2,2)  # Covariance Matrix
set.seed(1)  # For the example to be reproducible
Random_XY <- mvrnorm(n=100, c(0, 0), Sigma) # Random (x,y) from a Gaussian distr.
head(Random_XY) 

           [,1]       [,2]
[1,]  2.3299984 -0.4196921
[2,] -0.2261965 -1.2474779
[3,]  2.3538800  1.7025069
[4,] -4.9527947 -1.8730622
[5,] -1.0148272 -0.4114252
[6,]  2.0557678  2.4378417

修改

由于高斯过程的均值为0且方差为1且为零,因此正确答案应为:

mvrnorm(n=100, c(0, 0), diag(c(1,1)))

均值向量为c(0,0)且单位协方差矩阵diag(c(1,1))

正如@Ben Bolker所指出的,最快的方法(使用R Base功能)是:

data.frame(x=rnorm(100),y=rnorm(100))