在R中绘制双变量高斯

时间:2013-02-22 04:34:41

标签: r gaussian

我有两个类,C1和C2,两个都是由双变量高斯描述的,在(0,0)和(1,3)处的均值和协方差I和2I。 C1和C2的引子分别为0.4和0.6。

为了以后计算某些分类边界的目的,我必须在R中的散点图上绘制10点C1和15点C2,所以这不是问题的关键部分,我只需要知道如何这样做我就可以开始了。

我已经尝试在网上查找文档,但似乎没有帮助。

3 个答案:

答案 0 :(得分:3)

试试这个

library('MASS')
sz_1<-10;
sz_2<-15;    df<-rbind(data.frame(mvrnorm(n=sz_1,mu=c(0,0),Sigma=diag(2))),data.frame(mvrnorm(n=sz_2,mu=c(1,3),Sigma=2*diag(2))));
plot(df,xlab="x-value",ylab="y-value",col="purple",main="scatter-plot of mixed gaussians");

答案 1 :(得分:1)

require(mvtnorm)
l=3
sigma <- matrix(c(l,2,2,2*l), ncol=2)
C2 <- rmvnorm(n=15, mean=c(1,3), sigma=sigma)
C1 <- rmvnorm(n=10, mean=c(0,0), sigma=sigma)

 plot(C1, xlim=range( c(C1[,1],C2[,1]) ) , ylim=range( c(C1[,2],C2[,2]) ) , col="red")
 points(C2,  col="blue")

enter image description here

答案 2 :(得分:0)

你在那里发现的dmnorm函数会生成你所追求的2d高斯函数,但仍然存在两个独立类的问题。为此使用您的先辈0.4和0.6。您可以使用Bernoulli或runif()&lt; p来选择顺序生成的每个点的类。  应该这样做。