目录
一、定义
相关关系是指变量的数值之间存在着依存关系,即一个变量的数值 会随着另一个变量或几个变量的数值变化而呈现出一定的变化规律。
很多时候,我们都需要分析数据之间的相关性,相关性分析是数据回归前提,具有相关性的数据可以进一步进行回归分析。
在 客观现实中,许多现象之间都存在着某种相互关联的关系。例如,
-
降雨 量与云层厚度之间的关系;
-
居民收入增长率与物价指数的关系;
-
人的身 高和体重的关系;
-
汽车行驶速度与行驶里程之间的关系;
-
圆的面积与圆 的半径之间的关系等。
现象与现象之间的关系如果能够使用数值来描 述,就形成了变量与变量之间的关系,但是这种依存关系不是严格的函 数关系。也就是说,当一个变量或几个变量取某一个数值时,对应变量 的数值也会变化,但是具体数值的函数变化规律是不确定的。例如,人的身高与体重之间的关系就属于相关关系,就全社会而言,对于具有同 样身高的人,体重的数值未必相同。也就是说,同样的身高数值对应的 体重数值是不确定的,但是体重数值却是随着“身高越高,体重越重”这 个一般的规律而变化,因此两者是一种相关关系;出租房的面积变量和 租金变量之间也属于相关关系,当给定一个出租房的面积时,出租房的 出租价格是波动和不确定的,但是房租会伴随着出租房面积的大小变化 而变化。
-
【注意事项】
相关分析研究的是两个变量的相关性,但你研究的两个变量必须是有关联的,如果你把历年人口总量和你历年的身高做相关性分析,分析结果会呈现显著地相关,但它没有实际的意义,因为人口总量和你的身高都是逐步增加的,从数据上来说是有一致性,但他们没有现实意义。
二、相关关系分类
如果变量之间存在相关关系,可能存在以下几种情况:1. 因果关系;2. 相互依存;3. 虚假相关关系;
相关关系从不同的角度有不同的分类方式。
-
首先是按照相关关系的强度进行分类,可以分为完全相关、弱相关 和不相关三种;
-
也能按照相关关系的方向进行分类,可 以分为正相关和负相关两种;
-
其次是按照相关关系的形态划分,可以分为线性相关关系和非线性相关关系;
-
最后还有一种相关关系的分类方式是按照变量的个数进行分类,可 以分为单相关关系、复相关关系和偏相关关系。
三、数据可视化(散点图)
散点图是描述相关关系类型的直观工具,特别适用于单相关关系分析,也就是只涉及两个变量的二元变量相关分析。
如下图所示,根据 散点在二维坐标系中的分布状态,分析者可以直观快速地初步判断两个 变量之间是否存在相关关系,以及存在何种相关关系。
判断相关关系类型是散点图的主要作用。
图:各种相关关系散点图
局限性:散点图只适用于两个变量的相关关系 判断(单相关关系),无法用于涉及多个变量的多重相关关系分析和偏相关关系分析。
四、相关分析
-
相关分析是对变量之间的相关关系进行量化处理的过程,不仅要确定相关关系的类型,还要确定相关关系的强度。
-
相关分析不是一个从无到有的过程,也就是说,实质上没有相关关系的变量不会由于相关分析 而形成相关关系,相关分析只是起到揭示变量之间原本存在的相关关系 的作用。
-
相关分析主要有以下几种类型:两变量的相关分析、偏相关分析和距离相关分析等。
4.1 量化指标
-
显著性检验概率p:反映 没有线性相关关系的可能性,若检验概率p<0.05,则表示两个数据序列之间存在线性相关关系;
-
相关系数r:反映相关关系的强度和方向;
确定简单线性相关系数及相伴概率值p是二元线性相关分析的主要 内容。
注意:相关关系 和 因果关系的区别。
4.1.1 相关系数
数据类型的不同直接导致适用的简单线性相关系数不同。
常用的 两个变量的简单线性相关系数有皮尔森(Pearson)相关系数、斯皮尔曼 (Spearman)相关系数和肯达尔(Kendall)相关系数。
-
这3种简单线性相关系数适用于不同的数据类型和总体情况。取值范围都在 [-1,1]
相关系数类型 | 数据类型 | 总体情况 | 原始数据要求 | 精确度 |
---|---|---|---|---|
皮尔森(Pearson) | 定距数据/定比数据(连续型变量) | 正态分布 | 高 | 最高 |
斯皮尔曼 (Spearman) | 定距数据/定比数据(连续型变量) | 非正态分布 | 低 | 较差 |
肯达尔(Kendall) | 定序数据 | 非正态分布 | 低 | 较差 |
4.1.1.1 皮尔森(Pearson)相关系数
-
皮尔森相关系数适用于两列服从正态分布的定距数据(连续变量)。
-
定距数据的要求是由皮尔森相关系数的原理决定的,而要求正态 分布的理由则依旧老套,只有服从正态分布的总体才是稳定总体,样本才能比较真实地反映总体的情况,分析的结果才有意义。
-
除此之外,皮尔森相关系数还要求两列数据的个数相同且具有一一对应的关系。
假设有两个连续型变量X和Y,它们的数据是一一对 应的,即一个变量改变会引起另一个变量的改变,则表示两个变量相关 性的皮尔森相关系数r的计算公式为:
可以将上式进行简化:
- 代表变量X的样本均值;
- 代表变量Y的样本均值;
代表变量X和变量Y的协方差。 ( 其中,n-1表示自由度,等于两个变量的样本配对数减去1。)
关于协方差
协方差也是常用的反映两个连续型变量的相关性指标,它刻画了两 个连续型变量的相关关系方向:如果协方差的结果为负数,说明两个连 续型变量之间可能是负相关关系;反之,如果协方差的结果为正数,那么两个变量之间可能是正相关关系。
虽然协方差能够反映两个连续型变 量的相关方向,但是它却不能直接用来度量两个连续型变量的相关程度,因为协方差的值与两个变量的测量单位密切相关,两个变量的测量 单位不同将会带来数值无法比较的问题。
因此,需要将协方差进行标准化,消除不同测量单位带来的数值无法比较的影响,这才引出了皮尔森相关系数r。
r的绝对值大小反应了两个变量的相关关系强度:
表 - 皮尔森相关系数情况分布表
4.1.1.2 斯皮尔曼(Spearman)相关系数
皮尔森相关系数的计算要求两列数据(两个变量)是服从正态分布且具有一一对应关系的定距数据或定比数据(连续型变量),而实际情 况却并不遂人意,总体分布往往未知或不服从正态分布,皮尔森相关系 数也就“英雄无用武之地”。
斯皮尔曼(Spearman)相关系数就是在这样 的情况下派上用场的。
首先,将两列数据进行排序,得到每个数据个案 的排名(秩);
然后,以原始数据对应的秩分值代替原始数据进入皮尔森相关系数的计算公式,从而得到斯皮尔曼(Spearman)相关系数的计 算公式,推导过程省略。
4.1.1.3 肯达尔(Kendall)相关系数
-
肯达尔(Kendall)相关系数与前面两种相关系数不同,它适用于两列定序数据。
-
不过,三种相关系数也有相同点,肯达尔相关系数同样要求两列数据的个案数目相同且具有一一对应关系。
肯达尔(Kendall)相关系数实质上是基于查看两个数据序列中有多少个顺序一致的对子的思路来判断两列数据的相关性水平。
肯达尔相关系数公式:
-
Na 代表一致对数目;
-
Nb 代表非一致对数目。
【举例】:
假设有两个数据序列X和Y,它们各包括5个数据个案,对数据个案 进行大小排序,可以得到两个数据序列对应的秩分序列分别是(2,4, 3,5,1)和(3,4,1,5,2),
将它们进一步拆分成 5 个秩对(2, 3)(4,4)(3,1)(5,5)(1,2)。
当按照数据序列X的大小进 行排序,上面的5个秩对将重新排序,得到5个新的秩对(1,2)(2, 3)(3,1)(4,4)(5,5),此时数据序列Y的秩分序列变成了 (2,3,1,4,5)。
在这种情况下,针对数据序列Y的第一个值2,后 面有3、4、5比它大,有1比它小,所以一致对的数量等于3,非一致对 为1;
针对数据序列Y的第2个值3,有4、5比它大,有1比它小,所以一 致对的数量为2,非一致对的数量为1;
以此类推,总共有8个一致对,2 个非一致对。将上述结果代入肯达尔相关系数公式即可计算出相关系数r。
相关系数的比较:皮尔森(Pearson)相关系 数的精确度最高,同时对原始数据的要求也最高;斯皮尔曼相关系数和 肯达尔相关系数的使用范围更广,但精确度较差。
4.1.1.4 其他相关系数
-
余弦相似度(Cosine similarity) (也叫余弦距离)
定义:就是求两个向量夹角的余弦值。给出的相似性范围从-1到1:-1意味着两个向量指向的方向正好截然相反,1表示它们的指向是完全相同的,0通常表示它们之间是独立的,而在这之间的值则表示中间的相似性或相异性。
公式:
注: 皮尔森相关系数 与 余弦相似度的区别在于是否有进行中心化(centered); 前者有,后者没有。
在协同过滤推荐算法中,计算用户/Item相似度时,除了皮尔森相关系数和余弦相似度 还常用到 修正余弦相似度,修正余弦相似度也做了中心化(centered);
总结:皮尔森系数与修正余弦相似度之间的区别在于中心化(centered)的方式不同。
4.1.2 相伴概率值p和假设检验
前面已介绍过,线性相关分析往往需要得到两个结果:相关系数及 其假设检验的相伴概率值p。
相关系数能够反映变量之间的相关程度和相关方向,而检验概率值p则反映了没有相关性的可能性,若相伴概率值p<0.05,则表示两个数据序列之间存在相关性。
仅凭借相关系数还不能说明两个变量之间真正存在线性相关关系,以皮尔森相关系数为例,还需要检验皮尔森相关系数r是否真正刻画了两个变量之间的线性相关关系。
通过对皮尔森相关系数r的假设检验,可以确定两个数据 序列样本是否来自相关系数rz等于0的两个总体。
皮尔森相关系数假设 检验需要设立成对假设,原假设为两个数据序列样本来自相关系数rz等 于0的两个总体,备择假设为两个样本来自相关系数rz不等于0的两个总 体,
可以将成对假设表示为:
皮尔森相关系数r有下式的t统计量:
·rz为总体的皮尔森相关系数;
·r为样本数据计算得到的皮尔森相关系数。
可以证明,因为计算皮尔森相关系数时,需要计算两个变量的样本 均值,所以上面的t统计量服从自由度为n-2的T分布。
如果通过上式计算的t统计量所对应的相伴概率值p小于显著性水平 α,那么将拒绝原假设,接受备择假设;反之,则接受原假设,拒绝备 择假设。
还可以对比t统计量与临界值,如果计算得到的t统计量大于设 定显著性水平对应的临界值tα/2(n-2),则拒绝原假设,接受备择假设;反之,则接受原假设,拒绝备择假设。
因此,当p<α时,两个数据 总体的皮尔森相关系数rz与0存在显著性差异,表示两个数据总体存在 线性相关关系。
4.2 分析步骤
进行相关分析时,
-
首先需要确定 度量变量之间相关度的相关系数,比如 定距数据(连续型数据) 采用 皮尔森(Pearson)相关系数;
-
然后,根据样本数据,计算相关系数r;再对 相关系数 进行假设检验验证;最后可以得出变量是否相关以及相关强度大小等结论。
-
更近一步,能够继续 做线性回归分析得到线性回归方程,用线性回归方程得到对实际值进行预测。
4.3 分析方法
上面提到过,相关分析主要有以下几种类型:两变量的相关分析、偏相关分析和距离相关分析。下面通过具体例子说明这3种分析方法。
4.3.1 两个变量的线性相关分析
案例:使用相关分析理解“总理指数”
李克强总理在任职辽宁省委书记时,喜欢通过耗电量、铁路货运量 和贷款发放量这三个社会经济指标分析当时辽宁省的经济状况。后来,英国《经济学人》杂志推出了由耗电量、铁路货运量和贷款发放量三个 指标评估GDP增长量的“克强指数”。如表 所示,现在有一份某市 2007—2016年的货运总量与国内生产总值(GDP)的统计数据,用相关 分析方法分析两者的相关关系如何?
表 - 某市货运总量与国内生产总值统计表
案例分析:货运总量和国内生产总值都是连续型数据,研究它们之 间的相关关系应该使用皮尔森(Pearson)相关系数。 将货运总量定义为变量X,国内生产总值定义为变量Y,两个变量 的皮尔森(Pearson)相关系数的计算过程为:
从皮尔森相关系数的计算结果来看,该市货运总量与国内生产总值 的皮尔森相关系数r=0.934,属于高度线性相关关系。由此可见,“克强 指数”对于GDP的预测具有非常强的参考价值。
还需继续进行皮尔森相关系数的假设检验,根据题意建立成对假设:
已经计算得出货运总量与国内生产总值的皮尔森相关系数r=0.934, 则相应的t统计量的值为:
查T分布表,在自由度为n-2=10-2=8,显著性水平α=0.05的情况 下,T分布的双尾右侧临界值为t0.05/2(10-2)=2.306。比较右侧临界值 与皮尔森相关系数的t统计量计算值,因为t=7.394> 2.306=t0.025(8),t统计量落在拒绝域,所以拒绝原假设,接受备择假设,即该市的货运总量和国内生产总值之间具有线性相关关系。 综上所述,该市的货运总量与国内生产总值之间确实存在线性相关关系,且皮尔森相关系数r=0.934,说明两者的相关关系很强,能够继续 做线性回归分析得到线性回归方程,用线性回归方程得到的预测值与实际值之间的差距将很小。
4.3.2 偏相关分析
在实际生活中,一个事物(变量)的变化往往会受到多个事物(变 量)的影响,而非完全两个事物(变量)之间的相关关系。
某些情况 下,已经明确具有相关关系的两个变量会同时受到另外一个变量的影 响,表现为三个变量的互相相关。
在这三个变量中,有可能只是由于某 个变量充当了中介的角色,导致另外两个变量在相关分析中呈现出相关 的结果,而实际上这两个变量并不存在实质性的相关关系。
这种情形导 致数据分析中出现“假相关”现象,造成“假相关”现象的中介变量被称 为“桥梁变量”。
例如,在研究大学生上网时间、游戏时间、完成作业情况和考试成绩的相关性时,常常发现上网时间与完成作业情况和考试成绩之间存在不明显的弱负相关关系。与此同时,上网时间又与游戏时间呈现高度正相关关系;游戏时间与完成作业情况和考试成绩之间也表现为负相关关系。
实际上,上网时间与完成作业情况和考试成绩之间的微弱负相关关系就是一种“假相关”现象;真实的情况是游戏时间占据了大部分的上网 时间,最终导致了作业完成情况不佳和考试成绩差。
在数据的相关分析中,为了避免“桥梁变量”的影响,挖掘出变量之间隐藏的真正相关关系,统计学家们引入了偏相关分析的概念。
偏相关分析是在首先剔除控制变量(桥梁变量)的影响后,再分析两个指定变 量之间是否存在相关关系的分析方法。因此,偏相关分析也被称为净相关分析。
根据需要剔除的桥梁变量(控制变量)的不同数目,偏相关分析分成一阶偏相关分析和多阶偏相关分析。如果桥梁变量(控制变量)的数 目为零,那么这种偏相关分析就是零阶偏相关分析,也就是仅涉及两个变量的二元相关分析。
偏相关分析同样输出两个分析结果:偏相关系数和假设检验概率值。我们以一阶偏相关分析为例,介绍偏相关系数的计算过程,至于检验概率值的求取,略过不详细介绍。
假设有三个变量X、Y和 Z,其中Z为桥梁变量(控制变量),那么涉及桥梁变量Z的变量X和Y 的偏相关系数为:
从偏相关系数的计算公式可知,偏相关分析剔除了控制变量(桥梁 变量)的影响。
偏相关分析不是一个确定性的分析过程,而是一种尝试性的分析,分析者首先需要根据自己对实际研究背景的了解和经验确定出可能的桥梁变量,然后将桥梁变量代入偏相关分析中,根据偏相关分析的结果判断此桥梁变量是否为真正的桥梁变量。重复以上分析过程, 直至得出满意的结果。
偏相关分析能够很好地代表数据分析的特点,数据分析没有放之四海而皆准的方法和理论,它是分析者的经验与基础统 计理论和科学分析工具的有机结合,只有这样才能称为实用的数据分析过程。
【案例】:使用偏相关分析研究上网时间是否真的影响学习成绩
以某个高一班级 的60名学生为样本,用问卷调查的方式采集了他们一个月内的上网时间、游戏时间、完成作业情况以及月底的数学考试成绩。然后用偏相关分析探索游戏时间是否真的为桥梁变量,导致上网时间与完成作业情况和学习成绩产生假的相关关系。
在这里将省略采集的样本数据及具体计算过程,只列出最终的计算结果。表4-3是四个变量之间的皮尔森相关系数表。
表4-3 四个变量的皮尔森相关系数
从表 4-3 中的皮尔森相关系数结果可知,上网时间与游戏时间是完 全正相关关系(相关系数为1.000);上网时间与完成作业情况和数学 成绩之间是高度负相关关系(相关系数为-0.957 和-0.986)。
将游戏时间作为控制变量进行偏相关分析,( X = 上网时间,Y = 完成作业情况 或者 数学成绩, Z = 游戏时间 ) 带入偏相关系数计算公式, 得到的偏相关系数结果如表4-4所示。
表4-4 三个变量的偏相关系数
从表 4-4 的相关系数结果可知,当剔除游戏时间以后,上网时间与 完成作业情况和数学成绩之间的相关系数都变为0,说明它们之间完全不存在线性相关关系。
偏相关分析的结论说明上网时间与完成作业情况和数学考试成绩之间的高度相关关系是由游戏时间引起的,游戏时间在上网时间与完成作业情况和数学考试成绩之间起到了桥梁作用,导致“假相关”的分析结果,游戏时间确实是一个桥梁变量(控制变量)。
4.3.3 距离相关分析
还有一种常用的相关分析方法是距离相关分析。现实生活中,事物之间的关系往往错综复杂,这是因为标定一个事物特征所需要涉及的指标变量可能有很多,而这些指标变量所代表的事物特征信息也非常繁杂,如何通过这些指标变量确定事物之间的相关关系呢?这就是距离相关分析可以解决的问题。距离相关分析是聚类分析的一种,它通过综合分析事物的指标变量,从而判断事物是否属于同一个类别。
两个变量的相关分析判断的是两个变量之间的相关关系;偏相关分 析呈现的也是两个变量的相关程度及方向,不同的是,剔除了控制变量 (桥梁变量)的影响;
距离相关分析则跳出了变量的范畴,它通过综合 分析事物的多个指标变量,从而判断事物之间的相关关系。
距离相关分析与前面两种相关分析方法不同,它的分析结果不会给出相关系数和检验概率值,只是给出了事物之间距离的大小,再由分析者自行判断事物之间是否相关以及相关程度的大小。这是一种辅助式的相关分析手段。
4.3.4 其他相关分析
4.3.4.1 定类数据(变量)的相关分析
两变量相关分析和偏相关分析都是围绕变量之间的相关关系实施的 相关分析方法,能够适用这两种相关分析方法的变量数据可以是定距数据、定比数据和定序数据,唯独缺少的定类数据(变量)应该如何处理?
列联表的卡方检验就是适用于定类数据(变量)的相关分析方法,它分析的是定类数据的频数分布情况。具体内容此处略过,有需要请参考参考资料。
例如,在社会调查中,分析 人们户籍地与生活习惯之间的相关关系;户籍地与艺术爱好之间的相关关系等。这些都属于定类数据变量(低测度数据)之间的相关分析范 畴。
4.3.4.1 典型相关性分析(CCA)
典型关联分析(Canonical Correlation Analysis,简称CCA)是最常用的挖掘数据关联关系的算法之一。比如我们拿到两组数据,第一组是人身高和体重的数据,第二组是对应的跑步能力和跳远能力的数据。那么我们能不能说这两组数据是相关的呢?CCA可以帮助我们分析这个问题。
上面提到过的相关系数可以很好的帮我们分析一维数据的相关性,但是对于高维数据就不能直接使用了。
如上所述,如果X是包括人身高和体重两个维度的数据,而Y是包括跑步能力和跳远能力两个维度的数据,就不能直接使用相关系数的方法。那我们能不能变通一下呢?CCA给了我们变通的方法。
-
【CCA算法思想】
CCA使用的方法是将多维的X和Y都用线性变换为1维的X'和Y',然后再使用相关系数来看X'和Y'的相关性。将数据从多维变到1位,也可以理解为CCA是在进行降维,将高维数据降到1维,然后再用相关系数进行相关性的分析。
上面提到CCA是将高维的两组数据分别降维到1维,然后用相关系数分析相关性。但是有一个问题是,降维的标准是如何选择的呢?回想下主成分分析PCA,降维的原则是投影方差最大;再回想下线性判别分析LDA,降维的原则是同类的投影方差小,异类间的投影方差大。
对于我们的CCA,它选择的投影标准是降维到1维后,两组数据的相关系数最大。
-
【CCA算法细节】
假设数据集是X和Y,X为n1×m的样本矩阵,Y为n2×m的样本矩阵.其中m为样本个数,而n1,n2分别为X和Y的特征维度。对于X矩阵,将其投影到1维,对应的投影向量为a, 对于Y矩阵,将其投影到1维,对应的投影向量为b, 这样X ,Y投影后得到的一维向量分别为X',Y'。我们有
CCA的优化目标是最大化ρ(X′,Y′),得到对应的投影向量a,b,即
在投影前,一般会把原始数据进行标准化,得到均值为0而方差为1的数据X和Y。这样我们有:
由于X,Y的均值均为0,则
令SXY=cov(X,Y),则优化目标可以转化为:
由于分子分母增大相同的倍数,优化目标结果不变,我们可以采用和SVM类似的优化方法,固定分母,优化分子,具体的转化为:
进而CCA算法的目标最终转化为一个凸优化过程,只要求出了这个优化目标的最大值,就是前面提到的多维X和Y的相关性度量,而对应的a,b则为降维时的投影向量。
这个函数优化一般有两种方法,第一种是奇异值分解SVD,第二种是特征分解,两者得到的结果一样。
【奇异值分解SVD求解CCA】
对于上面的优化目标,可以做一次矩阵标准化后在使用SVD来求解。
首先令
进而
优化目标变成下式:
可以看出,SVD的求解方式非常简洁方便。但如果不熟悉SVD的话,也可以用传统的拉格朗日函数加上特征分解来完成这个函数的优化。
【特征值分解求CCA】
特征分解方式比较传统,利用拉格朗日函数,优化目标转化为最大化下式:
分别对a,b求导并令结果为0得:
进而
现在拉格朗日系数就是我们要优化的目标。继续将上面的两个式子做整理得:
将上面第二个式子带入第一个式子得到
要求最大的相关系数λ,只需要对上面的矩阵做特征分解,找出最大的特征值取平方根即可,此时最大特征值对应的特征向量即为X的线性系数a。同样的办法,可以找到最大特征值对应的特征向量即为Y的线性系数b。
可以看出特征分解的方法要比SVD复杂,但是两者求得的结果其实是等价的,只要利用SVD和特征分解之间的关系就很容易发现两者最后的结果相同。
【CCA算法流程】
对CCA算法流程做一个归纳,以SVD方法为例:
输入:各为m个的样本X和Y,X和Y的维度都大于1
输出:X,Y的相关系数ρ,X和Y的线性系数向量a和b
流程
1)计算X的方差SXX, Y的方差SYY,X和Y的协方差SXY
2) 计算矩阵
3)对矩阵M进行奇异值分解,得到最大的奇异值ρ,和最大奇异值对应的左右奇异向量
4) 计算X和Y的线性系数向量a和b,
【CCA算法总结】
CCA算法广泛的应用于数据相关度的分析,同时还是偏最小二乘法的基础。但是由于它依赖于数据的线性表示,当我们的数据无法线性表示时,CCA就无法使用,此时我们可以利用核函数的思想,将数据映射到高维后,再利用CCA的思想降维到1维,求对应的相关系数和线性关系,这个算法一般称为KCCA。此外,在算法里只找了相关度最大的奇异值或者特征值,作为数据的相关系数,实际上我们也可以像PCA一样找出第二大奇异值,第三大奇异值,。得到第二相关系数和第三相关系数。然后对数据做进一步的相关性分析。但是一般的应用来说,找出第一相关系数就可以了。