本文来介绍相关系数的含义以及Hive中如何使用计算相关系数的函数。
相关系数(Correlation coefficient)是最早由统计学家卡尔·皮尔逊设计的统计指标,是研究变量之间线性相关程度的量,一般用字母 r 表示。由于研究对象的不同,相关系数有多种定义方式,较为常用的是皮尔逊相关系数,也叫简单相关系数或线性相关系数。
用数学公式表示,皮尔森相关系数等于两个变量的协方差除于两个变量的标准差:
协方差和标准差的计算方法可以参见进阶篇(八)
相关系数定量地刻画了 X 和 Y的相关程度。r的取值在-1与+1之间,若r>0,表明两个变量是正相关,即一个变量的值越大,另一个变量的值也会越大;若r<0,表明两个变量是负相关,即一个变量的值越大另一个变量的值反而会越小。r 的绝对值越大表明相关性越强,要注意的是这里并不存在因果关系。若r=0,表明两个变量间不是线性相关,但有可能是其他方式的相关(比如曲线方式)。
一般相关系数的绝对值与相关程度对应关系如下:
当两个变量的标准差都不为零时,相关系数才有定义,皮尔逊相关系数适用于以下三种情况:
相关系数有一个明显的缺点,即它接近于1的程度与数据组数n相关,这容易给人一种假象。因为,当n较小时(<30),相关系数的波动较大,对有些样本相关系数的绝对值易接近于1,特别是当n=2时,相关系数的绝对值总为1。而当n较大时(>100),相关系数的绝对值容易偏小。
因此在样本容量n较小时,我们仅凭相关系数较大就判定变量x与y之间有密切的线性关系是不妥当的。所以在SPSS、R等统计软件中,在计算相关系数的时,会对相关系数做显著性假设检验。显著性假设检验是为了说明:得到的结果是不是偶然因素导致的(具有统计学意义);相关系数回答的问题是相关程度强弱。
假如说我得到”P<0.05,相关系数 R=0.279”,意味着二者之间确实(P<0.05)存在相关关系,而相关性为0.279,通俗的说就是有95%的把握说明二者有弱相关关系。
而如果“P>0.05,相关系数R=0.799”,则意味着二者之间相关性很强(R=0.799),而这个高相关的结果可能是偶然因素导致的,即不具有统计学意义,通俗的说就是没有大于95%的把握说明二者有弱相关关系。
需要指出的是,当样本量很小时(<10),一般都无法通过显著性检验,而且相关系数很可能偏大,且随n的变化波动很大。而当样本量很大时(>100),一般都能通过显著性检验,但相关系数很可能偏小,得到一个显著弱相关的无效结果。所以推荐计算两个变量的简单相关系数时,使用30-40个样本。
通过上面的介绍,相信大家对相关系数已经有了一定的初步认识。下面我们回到正题,来介绍Hive中计算相关系数的聚合函数。
corr(col1, col2)
col1和col2分别写入两个列名,最后会返回两个数字列的皮尔逊相关系数(DOUBLE类型)。另此函数为聚合函数,可以配合group by对多个组同时求两列的相关系数。
新建test.txt文件,输入两列数据,假设第一列为某公司各月销售额,第二列为各月成本。单位均为万元。
[root@hadoop ~]# vim test.txt
50,30
53,32
56,34
59,23
62,38
65,40
68,42
71,44
74,29
77,48
80,50
83,52
86,54
89,64
92,58
95,60
98,62
101,64
104,66
107,68
新建表temp_test3,将test文件中的数据插入,查看数据
CREATE TABLE temp_test3 (
xiaoshoue INT
,chengben INT
) row format delimited fields terminated BY ',';
load data local inpath '/root/test.txt' into table temp_test3;
hive (app)> select * from temp_test3;
OK
temp_test3.xiaoshoue temp_test3.chengben
20 10
23 12
26 14
29 16
32 18
35 20
38 22
41 24
44 26
47 28
50 30
53 32
56 34
59 23
62 38
65 40
68 42
71 44
74 29
77 48
80 50
83 52
86 54
89 64
92 58
95 60
98 62
101 64
104 66
107 68
计算该公司销售额与成本的相关系数。因为样本数为30,所以避免了相关系数的缺点,假定能通过显著性假设检验。
hive (app)> select corr(xiaoshoue,chengben) as corr from temp_test3;
corr
0.9733370471164661
所以该公司销售额与成本的相关系数为0.9733370471164661,说明二者为强正相关。
能看到这里的同学,就右上角点个赞吧,3Q~