我的这个问题与Matlab没有紧密的联系,但与它相关:我正在研究如何以几种非平凡的方式填充矩阵[[a,b,c],[d,e,f]]
,以便在中尽可能多的地方
corrcoef([a,b,c],[d,e,f])
为零。在大多数情况下,我的尝试都会产生NaN结果。
根据当前的注释,您正试图了解来自两个分布的两个随机抽取序列如何具有零相关性。具体来说,你提到的练习4.6.9提到了两个正态分布。
你的方法的一个问题是,你希望在理论性质和实验之间建立联系,在这种情况下使用Matlab。而且,正如你似乎已经注意到的那样,除非你在观察特定的退化案例,否则你的实验将失败。这是因为,尽管练习中的真实相关性参数rho可能为零,但随机抽取的样本总是具有一定程度的相关性。这里有一个例子,你会注意到,如果你运行它,实际的相关性跨越了-1和1之间的整个频谱,尽管它们的平均值为零(因为这两个生成器都是伪不相关的(:
n=1e4;
experiment = nan(n,1);
for i=1:n
r = corrcoef(rand(4,1),rand(4,1));
experiment(i)=r(2);
end
hist(experiment);
title(sprintf('Average correlation: %.4f%%',mean(experiment)));
如果你看看维基百科中皮尔逊相关性的定义,你会发现,只有当分子为零时,这才是零,即e[(X-Xbar((Y-Ybar(]=0。尽管这种情况可能是渐进的,但你很难找到一个非退化的情况,在这种情况下,这种情况会发生在一个小样本中。尽管如此,为了向您展示您可以推导出一些这样的退化情况,让我们进一步挖掘一下。如果你想让这个乘积的期望值为零,当另一个为零时,你可以让左边或右边的部分为零。要使一侧为零,平局必须恰好等于平局的平均值。因此,我们可以想象使用这种技术创建这样一对变量:
- 我们创建了两个由4个变量组成的向量,并交替绘制将等于平均值的图形
- 假设我们希望X平均为1,Y平均为2,我们使偶数索引绘制等于X的平均值,奇数索引绘制等于Y的平均值
- 一个这样的生成是:X=[0,1,2,1],Y=[2,0,2,4],您可以检查
corrcoef([0,1,2,1],[2,0,2,4])
是否确实生成了一个单位矩阵。这是因为,每当X的分量不同于其平均值1时,Y中的分量等于其平均值2 - 另一个例子,其中X的平均值是3,Y的平均值为4,是:X=[3,-5,3,11],Y=[1008,4,-1000,4]。等等
如果你想知道如何从不相关的分布中创建样本,那将是一个完全不同的问题,尽管(也许(在理解统计学方面更有趣。如果你是这样的话,并且你提到的练习讨论了正态分布,我建议你考虑使用Box-Muller变换生成对偶变量。
随机快乐!