数模学习(五)---相关系数
Abstract
这节将介绍两种最为常用的相关系数:皮尔逊pearson相关系数和斯皮尔曼spearman等级相关系数。它们可以用来衡量两个变量之间的相关性的大小,而根据数据满足的不同条件,我们需要选择不同的相关系数进行计算和分析(建模论文中最容易雍错的方法)。
在这里,我们需要引入总体和样本这两个概念
- 总体: 所要考察对象的全部个体叫做总体—在观察总体数据的时候,我们总是期望找到一些总体的特征(如均值方差等)
- 样本: 从总体中所抽取的一部分个体则叫做总体的一个样本
而我们通常对总体和样本进行数据处理的目的是–计算这些抽取的样本的统计量来估计总体的统计量:
例如使用样本均值、样本标准差来估计总体的均值(平均水平)和总体的标准差(偏离程度)。
举个栗子:
- 10年一次的人口普查得到的数据就是总体数据
- 数模比赛找同学填问卷就是样本数据
一 皮尔逊Pearson相关系数
1.1 Intro
概率论中数理统计部分提到过:
对于两组数据:X:X1,X2,...,XnX:{X_{1},X_{2},...,X_{n}}X:X1,X2,...,Xn和Y:Y1,Y2,...,YnY:{Y_{1},Y_{2},...,Y_{n}}Y:Y1,Y2,...,Yn是总体数据
那么总体均值为:E(X)=∑i=1nXin,E(Y)=∑i=1nYin总体协方差为:Cov(X,Y)=∑i=1n(Xi−E(X))(Yi−E(Y))n
那么总体均值为:E(X) = \frac{\sum\limits_{i=1}^{n}X_{i}}{n},E(Y) = \frac{\sum\limits_{i=1}^{n}Y_{i}}{n} \\
总体协方差为:Cov(X,Y) = \frac{\sum\limits_{i=1}^{n}(X_{i}-E(X))(Y_{i}-E(Y))}{n}
那么总体均值为:E(X)=ni=1∑nXi,E(Y)=ni=1∑nYi总体协方差为:Cov(X,Y)=ni=1∑n(Xi−E(X))(Yi−E(Y))
- 理解协方差: 如果X、YX、YX、Y变化方向相同,即当XXX大于(小于)其均值时,YYY也大于(小于)其均值,在这两种情况下,乘积为正。如果X、YX、YX、Y的变化方向一直保持相同,则协方差为正;同理,如果X、YX、YX、Y变化方向一直相反,则协方差为负;如果X、YX、YX、Y变化方向之间相互无规律,即分子中有的项为正,有的项为负,那么累加后正负抵消
- 注意: 协方差的大小和两个变量的量纲有关,因此不适合作比较
1.2 计算总体Pearson相关系数
总体Pearson相关系数:ρXY=Cov(X,Y)σXσY=∑i=1n(Xi−E(X))σX(Yi−E(Y))σYnσX是X的标准差,σX=∑i=1n(Xi−E(X))2n,σY=∑i=1n(Yi−E(Y))2n可以证明,∣ρXY∣≤1,且当Y=aX+b时,ρXY={1,a>0−1,a<0
{\color{red}总体Pearson相关系数:\rho_{XY}=\frac{Cov(X,Y)}{\sigma_{X}\sigma_{Y}}=}
\frac{\sum\limits_{i=1}^{n}
\frac{(X_{i}-E(X))}{\sigma_{X}}\frac{(Y_{i} - E(Y))}{\sigma_{Y}}
}{n} \\
\sigma_{X}是X的标准差,\sigma_{X} = \sqrt{
\frac{\sum\limits_{i=1}^{n}(X_{i}-E(X))^2}{n}
},
\sigma_{Y} = \sqrt{
\frac{\sum\limits_{i=1}^{n}(Y_{i}-E(Y))^2}{n}
} \\
{\color{red}可以证明,\vert \rho_{XY}\vert\leq 1,且当Y = aX +b时,\rho_{XY}= \left\{
\begin{aligned}
1&,&a>0 \\
-1&,&a<0
\end{aligned}
\right.
}
总体Pearson相关系数:ρXY=σXσYCov(X,Y)=ni=1∑nσX(Xi−E(X))σY(Yi−E(Y))σX是X的标准差,σX=ni=1∑n(Xi−E(X))2,σY=ni=1∑n(Yi−E(Y))2可以证明,∣ρXY∣≤1,且当Y=aX+b时,ρXY={1−1,,a>0a<0
Pearson相关系数也可以看成是剔除了两个变量量纲影响,即将XXX和YYY标准化后的协方差
1.3 样本皮尔逊Pearson相关系数
计算样本Pearson相关系数时,样本均值(E(X)、E(Y)E(X)、E(Y)E(X)、E(Y))和样本标准差(Sx、SYS_{x}、S_{Y}Sx、SY)于总体Pearson相关系数计算方法相同
这个时候:
样本协方差:Cov(X,Y)=∑i=1n(Xi−E(X))(Yi−E(Y))n−1样本Pearson相关系数:rXY=Cov(X,Y)SXSY其中:SX、SY是X的样本标准差
样本协方差:Cov(X,Y)=\frac{\sum\limits_{i=1}^{n}(X_{i}-E(X))(Y_{i}-E(Y))}{n-1}\\ \\
{\color{red}样本Pearson相关系数:r_{XY}}=\frac{Cov(X,Y)}{S_{X}S_{Y}}\\ \\
其中:S_{X}、S_{Y}是X的样本标准差
样本协方差:Cov(X,Y)=n−1i=1∑n(Xi−E(X))(Yi−E(Y))样本Pearson相关系数:rXY=SXSYCov(X,Y)其中:SX、SY是X的样本标准差
1.3.1 简略扩展
为什么除的是n−1n-1n−1,而不是nnn呢
因为如果除以nnn,对样本方差的估计不是无偏估计,比总体方差要小,所以如果想要是无偏估计就需要调小坟墓,所以除以n−1n-1n−1,那么问题还有,为什么不是除以n−2、n−3n-2、n-3n−2、n−3等,这个需要自己去了解无偏估计的证明啦~
1.4 相关性可视化
通过绘制散点图可以很容易地判定两个数据对象x和y之间的相关性
1.5 理解皮尔逊相关系数的一些理解误区
1.5.1 高相关系数不一定相关
先是四张散点图,这四张散点图对应数据的皮尔逊相关系数都是0.816:
可以很明显地看出除了第三张图有点线性相关的痕迹(但依旧有一个偏了很多地离散点),其他都很不线性相关,但是它们地相关系数是蛮高的0.816
1.5.2 低相关系数不一定相关性很弱
关于冰淇凌销量和温度之间的关系,我们得到这样的图,其相关系数计算结果为0
为0是不可能的,因为一定是有关的
1.5.3 Wiki百科解释
注意红色标注的“linear”:
这里的相关系数只是用来衡量两个变量线性相关程度的指标;
也就是说,我们必须先确定这两个变量是线性相关的,而相关系数是来告诉我们这两个变量的相关程度如何的
1.5.4 误区总结
- 非线性相关也会导致线性相关系数很大,如图2;
- 离群点对相关系数影响很大,如图3,去掉离群点后,相关系数为0.98;
- 如果两个变量的相关系数很大也不能说明两者相关,如图4,可能是受到了异常值的影响;
- 相关系数计算结果为0,只能说明它们不是线性相关的,但说不定它们会有更复杂的相关关系(非线性相关),如图5.
1.5.5 使用总结
- 如果两个变量本身就是线性的关系,那么Pearson相关系数绝对值大的就是相关性强,小的就是相关性弱
- 在不确定两个变量是什么关系的情况下,即使算出Pearson相关系数发现很大,也不能说明那两个变量线性相关,一定要画出散点图来看才可以!
1.6 对相关系数大小的解释
相关性 | 负 | 正 |
---|---|---|
无相关性 | -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 |
注意: 这个表所定的标准从某种意义上来说是武断的和不严格的,对相关系数的解释是依赖于具体的应用背景和目的的
事实上,比起相关系数的大小,我们往往更关注的是显著性。(假设检验)
1.7 描述性统计
1.7.1 Matlab中基本统计量函数(一般用标粗的):
将结果导出到EXCEL后,可以使用EXCEL的数据分析工具,得出的描述性结果一般是这样的比较繁冗的画面
为了精简,我们一般使用SPSS来描述性统计结果
得到的图是十分精简又好看滴
1.8 矩阵散点图
在计算Pearson相关系数之前,一定需要做出散点图来看两组变量之间是否有线性关系,这里依旧是使用SPSS比较方便:图形–>旧对话框–>散点图/点图–>矩阵散点图,得到的图会是这样的:
1.9 关于皮尔逊相关系数的计算
使用函数:corrcoef函数(correlation coefficient相关系数)
- R = corrcoef(A)
返回A的相关系数矩阵,其中A的列表示随机变量(指标),行表示观测值(样本)
-R =corrcoef(A,B)
返回两个随机变量A和B(两个向量)之间的系数
对于上图六个指标,我们可以直接R = corrcoef(A),得:
1.10 假设检验
- 提出原假设H0H_{0}H0和备择假设H1H_{1}H1(这两个假设是截然相反的!)
假设我们计算出了一个皮尔逊相关系数rrr,我们希望检验它是否显著的异于0.
那么我们可以这样设定原假设和备择假设:H0:r=0,H1:r≠0H_{0}:r = 0, H_{1}:r \neq 0H0:r=0,H1:r=0 - 在原假设成立的条件下,利用我们需要检验的量构造出一个符合某一分布1的统计量2
-
将需要检验的值代入统计量中,可以得到一个特定的值(检验值)
假设现在算出来的相关系数为0.50.50.5,样本为303030,那么我们可以得到t∗=0.530−21−0.52=3.05505t^{*}=0.5\sqrt{\frac{30-2}{1-0.5^2}}=3.05505t∗=0.51−0.5230−2=3.05505 -
因为我们知道了统计量的分布情况,所以我们可以画出这个分布的概率密度函数tpdftpdftpdf,并给定一个置信水平查表找到临界值,并画出检验统计量的接受域和拒绝域。
常见的置信水平有三个:90%,95%和99%,其中95%是三者中最为常用的
因为我们这里是双侧检验,所以我们需要找出能覆盖0.95%概率的部分
t分布表:t分布表
通过查表,我们知道我们对应的临界值为2.048,因此我们可以做出接受域和拒绝域 -
看我们计算出来的检验值是落在了拒绝域还是接受域,并下结论。
因为我们得到的t∗=3.05505>2.048t^{*}=3.05505 > 2.048t∗=3.05505>2.048,所以我们可以得出以下结论:
在95%的置信水平上,我们拒绝原假设H0:r=0H_{0}:r = 0H0:r=0,所以r是显著的不为0的
1.10.1 更好用的方法:p值判断法
利用得到的检验值t∗=3.05505t^{*}=3.05505t∗=3.05505,根据这个值,可以计算出其对应的概率
Matlab代码:
disp('该检验值对应的p值为:') disp((1-tcdf(3.055,28))*2) %28是因为服从的是n-2的t分布,双侧检验的p值要乘2 %注意这里的函数是tcdf:累积概率密度函数 %最后计算得到的p值为:0.0049
判断值 | 0.01 | 0.05 | 0.1 |
---|---|---|---|
p<0.01,说明在99%置信水平上拒绝原假设 | p<0.05,说明在95%置信水平上拒绝原假设 | p<0.1,说明在90%的置信水平上拒绝原假设 | |
p>0.01,说明在99%置信水平上无法拒绝原假设 | p>0.05,说明在95%置信水平上无法拒绝原假设 | p>0.1,说明在90%的置信水平上无法拒绝原假设 |
在本例中,拒绝原假设意味着皮尔逊相关系数显著的异于0
1.10.2 计算各列之间的相关系数以及p值
一行代码:
[R,P] = corrcoef(Test) % R返回的是相关系数表 % P返回的是对应于每个相关系数的p值
为了更好地区分是否能接收原假设,可以在处理数据时,这么规定
∗∗∗p<0.01,∗∗p<0.05,∗p<0.1
***p<0.01,**p<0.05,*p<0.1
∗∗∗p<0.01,∗∗p<0.05,∗p<0.1
1.11 Pearson相关系数假设检验的条件
- 实验数据通常假设是成对的来自于正态分布的总体。 因为我们再求完Pearson相关系数之后,通常还会使用t检验之类的方法来进行Pearson相关性系数检验,而t检验是基于数据呈正态分布的假设的;
- 实验数据之间的差距不能太大。 Pearson相关系数容易受到异常值的影响;
- 每组样本之间是独立抽样的。 构造t统计量时需要用到
<font color=red,size=4>如何检验数据是否正态分布呢?
1.11.1正态分布JB检验(大样本 n > 30)
雅克-贝拉检验(Jarque-Bera test)
对于一个随机变量Xi{X_{i}}Xi,假设其偏度为SSS,峰度为KKK,可以构造JBJBJB统计量:
JB=n6[S2+(K−3)24]
JB = \frac{n}{6}[S^2+\frac{(K-3)^2}{4}]
JB=6n[S2+4(K−3)2]
可以证明,如果Xi{X_{i}}Xi是正态分布,那么在大样本情况下JB χ2(2)JB~\chi^2(2)JB χ2(2)(自由度为2的卡方分布)4
那么进行假设检验的步骤如下:
H0:H_{0}:H0:该随机变量服从正态分布,H1:H_{1}:H1:该随机变量不服从正态分布,然后计算该变量的偏度和峰度,得到检验值JB∗JB^{*}JB∗,并计算出其对应的ppp值,将ppp值于0.050.050.05比较,如果小于0.050.050.05则可拒绝原假设,否则不能拒绝原假设。
偏度和峰度
偏度
峰度
测试代码
x = normrnd(2, 3, 100, 1); %生成100*1的随机向量,每个元素的均值为2,标准差为3的正态分布 skewness(x) %偏度 kurtosis(x) %峰度
Matlab使用
进行JBJBJB检验的语法:
[h, p] = jbtest(x, alpha)
当输出h为1时,表示拒绝原假设;h为0时表示不能拒绝原假设
alpha表示显著性水平,一般去0.05,这个时候置信水平为100-0.05=0.95
x即是我们要检验的随机变量,注意这里的x只能是向量**(通常采用循环检验所有列的数据)**
1.11.2 Shapiro-wilk检验(夏皮洛-威尔克检验)
**使用范围:**小样本3≤n≤503\leq n \leq 503≤n≤50
H0H_{0}H0:该随机变量服从正态分布,H1H_{1}H1:该随机变量不服从正态分布
计算出威尔克统计量后,得到相应的ppp值
将ppp值与0.050.050.05比较,如果小于0.050.050.05则可拒绝原假设,否则我们不能拒绝原假设
1.11.3 Q-Q图
在统计学中,Q-Q图(Q代表分位数Quantile)是一种通过比较两个概率分布的分位数对着两个概率分布进行比较的概率图方法。
首先确定分位数的对应概率区间集合,在此概率区间上,点(x,y)对应于第一个分布的一个分位数xxx和第二个分布在和xxx相同概率区间上相同的分位数
这里,我们选择正态分布和要检验的随机变量,并对其做出Q-Q图,可以知道的是,如果要检验的随机变量是正态分布,那么Q-Q图就是一条直线
要利用Q-Q图鉴别样本数据是否近似于正态分布,只需看Q-Q图上的点是否近似地在一条直线附近。(要求数据量非常大)
如第一列数据和正态分布的Q-Q图
1.12 斯皮尔曼Spearman相关系数
定义:XXX和YYY为两组数据,它们的斯皮尔曼(等级)相关系数:
rs=1−6∑i=1ndi2n(n2−1)其中,di为Xi和Yi之间的等级差(一个数的等级,就是将它所在的一列数按照从小到大排序后,这个数所在的位置)可以证明:rs位于−1到1之间
r_{s}=1-\frac{6\sum\limits_{i=1}^{n}d_{i}^{2}}{n(n^{2}-1)} \\
其中,d_{i}为X_{i}和Y_{i}之间的等级差
(一个数的等级,就是将它所在的一列数按照从小到大排序后,这个数所在的位置)
可以证明:r_{s}位于-1到1之间
rs=1−n(n2−1)6i=1∑ndi2其中,di为Xi和Yi之间的等级差(一个数的等级,就是将它所在的一列数按照从小到大排序后,这个数所在的位置)可以证明:rs位于−1到1之间
下表中,如果有的数值相同,则将它们所在的位置取算术平均
根据公式:rs=1−6∑i=1ndi2n(n2−1)可得:X和Y的斯皮尔曼相关系数为:rs=1−6X(1+0.25+0.25+1)5X24=0.875
根据公式:r_{s} = 1-\frac{6\sum\limits_{i=1}^{n}d_{i}^2}{n(n^2-1)}可得:
X和Y的斯皮尔曼相关系数为:r_{s}=1-\frac{6 X (1+0.25+0.25+1)}{5X24} = 0.875
根据公式:rs=1−n(n2−1)6i=1∑ndi2可得:X和Y的斯皮尔曼相关系数为:rs=1−5X246X(1+0.25+0.25+1)=0.875
1.12.1 另一种定义
spearman相关系数被定义成等级之间的Pearson相关系数
%% MATLAB求解Pearson相关系数 RX = [2 5 3 4 1] RY = [1 4 5 3 4 5 2] R = corrcoef(RX, RY)
MATLAB中计算Spearman相关系数
两种用法:
- (1)corr(X, Y, ‘type’, ‘Spearman’)
这里的X和Y必须是列向量 - (2)corr(X, ‘type’, ‘Spearman’)
这时计算X矩阵各列之间的Spearman相关系数
1.13 Spearman相关系数的假设检验
分为小样本和大样本两种情况
1.13.1 小样本情况(n≤30)(n \leq 30)(n≤30)
这个时候直接查表即可:
1.13.2 大样本情况
这个时候,统计量 为:
rsn−1 N(0,1)H0:rs=0, H1:rs≠0
r_{s}\sqrt{n-1} \mathop{~}N(0, 1) \\
H_{0}:r_{s}=0, ~~H_{1}:r_{s}\neq 0
rsn−1 N(0,1)H0:rs=0, H1:rs=0
我们计算检验值rsn−1r_{s}\sqrt{n-1}rsn−1,并求出对应的ppp值与0.050.050.05比较即可
二 两个相关系数的比较
Spearman相关系数和Pearson相关系数选择
- 连续数据,正态分布,线性关系,用pearson相关系数最恰当,用spearman也可以,但是效率没有pearson相关系数高
- 上述任一条件不满足,就用Spearman相关系数,不能用PearsonPearsonPearson相关系数。
- 两个定序数据之间也可以用SpearmanSpearmanSpearman相关系数,不能用PearsonPearsonPearson相关系数
定序数据是指仅仅反应观测对象等级、顺序关系得数据,是由定序尺度计量形成的,表现为类别,可以进行排序,属于品质数据,例如:优、良、差
定序数据最重要的意义代表了一组数据中的某种逻辑顺序 - SpearmanSpearmanSpearman相关系数的使用条件比PearsonPearsonPearson相关系数要广,只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用
总的来说,如果有题目问这些变量之间的相关性分析如何,则可以考虑采用这两种方法
这里的分布一般有四种:标准正态分布、ttt分布、χ2\chi^2χ2分布和FFF分布
对于皮尔逊相关系数rrr来说,在满足一定的条件下,我们可以构造统计量:
t=rn−21−r2,可以证明t是服从自由度为n−2的t分布t = r\sqrt{\frac{n-2}{1-r^2}},可以证明t是服从自由度为n-2的t分布t=r1−r2n−2,可以证明t是服从自由度为n−2的t分布
这里证明很复杂,条件在后面会替代,不再往深讲3 ↩︎统计量相当于我们要检验的量的一个函数,里面不能有其他的随机变量 ↩︎
在数理统计中,应该把样本系数rrr换为总体系数ρ\rhoρ,因为我们关心的是总体的统计特征,非统计专业的朋友理解到样本就阔以啦~ ↩︎
正态分布的偏度为0,峰度为3 ↩︎
- 皮尔逊积矩相关系数的学习
- 机器学习|协方差与相关系数|15mins入门|概统学习笔记(十二)
- 数据分析学习体验——特征变量相关系数和主成分分析
- 【深度学习基础-14】回归中的相关系数r和决定系数R^2
- 皮尔逊积矩相关系数的学习
- 数模学习(六)---典型相关分析
- 数据挖掘学习------------------1-数据准备-4-主成分分析(PCA)降维和相关系数降维
- python学习----pearsonr(x,y)相关系数计算
- R语言函数与模型学习笔记:残差相关性零均值检验及跨期相关系数(图)
- 学习JSP相关笔记
- WebService学习(一)——WebService的相关概念
- NodeJS学习系列课程笔记(NodeJs REPL相关使用方法)
- 【S2HS学习笔记】第二章节:JSP/Servlet及相关技术详解
- 统计学相关概念及机器学习中样本相似性度量之马氏距离
- C++学习笔记——继承相关问题
- Android电话短信拦截项目总结之 项目源码及相关学习资料
- Redis2.2.2源码学习——Server&Client链接的建立以及相关Event
- arm体系结构学习笔记 part2 -- 中断相关
- 清风数学建模---第五讲相关系数(person相关系数)
- JAVA学习笔记24——Dubbo、zookeeper相关讲解及实战入门