Pearson相关系数

Pearson和Spearman相关系数

      • 一、皮尔逊(Pearson)相关系数
      • 二、Python实例

一、皮尔逊(Pearson)相关系数

1、协方差能完美的解释两个变量之间相关的方向,但在解释强度上却不太行,举个例子:每个变量都是有量纲的,这里假设变量x的量纲为距离,可以是米,也可以是千米,甚至可以是光年,针对协方差的量纲问题,统一除以同样的量纲就可以搞定。正态分布标准化需要除以标准偏差,标准偏差的量纲与变量一致,这样就可以消除量纲了。让每一个变量x与变量x的均值的差,都除以x的标准偏差Sx,变量y也同理,则有以下关系式:(该关系式即为皮尔逊相关系数,简称相关系数,可以认为是协方差的标准化)

Pearson相关系数_第1张图片
上图中,r即为相关系数,Sxy为协方差。

2、皮尔逊相关系数的范围

皮尔逊相关系数不关心变量的量纲是什么,只关心变量x值距离平均值
变动了多少个标准偏差,也就是自己跟自己比,少拿量纲吓唬人。
Pearson相关系数_第2张图片

3、由1、2解读可知,Pearson相关系数的范围是在[-1,1]之间,下面给出Pearson相关系数的应用理解

假设有X,Y两个变量,那么有:

(1) 当相关系数为0时,X变量和Y变量不相关;

(2) 当X的值和Y值同增或同减,则这两个变量正相关,相关系数在0到1之间;

(3) 当X的值增大,而Y值减小,或者X值减小而Y值增大时两个变量为负相关,相关系数在-1到0之间。

注:相关系数的绝对值越大,相关性越强,相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。通常情况下通过以下取值范围判断变量的相关强度:

0.8-1.0 极强相关
0.6-0.8 强相关
0.4-0.6 中等程度相关
0.2-0.4 弱相关
0.0-0.2 极弱相关或无相关

4、Pearson系数的适用范围

当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于:

(1)、两个变量之间是线性关系,都是连续数据

(2)、两个变量的总体是正态分布,或接近正态的单峰分布。

(3)、两个变量的观测值是成对的,每对观测值之间相互独立。

5、Pearson相关系数的举例
Pearson相关系数_第3张图片
上图中,几组(x,y)的点集,以及各个点集中和之间的相关系数。我们可以发现相关系数反映的是变量之间的线性关系和相关性的方向(第一排),而不是相关性的斜率(中间),也不是各种非线性关系(第三排)。请注意:中间的图中斜率为0,但相关系数是没有意义的,因为此时变量是0。

二、Python实例

python 相关代码:scipy.stats.pearsonr

函数:pearsonr(x,y)

功能:计算特征与目标变量之间的相似度

参数说明:

1)输入:x为特征,y为目标变量.
2)输出:r: 相关系数 [-1,1]之间,p-value: p值。
注: p值越小,表示相关系数越显著,一般p值在500个样本以上时有较高的可靠性。

下面看示例:

样本数:1000

特征数:3(总共3维)

重要特征:1

# 导入相关库生成数据集
from sklearn.datasets import make_regression
X,y = make_regression(n_samples=1000, n_features=3, n_informative=1, noise=100, random_state=9527) # 分别计算每个特征与标签的相关系数 from scipy.stats import pearsonr p1 = pearsonr(X[:,0],y) p2 = pearsonr(X[:,1],y) p3 = pearsonr(X[:,2],y) print(p1) print(p2) print(p3)

你可能感兴趣的:(机器学习)