c r ( _乙1, Y) > c o r (乙2, Y) > 0cor(B1,Y)>cor(B2,Y)>0但是。这可能吗?c o r ( A +乙1, A + Y) < c o r ( A +乙2, A + Y)cor(A+B1,A+Y)<cor(A+B2,A+Y)

机器算法验证 相关性 随机变量
2022-04-04 07:21:55

当我处理数据时,我遇到了这个奇怪的现象。假设我只有正值的时间序列,是 X,Y 的相关性A,B1,B2,Y. cor(X,Y)X,Y.

在这里,我有我将添加到但后来我观察到cor(B1,Y)>cor(B2,Y)>0B1,B2,YAcor(A+B1,A+Y)<cor(A+B2,A+Y)

这可能吗?还是我需要挖掘的数据中有一些问题?

1个回答

因为相关性不会告诉您变量的大小,您可以通过适当调整大小来反转它们的相对顺序。

例如,这里是一些散点图矩阵(Y,B1,B2)数据:

图 0

清楚地Y相关性更高B1比与B2.

为了帮助我们了解幅度的变化,以下是在所有轴上使用通用比例显示的相同数据:

图1

之间的相关系数YBi0.88>0.67.

选择A=Y,这是一个新变量的散点图矩阵,也是常见的尺度:

图 2

这里有一些细节:

图 3

之间的相关系数A+YA+Bi0.944<0.996:现在后者大于前者,颠倒了原来的关系。


如果您想试验类似的数据集,这里是R用于生成这些数据集的代码,以及相关性的计算。知道runif在其第二个和第三个参数指定的值范围内生成指定数量的 iid 统一变量;所有算术运算都是向量运算(向量加法和标量乘法)。

n <- 1e2

Y <- runif(n, 1, 2)
B.1 <- 2 * Y + runif(n, -1/2, 1/2)
B.2 <- (Y + runif(n, -1/2, 1/2)) / 10
A <- Y

cor(cbind(Y, B.1, B.2))
cor(cbind(A+Y, A+B.1, A+B.2))