【发布时间】:2017-09-14 20:27:13
【问题描述】:
我有一个关于 Matlab 命令gmdistribution 的问题,以从高斯混合中生成绘图。
考虑使用以下代码从两个二元法线的混合中提取
clear
rng default
P=10^4; %number draws
%First component (X1,X2)
v=1;
mu_a = [0,2];
sigma_a = [v,0;0,v];
%Second component (Y1,Y2)
mu_b = [0,4];
sigma_b = [v,0;0,v];
MU = [mu_a;mu_b];
SIGMA = cat(3,sigma_a,sigma_b);
w = ones(1,2)/2; %equal weight 0.5
obj = gmdistribution(MU,SIGMA,w);
%Draws of the mixture (R1,R2)
R = random(obj,P);%nx2
我们知道(R1, R2) 可能是相关的。事实上,我们可以证明这一点
cov(R1, R2)=1/4*cov(X1,Y2)+1/4*cov(X2, Y1)
因为
cov(W1,W2)=E(W1*W2)-E(W1)E(W2)
=1/4E(X1*X2)+1/4E(X1*Y2)+1/4E(Y1* X2)+1/4E(Y1* Y2)
- [1/2E(X1)+1/2E(Y1)][1/2E(X2)+1/2E(Y2)]
=1/4 cov(X1, Y2)+1/4cov(Y1, X2)
但是,如果我检查它们的相关性
corr(R(:,1), R(:,2))
我得到的几乎为零(0.0024)
我检查了MU, SIGMA 的许多其他值,但我找不到任何与0 有明显关联的情况。这只是一个案例,还是命令gmdistribution 强加(X1,X2) 独立于(Y1,Y2)?
【问题讨论】:
-
我已经添加了我的证明。我在哪里写
X和Y在我的代码中是独立的? -
不,在
sigma_a你有X1,X2之间的关联。在sigma_b你有Y1,Y2之间的相关性 -
erm,不,每个协变量矩阵都给出了 x 和 y 之间的相关性。然后您还会看到主要问题:两个分布在 x 轴上具有相同的均值,因此无法找到趋势。使用以下设置运行它:
mu_a = [0,0]; sigma_a = [v,0;0,v]; mu_b = [10,5]; sigma_b = [v,0;0,v];然后下图显示一个 blob 的平均值在 0,0,另一个在 10,5:[values, centers] = hist3(R,[51 51]); imagesc(centers{:}, values.')这也将导致高 (~0.9) 相关值。 -
谢谢,那我想我完全误解了
gmdistribution上的说明。考虑数学给出的示例mu = [1 2;-3 -5]; sigma = cat(3,[2 0;0 .5],[1 0;0 1]); p = ones(1,2)/2; obj = gmdistribution(mu,sigma,p); -
你能告诉我,第一个分量二元高斯的均值和方差是什么,第二个分量二元高斯的均值和方差是什么?
标签: matlab