因为corr()函数的输出结果是一个相关系数矩阵,把矩阵的详细生成过程理出来对于理解业务有一定帮助。
一、相关系数分类
皮尔森相关系数:度量线性相关性。
斯皮尔曼相关系数: 度量变量关系,不一定是线性。
肯德拉相关系数:度量非线性关系。用于排名数据。
皮尔森相关系数-corr函数的矩阵生成过程:
数据集:【两列】
data = {
'X':[1,2,3,4,5],
'Y':[5,4,3,2,1]
}
皮尔森相关系数的计算公式为:
r = Σ[(x - μx) * (y - μy)] / [√Σ(x - μx)² * Σ(y - μy)²]
【x、y为变量值,ux和uy是变量的均值】
计算均值(ux、uy):
μx = (1 + 2 + 3 + 4 + 5) / 5 = 15 / 5 = 3
μy = (5 + 4 + 3 + 2 + 1) / 5 = 15 / 5 = 3
代入公式:
r = [(1 - 3) * (5 - 3) + (2 - 3) * (4 - 3) + (3 - 3) * (3 - 3) + (4 - 3) * (2 - 3) + (5 - 3) * (1 - 3)] / [√Σ(x - μx)² * Σ(y - μy)²]
= [-4 -1 + 0 -1 -4] / [√(4