相关系数

下面我们会讲解两种最为常用的相关系数:皮尔逊person相关系数和斯皮尔曼spearman等级相关系数。它们可以用来衡量两个变量之间的相关性的大小,根据数据满足的不同条件,我们要选择不同的相关系数进行计算和分析(建模论文中最容易用错的方法)。

总体皮尔逊相关系数

回顾《概率论与数理统计》中的相关系数就是皮尔逊相关系数。
如果两组数据python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_算法python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_数学建模_02是总体数据,那么:
python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_python求斯皮尔曼相关矩阵_03
python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_算法_04
直观理解协方差:如果X、Y变化方向相同,即当X大于(小于)均值时,Y也大于(小于)其均值,在这两种情况下,乘积为正。如果X、Y变化方向一直保持相同,则协方差方向为正;同理,如果X、Y变化方向一直相反,则协方差为负;如果X、Y变化方向之间互无规律 ,即分子中的项有正有负,那么累加后正负抵消。
注意协方差的大小和两个变量的量纲有关,因此不适合做比较。
python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_算法_05
python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_概率论_06
皮尔逊相关系数可以看成是剔除了两个变量量纲的影响,即将X和Y标准化后的协方差。
可以证明得到:
python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_概率论_07

样本皮尔逊相关系数

如果两组数据python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_算法python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_数学建模_02是样本数据(一般调查得到的数据均为样本数据),那么:

python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_线性代数_10

python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_概率论_11

python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_线性代数_12

python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_python求斯皮尔曼相关矩阵_13

下面这张图是相关性的值不同时,散点呈现的图像。

python求斯皮尔曼相关矩阵 斯皮尔曼相关系数表_概率论_14

关于皮尔逊相关系数的理解误区

这里的相关系数只是用来衡量两个变量线性相关程度的指标,也就是说,必须先确定这两个变量是线性相关的,然后这个相关系数才能反应这两个变量的相关程度如何。

所以我们得到相关系数的误区:
① 非线性相关也会导致线性相关系数很大
② 离群点对相关系数的影响很大
③ 如果两个变量的相关系数很大也不能说明两者相关,可能是收到了异常值的影响
④ 相关系数计算结果为0,只能说不是线性相关,但说不定会有更复杂的相关关系(非线性相关)

针对这些情况,我们做两点总结:
① 如果两个变量本身就是线性关系,那么皮尔逊相关系数绝对值大的就是相关性强,小的就是相关性弱。
② 在不确定两个变量是什么关系的情况下,即使算出皮尔逊相关系数,发现很大,也不能说明那两个变量线性相关,甚至不能说它们相关,我们一定要先画出散点图进行判断

相关系数大小的解释

相关性



无相关性

-0.09~0.0

0.0~0.09

弱相关性

-0.3~-0.1

0.1~0.3

中相关性

-0.5~-0.3

0.3~0.5

强相关性

-1.0~0.5

0.5~1.0

上表所定的标准从某种意义上来讲是武断的和不严格的。对相关系数的解释是依赖于具体的应用背景和目的的。事实上,比起相关系数的大小,我们往往更关注的是显著性(假设检验)。

计算相关系数

首先使用matlab或者spss来画出散点图,判断是否有线性关系。然后使用matlab中计算相关系数自带的函数来计算相关系数,函数如下:

R = corrcoef(Test)   % correlation coefficient