为什么这两个列表的相关系数等于1?
Why is the correlation coefficient of these two list equal to 1?
我有两个列表 a
和 b
如下:
a = [4,4,4,1.1]
b = [4,4,4,1.2]
很明显,两个列表中的最后一个值不同,但为什么我在下面的代码中得到的相关系数(来自 numpy)等于 1
:
print(corrcoef(a,b))
输出:
[[1. 1.]
[1. 1.]]
你假设只是因为最后一个值不同,相关系数不应该是 1。但是,这个假设可能是有缺陷的。
要认识到的重要一点是,只有在调整每个 list/feature 的比例后才会计算相关性。考虑到这一点,您只有两对独特的数据点。仅给出两个数据点的相关性几乎*总是以 1 或 -1 的方式构建。这是因为实际值并不重要,因为它们在之前进行了相应的缩放。
例如:
import numpy as np
a = [60, 30]
b = [1050, 490]
print(np.corrcoef(a,b)) #still gives 1.
将此与您基本上通过的内容进行比较:
import numpy as np
a = [4, 1.1]
b = [4, 1.2]
print(np.corrcoef(a,b)) #still gives 1.
两个数据点没有包含足够的信息来表明相关性可以是不等于 1 或 -1 的特定值。
要了解为什么 1 的相关性在这里有意义,请考虑我可以添加的第三点。
a = [6.9, 4, 1.1] #gaps of 2.9
b = [6.8, 4, 1.2] #gaps of 2.8
print(np.corrcoef(a,b)) #still gives 1.
也许这使得相关性可以为 1 的原因稍微清楚一些,因为两个列表中的数据点仍然一起移动 完美。
为了得到3个点的不同相关值,我们可以比较一下。
a = [7, 4, 1.1]
b = [7, 4, 1.2]
print(np.corrcoef(a,b)) #gives 0.99994879
现在我们有足够的数据点来表明相关性不完全为 1。
*关于几乎,例外情况是一个功能根本没有改变的情况。例如 a = [0, 0]
和 b = [0, 1]
我有两个列表 a
和 b
如下:
a = [4,4,4,1.1]
b = [4,4,4,1.2]
很明显,两个列表中的最后一个值不同,但为什么我在下面的代码中得到的相关系数(来自 numpy)等于 1
:
print(corrcoef(a,b))
输出:
[[1. 1.]
[1. 1.]]
你假设只是因为最后一个值不同,相关系数不应该是 1。但是,这个假设可能是有缺陷的。
要认识到的重要一点是,只有在调整每个 list/feature 的比例后才会计算相关性。考虑到这一点,您只有两对独特的数据点。仅给出两个数据点的相关性几乎*总是以 1 或 -1 的方式构建。这是因为实际值并不重要,因为它们在之前进行了相应的缩放。
例如:
import numpy as np
a = [60, 30]
b = [1050, 490]
print(np.corrcoef(a,b)) #still gives 1.
将此与您基本上通过的内容进行比较:
import numpy as np
a = [4, 1.1]
b = [4, 1.2]
print(np.corrcoef(a,b)) #still gives 1.
两个数据点没有包含足够的信息来表明相关性可以是不等于 1 或 -1 的特定值。
要了解为什么 1 的相关性在这里有意义,请考虑我可以添加的第三点。
a = [6.9, 4, 1.1] #gaps of 2.9
b = [6.8, 4, 1.2] #gaps of 2.8
print(np.corrcoef(a,b)) #still gives 1.
也许这使得相关性可以为 1 的原因稍微清楚一些,因为两个列表中的数据点仍然一起移动 完美。
为了得到3个点的不同相关值,我们可以比较一下。
a = [7, 4, 1.1]
b = [7, 4, 1.2]
print(np.corrcoef(a,b)) #gives 0.99994879
现在我们有足够的数据点来表明相关性不完全为 1。
*关于几乎,例外情况是一个功能根本没有改变的情况。例如 a = [0, 0]
和 b = [0, 1]