微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

皮尔逊相关系数

如何解决皮尔逊相关系数

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

corrcoef([a,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)));

如果您查看 wikipedia 中 Pearson 相关的定义,您会发现它可以为零的唯一方法是当分子为零时,即 E[(X-Xbar)(Y-Ybar) ]=0。虽然这可能是渐近的情况,但您将很难找到一个非退化的情况,在小样本中会发生这种情况。尽管如此,为了向您展示您可以推导出一些这样的退化情况,让我们进一步挖掘一下。如果您希望此乘积的期望为零,则可以在另一个非零时将左侧或右侧部分设为零。要使一侧为零,平局必须完全等于平局的平均值。因此我们可以想象使用这种技术创建这样一对变量:

  • 我们创建了两个包含 4 个变量的向量,并交替绘制将等于平均值​​。
  • 假设我们希望 X 的平均值为 1,Y 的平均值为 2,我们使偶数索引的平局等于 X 的平均值,奇数索引的平局等于 Y 的平均值。
  • 这样的一代将是:X=[0,1,2,1],Y=[2,4],您可以检查 corrcoef([0,[2,4]) 是否确实产生了单位矩阵.这是因为,每当 X 的一个分量与其平均值 1 不同时,Y 中的分量就等于其平均值 2。
  • 另一个示例,其中 X 的平均值为 3,Y 的平均值为 4:X=[3,-5,3,11],Y=[1008,4,-1000,4]。等

如果您想知道如何从不相关的分布中创建样本,那将是完全不同的问题,尽管(也许)在理解统计数据方面更有趣。如果这是您的情况,并且鉴于您提到的练习讨论了正态分布,我建议您查看使用 Box-Muller 变换生成对立变量。

快乐随机化!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。