皮尔森(pearson)相关系数
在3358 www.Sina.com/http://www.Sina.com /数据中称为变量。 调查两件事情的关联度。 有了x、y这两个变量,最终计算的相关系数的意义可以理解为:
(1)、相关系数为0时,x和y两个变量无关。
) 2、x值变大(变小),y值变大(变小) ),两个变量呈正相关关系,相关系数介于0.00和1.00之间。
) 3、x值变大(变小),y值变小(变大) ),两个变量呈负相关关系,相关系数介于-1.00和0.00之间。
相关系数绝对值越大相关越强,相关系数越接近1或-1相关越强,相关系数越接近0相关越弱。
通常,变量的相关强度在以下值的范围内判断。
相关系数0.8-1.0有非常强的相关
0.6-0.8强相关
0.4-0.6中度相关
0.2-0.4弱相关
0.0-0.2极弱相关或不相关
http://www.Sina.com/http://www.Sina.com /
首先把公式放上去:
3358 www.Sina.com/http://www.Sina.com /两个连续变量(x,y )的皮尔逊相关系数(Px,y )是它们之间的协方差cov (x,y )除以各自的标准偏差的乘积) 系数取值始终在-1.0到1.0之间,接近0的变量不相关,接近1或-1的变量被称为具有强相关。
3 .根据上式,python3的实现代码: defPearson(vector1、vector2) :
n=len(vector1)
#简单三星
sum1=sum (浮动(向量1 [ I ] ) for i in range(n ) n ) )
sum2=sum (浮动(向量2 [ I ] ) for i in range(n ) n ) )
#sum up the squares
sum1_pow=sum([pow(v,2.0 ) for v in vector1]
sum2_pow=sum([pow(v,2.0 ) for v in vector2]
#sum up the products
p _ sum=sum ([向量1 [ I ] *向量2 [ I ] foriinrange ()
#分子num、分母den
num=p_sum-(sum1*sum2/n )。
den=math.sqrt(sum1_pow-pow ) sum 1,2 )/n ) sum2_pow-pow ) sum 2,2 )/n )
if den==0:
返回0.0
返回编号/den
现在,让我们用两个向量进行测试。
vector1=[ 2,7,18,88,157,90,177,570 ]
vector2=[ 3,5,15,90,180,88,160,580 ]
运行结果为0.998,可见这两组数高度正相关。