皮尔逊相关系数

Pearson correlation coefficent

我的这个问题与 Matlab 没有紧密关系,但与之相关: 我正在寻找如何以一些重要的方式填充矩阵 [[a,b,c],[d,e,f]],以便 尽可能多的地方

corrcoef([a,b,c],[d,e,f])

为零。在大多数情况下,我的尝试都会产生 NaN 结果。

鉴于当前的评论,您正在尝试了解来自两个分布的两个随机抽取系列如何具有零相关性。具体来说,您提到的练习 4.6.9 来自两个正态分布。

您的方法的一个问题是您希望在理论 属性 和实验之间得出 link,在本例中使用 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)));

如果您查看 wikipedia 中 Pearson 相关性的定义,您会发现它可以为零的唯一方法是分子为零,即 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 转换生成对偶变量。

随机化愉快!