相关分析笔记

直线相关(Linear correlation)

变量之间的关系

变量之间的关系有两种,一种是变量间存在着完全确定的有关系,这类变量间的关系称为函数关系;另一类是变量间关系不存在完全的确定性,不能用精确的数学公式来表示,这些变量间都存在着十分密切的关系,但不能由一个或几个变量的值精确地求出求出另一个变量的值,这些变量间的关系称为相关关系,存在相关关系的变量是相关变量。

直线相关的概念

对于两变量关系的研究,有时并不需要由X估计Y,也就是说我们有时候并不需要考虑直线回归的问题,而是考虑两个变量之间是否有明确的直线相关关系,例如为了研究向量元素锰在胆固醇合成中的作用,探讨大刀肝脏中胆固醇含量和锰含量之间是否存在直线关系?这种关系表现为随着锰含量的增加,胆固醇的是增加还是减少呢?像这类判断两个数值变量之间有元直线相关关系,并回答相关的方向和相关程度如何时,可以采用相关分析。

回归与相关的区别与联系

两者的区别

回归和相关都是研究两个变量相互关系的分析方法。相关分析研究两个变量之间相关的方向和相关的密切程度。但是相关分析不能指出两变量相互关系的具体形式,也无法从一个变量的变化来推测另一个变量的变化关系。

回归方程则是通过一定的数学方程来反映变量之间相互关系的具体形式,以便从一个已知量来推测另一个未知量。为估算预测提供一个重要的方法。具体区别有:

  1. 相关分析中变量之间处于平等的地位;回归分析中,因变量处在被解释的地位,自变量用于预测因变量的变化;

  2. 相关分析中不必确定自变量和因变量,所涉及的变量可以都是随机变量;而回归分析则必须事先确定具有相关关系的变量中,哪个是因变量,哪个是因变量。一般来说,回归分析中因变量是随机变量,而把自变量作为研究时给定的非随机变量;

  3. 相关分析研究变量之间相关的方向和相关的程度,但相关分析不能根据一个变量的变化来推测另一个变量的变化情况;回归分析是研究变量之间相互关系的具体表现形式,根据变量之间的联系确定一个相关的数学表达式,从而可以从已知量来推测未知量。

  4. 对两个变量来说,相关分析中只能计算出一个相关系数;而回归分析中有时可以根据研究目的的不同建立两个不同的回归方程。

两者的联系

相关分析与回归分析是广义相关分析的两个阶段,两者有着密切的联系 :

  1. 相关分析是回归分析的基础和前提,回归分析则是相关分析的深入和继续。相关分析需要依靠回归分析来表现变量之间数量相关的具体形式,而回归分析则需要依靠相关分析来表现变量之间数量变化的相关程度。只有当变量之间存在高度相关时,进行回归分析寻求其相关的具体形式才有意义。如果在没有对变量之间是否相关以及相关方向和程度做出正确判断之前,就进行回归分析,很容易造成“虚假回归”。
  2. 由于相关分析只研究变量之间相关的方向和程度,不能推断变量之间相互关系的具体形式,也无法从一个变量的变化来推测另一个变量的变化情况,因此,在具体应用过程中,只有把相关分析和回归分析结合起来,才能达到研究和分析的目的。

相关分析与回归分析都是研究变量相互关系的分析方法,相关分析是回归分析的基础,而回归分析则是认识变量之间相关程度的具体形式。

直线相关的类别

直线相关(linear correlation)又称简单相关(simple correlation),用于双变量正态分布(bivariate normal distribution)资料,直线在养的性质可由散点图直观的说明,看下图:

mark

第1张图和第2张图的散点呈椭圆形分布,若两变量X、Y同时增大或减小,变化趋势是同向的,称为正相关(positive correlation),反之,X、Y间呈反向变化,则是负相关(negative correlation),第5和第6张图中,散点基本上在一条直线上,若X、Y是同向变化,称为完全正相关(perfect positive correlation),反之,X、Y呈反向变化,称为完全负相关(perfect negative correlation),再看第第3、4、7、8这四张图,散点分布为圆形等一些形状,两变量之间没有直线相关关系,称为零相关(zero correlation)。正相关或负相关并不一定表示一个变量的改变是另一个变量变化的原因,有可能同受另一个因素的影响,因此,相关关系并不一定是因果关系,打个比方吧,某个地区每年七八月份溺水死亡的人数与雪糕的销量呈现正相关的关系,我们不能推断出来,是雪糕的销售与溺水死亡之间存在着因果关系,因为它们都受同一个因素的影响,就是天气,天气热,雪糕的销量自然高,下水游泳的人也多。

Pearson相关系数

相关系数(coefficient of correlation)又称Pearson积差相关系数(coefficient of product-moment correlation),以符号r表示样本相关系数,符号$\rho$表示其总体相关系数,它用来说明直线关系的两个变量间相关的密切程度与相关方向。

如果$(x_{1},y_{1}),\cdots,(x_{n},y_{n})$为相应于这两个变量x和y的n个观侧值对子,那么Pearson相关系数的总体和样本形式分别如下所示:

总体相关系数$\rho$的计算公式如下所示:

mark

样本相关系数r的计算公式如下所示:

mark

相关系数没有单位,其值为$-1\leq r \leq 1$,r值为正,表示正相关,r值为负表示负相关,r的绝对值等于1为完全相关,r=0为零相关,在生物界,由于影响因素众多,因此很少完全相关,注意:这里的r实际上是就总体相关系数$\rho$来说的,r是$\rho$的估计值。

上面的这两个公式反应了两个变量之间的关系。

  1. 两个变量正线性相关。这时当x(相对于其样本均值)较大时,多数的y(相对于其样本均值)也应该较大;而当x相对于均值较小时,多数的y也应该相对于均值较小,无论在哪种情况下,分子中的$(X-\bar{X})$的符号和$(Y-\bar{Y})$的符号相同的就多,这样就得到一个较大的正值(但不会超过1)。通常来说,当r的值在0.75以上表示很强的相关,介于0.3到0.7之间为适中的相关性,而在0.25以下为很弱的相关性。
  2. 两个变量负线性相关。这时当x(相对于其样本均值)较大时,多数的y相对于其样本均较小;而当x相对于均值较小时,多数的y也应该相对于均值较大,而分子中的$(X-\bar{X})$的符号和$(X-\bar{X})$的符号相反的就多,这样就得到一个较大的负值(但不会小于-1)。
  3. 两个变量不线性相关。这时分子中的大于零的项和小于零的项的个数差不多,大小也不会差很多,这样公式的结果就是一个接近于0的数目。

Pearson相关系数的计算

现在看一个案例,这个案例来源于《医学统计学》(第四版,孙振球)的第九章,具体内容如下所示:

某医师测量了15名正常成年人的体重(kg)与CT双肾总体积(ml)的大小,数据如下表所示,据引回答,两变量是否有关联?其方向与密切程度如何?

编号 体重(kg) 双肾总体积(ml)
1 43 217
2 74 316.18
3 51 231.11
4 58 220.96
5 50 254.7
6 65 293.84
7 54 263.28
8 57 271.73
9 67 263.46
10 69 276.53
11 80 341.15
12 48 261
13 38 213.2
14 85 315.12
15 54 252.08

计算过程如下所示:

先绘制出散点图,如下所示:

1
2
3
weight <-c(43,74,51,58,50,65,54,57,67,69,80,48,38,85,54)
area <-c(217,316.18,231.11,220.96,254.7,293.84,263.28,271.73,263.46,276.53,341.15,261,213.2,315.12,252.08)
plot(weight,area)

mark

cor()函数

现在计算一下相关系数,用cor()函数即可,cor()函数的用法为:

1
2
3
4
cor(x,use=, mehtod= )
其中,x是数据集,它可以是矩阵,可以是数据框
use指定缺失数据的处理方式,可选的方式为all.obs(假设不存在缺失数据),everything(遇到缺失数据时,相关系数的计算结果将被设为missing),complete.obs(行删除)以及pairwise.complete.obs(成对删除,pairwise deletion)
method:指定的相关系数的类型,可选类型为pearson、spearman或kendall

现在我们计算的是线性相关,使用的method参数为pearson(默认参数应时pearso,因此method参数可加不加),如果是直接计算两个变量的相关关系,也可以不使用数据框形式,如下所示:

1
2
> cor(weight,area)
[1] 0.8754715

相关系数的统计推断

相关系数的假设检验

从同一总体中抽出的不同样本会得到不同的样本相关系数,所以要判断X、Y之间是否确有直线相关关系,就要检验r是否来自于$rho\neq 0$的总体,因为即使从$\rho=0$的总体作随机抽样,由于抽样误差的影响,所得的r值也常不等于零。因此,当计算出r值后,接着要做$\rho=0$的假设检验,常用t检验,检验统计量t值的计算公式如下所示:

mark

其中,分母为相关系数的标准误,求得t值后,查t值表就可以得到p值,这个过程现在用软件就可以计算,现在我们计算以下前面的那个案例,也就浊对于所得到的r值,检验CT双肾总体积与体重是否有直线相关关系?

它的假设检验如下所示:

$H_{0}:\rho=0$,即CT双肾减少呢体积与体重之间无直线相关关系

$H_{1}:\rho\neq 0$,即CT双肾减少呢体积与体重之间有直线相关关系

$\alpha=0.05$,在本例中,n=15,r=0.8754,根据公式(二),可得

mark

按$\nu=13$,查t值表可知,p<0.001,按$\alpha=0.05$的检验水准,拒绝$H_{0}$,接受$H_{1}$,可以认为CT双肾总体积与体重之间存在正相关,现在用R来计算一下,此时使用cor.test函数,cor.test()函数的使用为cor.test(x,y,alternative=,method=),参数如下所示:

  • alternative用来指定进行双侧检验或单侧检验(取值为”two.side”、”less”,”greater”);

  • method用于指定要计算的类型(”pearson”、”kendall”或”spearman”),

当研究的假设为总体的相关系数小于0时,使用alternative=”less”参数,当研究的假设为总体的相关系数大于0时,使用alternative=”greater”参数,默认性下是使用alternative=”two.side”,表示总体相关系数不等于零,这个案例的计算结果如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
> cor.test(weight,area)
Pearson's product-moment correlation
data: weight and area
t = 6.5317, df = 13, p-value = 1.907e-05
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.6585492 0.9580681
sample estimates:
cor
0.8754715

现在我们看一下这个结果,在这个结果中,我们可以得到这些信息:

  1. 对总体相关系数进行t检验,发现t值为6.5317,p值远远小于0.001,因此拒绝原假设,接受备选假设,也就是说,可以认为CT双肾总体积与体重之间存在正相关;
  2. 总体相关系数的95%置信区间为(0.6585492, 0.9580681)。

决定系数

直线回归与相关分析中,还有一个非常重要的统计量,称为决定系数(coefficient of determination),定义为回归平方与总平方和之比(这里可以看一下《线性回归笔记》),计算公式如下所示:

mark

为了方便描述,在双变量分析和多变量分析中,决定系数都用$R^2$表示,但是对于双变量分析矾,$R^2$就等于$r^2$,具体公式就是公式(一)。

$R^2$的聚会在0到1之间且无单位,其数值大小反映了回归贡献的相对程度,也就是在Y的总变异中,回归关系所能解释的百分比,公式三也说明了,当$SS_{总}$固定不变时,回归平方和的大小决定了相关系数r绝对值的大小,回归平方和越接近于总平方和,则r的绝对值越接近于1,说明相关的实际效果越好,在前面的案例中,15名成年人CT双肾总体积与体重之间的直线相关系数r=0.875,那么$R^2$=0.7656,表示在这批数据中,体重可解释双肾体积变异性的76.56%,另外约23%的变异不能用体重来解释,决定系数除了作为相关或回归拟合效果的概括统计量外,还可以利用它对回归或相关作假设检验,其中对直线回归的拟合优度检验就等价于对总体回归系数的假设检验,检验统计量为:

mark

将此F统计量开平方根,就等于相对公式(二)中的相关系数做假设检验的t统计量,这又验证了相关与回归的假设检验是等价的。

多元线性相关分析

在相关分析中,研究较多的是两个变量之间的关系,称为简单相关,当涉及的变量为三个或三个以上时,称为偏相关或复相关,实际上偏相关(复相关)是对简单相关的一种推广。在有些情况下,我们只想了解两变量之间有元线性相关关系,并不需要建立它们之间的回归模型,也不需要区分自变量和因变量,这时候就可以使用较为方便的相关分析方法。

矩阵相关分析

设$x_{1},x_{2},\cdots,x_{n}$来自正态总体$N_{p}(\mu,\sum)$容量为n的样本,样本资料矩阵为:

mark

此时,任意两个变量间的相关系数构成的矩阵为:

mark

其中,$r_ij$为任意两个变量之间的简单相关系数,即:

mark

多元相关分析案例

现在看一个案例,这个案例的数据来源于《医学统计学》第四版.孙振球,案例描述如下:

27名糖尿病患者的血清总胆固醇、甘油三酯、空腹胰岛素、糖化血红蛋白、空腹血糖的测量值位于下表中,试计算这几个变量两两之间的相关系数。

mark

mark

第一步:计算两两变量之间的相关系数,如下所示:

1
2
mlr <- read.table("https://raw.githubusercontent.com/20170505a/raw_data/master/data_szq_1501.csv",header=T,sep=",") # 原始数据集
cor(mlr[2:6])

结果如下所示:

1
2
3
4
5
6
7
> cor(mlr[2:6])
X1 X2 X3 X4 Y
X1 1.0000000 0.63150583 -0.35479471 0.4152708 0.5585251
X2 0.6315058 1.00000000 -0.03863221 0.2189743 0.4585096
X3 -0.3547947 -0.03863221 1.00000000 -0.3297787 -0.5101213
X4 0.4152708 0.21897432 -0.32977870 1.0000000 0.6096420
Y 0.5585251 0.45850963 -0.51012130 0.6096420 1.0000000

从上面的结果可以看出来,X4与血糖的高低最为密切,它的r值为0.609,接着是X1,它的r值是0.558。

第二步:绘制出两两间的矩阵散点图,使用pairs()函数,如下所示:

1
pairs(mlr[2:6])

mark

现在看一下相关系数的假设检验,这里用到的包是mvstats,但是这个包不在CRAN上,可能是《多元统计分析及R语言建模》(王斌会 )自己写的,网上有,下载后安装即可,如下所示:

1
2
3
4
5
6
7
8
9
10
> library(mvstats)
> corr.test(mlr[2:6])
corr test:
X1 X2 X3 X4 Y
X1 0.000 0.0004 0.0694 0.0312 0.0025
X2 4.072 0.0000 0.8483 0.2725 0.0162
X3 -1.897 -0.1933 0.0000 0.0930 0.0066
X4 2.283 1.1221 -1.7466 0.0000 0.0007
Y 3.367 2.5797 -2.9655 3.8455 0.0000
lower is t value,upper is p value

左下角为t值,右上角为p值,现在把这个表格拆分一下就可以看清楚了,如下所示:

mark

左下角是相关系数的t值,右上三解是p值,至于如何查看,还不清楚,略过,有空补上。

Spearman秩相关

秩相关的使用范围

秩相关(rank correlation)又称等级相关,是用双变量等级数据作直线相关分析,这类方法对原变量分布不作要求,属于非参数统计法,这种方法适用于下列资料:

  1. 不服从双变量正态分布而不宜作积差相关分析,这一点从原始数据的基本统计描述中或直观的散点图中就可以看出来;
  2. 总体分布型未知,例如限于仪器测量精度,个别样本的具体数值无法读取而出现“超限值”时;
  3. 原始数据是等级资料(例如某些药物治疗疾病的结果用恶化,没改善,好转来表示)。

秩相关的基本思想

在秩相关中,使用等级相关系数$r_{s}$来说明两个变量之间直线相关关系的密切程度与相关方向,其基本思想是将n对观察值$X_{i},Y_{i}(i=1,2,\cdots,n)$分别由小到大偏秩(秩就编号的意思,最小的是1,第2小的是2,最后1个是n),用$P_{i}$表示$X_{i}$的秩,用$Q_{i}$表示$Y_{i}$的秩,其中,每对$P_{i},Q_{i}$可能相等,也可能不等,这里考虑用$P_{i}$与$Q_{i}$之差来反映X、Y两变量秩排列一致性的情况,令$d_{i}=P_{i}-Q_{i}$,由于$d_{i}$可正可负,那么$\sum d_{i}$就无法准确地反映$P_{i}$与$Q_{i}$差值的大小,因此取$\sum {d_{i}}^2=\sum(P_{i}-Q_{i})^2$。在n为一定值时,当每对$X_{i},Y_{i}$的秩完全相等时,此为完全正相关,此时,$\sum {d_{i}}^2$有最小值,为0。当每对$X_{i},Y_{i}$的秩完全相反时,此为完全负相关,此时,$\sum {d_{i}}^2$有最大值,最大值如下所示:

$\sum {d_{i}}^2=\sum(P_{i}-Q_{i})^2=\sum[(n+1-i)-i]^2=n(n^2-1)/3$(公式五)

$\sum {d_{i}}^2$从0到其最大值的范围的变化,反映了X、Y两变量的相关程度,为了与积差相关系数r(这个r就是直线相关的相关系数)表示相关程度与方向的形式一致,那么过计算Spearman等级相关的系数$r_{s}$就如下所示:

mark

$r_{s}$的值介于-1到1之间,当为正值时,表示正相关,为负表示负相关,等于0表示零相关,样本等级相关系数$r_{s}$是总体等级相关系数$\rho_{s}$的估计值,检验$\rho_{s}$是否不为零可以查表,当n>50时,可以按下面的这个公式计算 检验统计量u,查u表确定p值,公式如下:

$\mu=r_{s} \sqrt{n-1}$(公式七)

秩相关计算案例

这个案例来源于《医学统计学》(第四版,孙振球),案例描述如下所示:

某省调查了1995年到1999年当地居民18类死因的构成以及每种死因导致的潜在工作损失年数WYPLL的构成,结果见下表,以死因构成为X,WYPLL构成为Y,作等级相关分析。

死因类别 死因构成(%)
X P Y Q d $d^2$
(1) (2) (3) (4) (5) (6)=(3)-(5) (7)=(6)^2
1 0.03 1 0.05 1 0 0
2 0.14 2 0.34 2 0 0
3 0.2 3 0.93 6 -3 9
4 0.43 4 0.69 4 0 0
5 0.44 5 0.38 3 2 4
6 0.45 6 0.79 5 1 1
7 0.47 7 1.19 8 -1 1
8 0.65 8 4.74 12 -4 16
9 0.95 9 2.31 9 0 0
10 0.96 10 5.95 14 -4 16
11 2.44 11 1.11 7 4 16
12 2.69 12 3.53 11 1 1
13 3.207 13 3.48 10 3 9
14 7.78 14 5.65 13 1 1
15 9.82 15 33.95 18 -3 9
16 18.93 16 17.16 17 -1 1
17 22.59 17 8.42 15 2 4
18 27.96 18 9.33 16 2 4

假设检验:

$H_{0}:\rho_{s}=0$,即死因构成和WYPLL构成之间无直线相关关系

$H_{1}:\rho_{s} \neq0$,即死因构成和WYPLL构成之间有直线相关关系

$\alpha=0.05$

将两变量X、Y的实测值分别从小到大编秩,用$P_{i}$和${Q_{i}}$表示,见上表的(3)、(5)列,每个变量中若有观察值相同的秩,则取平均秩。求每天的秩的差值d、$d^2$,$\sum d^2$,也就是上表的第(6)、(7)栏,按前面的公式(六)计算$r_{s}$,如下所示:

mark

在本例中,n=18,查$r_{s}$的界值表可知,p<0.001,按$\alpha=0.05$的检验水准,拒绝$H_{0}$,接受$H_{1}$,可认为当地居民死因的构成和和各种死因导致的潜在工作损失年数WYPLL的构成存在正相关关系。

现在用R来计算一下,如下所示:

1
2
3
death_reason <- c(0.03,0.14,0.2,0.43,0.44,0.45,0.47,0.65,0.95,0.96,2.44,2.69,3.207,7.78,9.82,18.93,22.59,27.96)
wyypll <-c(0.05,0.34,0.93,0.69,0.38,0.79,1.19,4.74,2.31,5.95,1.11,3.53,3.48,5.65,33.95,17.16,8.42,9.33)
cor.test(death_reason,wyypll,method="spearman")

计算结果如下所示:

1
2
3
4
5
6
7
8
9
10
> cor.test(death_reason,wyypll,method="spearman")
Spearman's rank correlation rho
data: death_reason and wyypll
S = 92, p-value < 2.2e-16
alternative hypothesis: true rho is not equal to 0
sample estimates:
rho
0.9050568

其中,可以发现p值远小于0.01,因此,可认为当地居民死因的构成和和各种死因导致的潜在工作损失年数WYPLL的构成存在正相关关系。

Spearman与Pearson相关分析的区别

Pearson相关系数主要用于正态分布资料,Spearman相关系数主要用于非正态分布资料或等级资料,看一个案例:

例6.1 某疾控中心调查了辖区内公务员的体重指数、血压、总胆固醇、空腹血糖等指标,以了解他们的健康状况。现从中随机抽取20人的体重指数、总胆固醇(mmol/L)、空腹血糖(mmol/L)三个指标,分析这三个指标的相关性(《医学案例统计分析与SAS应用》冯国双,第六章 相关分析及SAS实现,例6-2,P103)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
bmi <- c(19.49,21.1,20.56,22.15,22.49,19.56,26.64,22.98,25.8,21.88,21.08,25.25,25.59,23.23,24.17,27.44,27.18,27.46,28.93,24.49)
tc <- c(4.21,4.25,4.34,4.51,4.72,4.79,4.8,4.84,4.97,5.04,5.14,5.23,5.25,5.28,5.83,5.89,6.05,6.07,6.17,6.68)
fbg <- c(5.1,5.1,5.1,5.7,5.3,5.6,5.4,5.1,5.6,5.7,5.4,5.9,5,5.8,5.9,5.08,5.7,5.9,6.2,5.9)
# 进行正态检验
normality_test <- function(x){
if(!require(nortest)){
install.packages("nortest")
}
SW <- c(shapiro.test(x)$statistic,shapiro.test(x)$p.value)
KS <- c(lillie.test(x)$statistic,lillie.test(x)$p.value)
CM <- c(cvm.test(x)$statistic,cvm.test(x)$p.value)
AD <- c(ad.test(x)$statistic,ad.test(x)$p.value)
result <- rbind(SW,KS,CM,AD)
colnames(result) <- c("参数","P值")
rownames(result) <- c("Shapiro-Wilk","Kolmogorov-Smirnov","Cramer-von Mises","Anderson-Darling")
return(result)
}
normality_test(bmi)
normality_test(tc)
normality_test(fbg)

计算结果如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
> normality_test(bmi)
Loading required package: nortest
参数 P值
Shapiro-Wilk 0.95943187 0.5325625
Kolmogorov-Smirnov 0.08966131 0.9429037
Cramer-von Mises 0.03912813 0.6800017
Anderson-Darling 0.26621338 0.6521088
> normality_test(tc)
参数 P值
Shapiro-Wilk 0.94642760 0.3160935
Kolmogorov-Smirnov 0.15632558 0.2254919
Cramer-von Mises 0.07256231 0.2452443
Anderson-Darling 0.41984856 0.2949359
> normality_test(fbg)
参数 P值
Shapiro-Wilk 0.91658692 0.08519076
Kolmogorov-Smirnov 0.17996352 0.08886482
Cramer-von Mises 0.09973686 0.10482513
Anderson-Darling 0.67392089 0.06650739

正态检验的结果表明,三个指标采用Shapiro-WIlk、Kolmogorov-Smirnov法,bmi与tc的P值均远远大于0.05,fbg的P值仅略大于0.05,为稳妥起见,下面分别按正态分布与非正态分布进行线性相关分析,即分别采用Pearson与Spearman相关分析。

1
2
3
4
5
6
7
8
9
10
11
12
cor.test(bmi,tc)
#
# Pearson's product-moment correlation
#
# data: bmi and tc
# t = 4.3734, df = 18, p-value = 0.0003664
# alternative hypothesis: true correlation is not equal to 0
# 95 percent confidence interval:
# 0.4033506 0.8805849
# sample estimates:
# cor
# 0.717758

Pearson相关分析结果:bmi与tc间的相关系数是0.718,有统计学意义(P=0.0003664)

1
2
3
4
5
6
7
8
9
10
11
cor.test(bmi,fbg)
# Pearson's product-moment correlation
#
# data: bmi and fbg
# t = 1.8681, df = 18, p-value = 0.07811
# alternative hypothesis: true correlation is not equal to 0
# 95 percent confidence interval:
# -0.04811789 0.71754554
# sample estimates:
# cor
# 0.4029837

Pearson相关分析结果:bmi与fbg间的相关系数是0.403,无统计学意义(P=0.07811)

1
2
3
4
5
6
7
8
9
10
11
cor.test(tc,fbg)
# Pearson's product-moment correlation
#
# data: tc and fbg
# t = 3.2599, df = 18, p-value = 0.004349
# alternative hypothesis: true correlation is not equal to 0
# 95 percent confidence interval:
# 0.2283232 0.8284398
# sample estimates:
# cor
# 0.6092833

Pearson相关分析结果:bmi与tc间的相关系数是0.609,有统计学意义(P=0.004349)

接着进行Spearman分析

1
2
3
4
5
6
7
8
9
cor.test(bmi,tc,method=c("spearman")) # Spearman检验
# Spearman's rank correlation rho
#
# data: bmi and tc
# S = 330, p-value = 0.0002006
# alternative hypothesis: true rho is not equal to 0
# sample estimates:
# rho
# 0.7518797

Spearman相关分析结果:bmi与tc间的相关系数是0.752,有统计学意义(P=0.0002006)

1
2
3
4
5
6
7
8
9
cor.test(bmi,fbg,method=c("spearman")) # Spearman检验
# Spearman's rank correlation rho
#
# data: bmi and fbg
# S = 859.38, p-value = 0.1259
# alternative hypothesis: true rho is not equal to 0
# sample estimates:
# rho
# 0.3538517

Spearman相关分析结果:bmi与fbg间的相关系数是0.354,无统计学意义(P=0.1259)

1
2
3
4
5
6
7
8
9
cor.test(tc,fbg,method=c("spearman")) # Spearman检验
# Spearman's rank correlation rho
#
# data: tc and fbg
# S = 564.48, p-value = 0.007919
# alternative hypothesis: true rho is not equal to 0
# sample estimates:
# rho
# 0.5755785

Spearman相关分析结果:fbg与tc间的相关系数是0.576,有统计学意义(P=0.007919)

Kendall τ相关系数

Kendall τ相关系数也是一种关于两个变量相关的度量,它的原理是把所有的样本点配对,如果$(x_{1},y_{1}),\cdots,(x_{n},y_{n})$是这两个变量的n个观测值对子。

如果每一个点由x和y组成的坐标(x,y)代表,一对点,就是诸如$(x_{i},y_{i})$和$(x_{j},y_{j})$的点对(这里的i和j不同);然后看每一对中的x和y的观测值是否同时增加(或减少),比如由点对$(x_{1},y_{1})$和$(x_{2},y_{2})$可以算出乘积$(x_{2}-x_{1})(y_{2}-y_{1})$是否大于0。如果$(x_{2}-x_{1})(y_{2}-y_{1})$大于0,则说明这点中的x和y同时增长或下降。我们就说这两点协同(concordant),如果这个乘积小于0,那么说明这两个点中的x和y并非同时增长或同时下降,我们称这两点不协同(discordant)。如果样本中协同的点数目多,两个变量就更加正相关一些;如果样本中不协同的点数目多,两个变量就更加负相关一些;如果既不正相关,也不负相关,则为不相关。

Kendall系统的公式为

其中n是项目的数量,和P的总和,对所有的项目,项目的数量排名后,给予这两个项目的排名。 P也可以被解释为是一致的对数。分母可以解释为总对数。因此,一个高价值的P,大多数是一致的,表明这两个序列是一致的。请注意,并列一双不被视为一致或不一致。如果有大量的关系,总人数的双(分母中的表达τ )应作相应调整。

该肯德尔系数(τ,或tau)具有下列属性

如果排列双方的排名是完美的(即两个排名是相同的)的系数的价值1。如果两排列之间的分歧排名是完美的(即一个排名是扭转其他)的系数价值-1 。对于所有其他的值在于介于-1和1之间的排列,增加值意味着增加之间的排列的排名。如果排名是完全独立的,该系数已值为0的平均水平。

这种方法用不差对总体做任何假定也可以检验,因此这是一个非参数的检验(所谓非参数方法,就是它不依赖于变量背后的总体分布)。Kendall τ也是在-1和1之间的娄和,也是越接近1或-1就越相关,越接近于0就不相关。
和Kendall τ相联系也有零假设是“两个变量独立”的假设检验,即使在正态假定成立时,相对于和Pearson相关系数有关检验,这个检验的效率也很高,在正态假定不那么确定时,与Kendall τ有关的检验对查看两个变量的独立性是非常有用的。

现在我们看一下秩相关分析案例使用Kenall进行计算的结果,如下所示:

1
2
3
death_reason <- c(0.03,0.14,0.2,0.43,0.44,0.45,0.47,0.65,0.95,0.96,2.44,2.69,3.207,7.78,9.82,18.93,22.59,27.96)
wyypll <-c(0.05,0.34,0.93,0.69,0.38,0.79,1.19,4.74,2.31,5.95,1.11,3.53,3.48,5.65,33.95,17.16,8.42,9.33)
cor.test(death_reason,wyypll,method="kendall")

结果如下所示:

1
2
3
4
5
6
7
8
9
10
> cor.test(death_reason,wyypll,method="kendall")
Kendall's rank correlation tau
data: death_reason and wyypll
T = 133, p-value = 2.522e-06
alternative hypothesis: true tau is not equal to 0
sample estimates:
tau
0.7385621

从上面的结果我们可以看到,p值几乎为0,τ的相关系数为0.7385621。

关于这三个相关系数的区别

Pearson相关系数描述的是两个变量的线性关系,而Spearman和Kendall τ这两个非参数度量更为一般的关于单调关系的度量,这是因为一个变量的秩不会被任何对该变量的单调的严格递增的变换所改变,因此,把这两个非参数度量称为关联(association)的度量可能更为合适。

参考资料

  1. 孙振球. 医学统计学.第3版[M]. 人民卫生出版社, 2010.
  2. DawnGriffiths. 深入浅出统计学[M]. 电子工业出版社, 2012.
  3. 王斌会. 多元统计分析及R语言建模[M]. 暨南大学出版社, 2010.
  4. 吴喜之. 统计学:从数据到结论(第四版)[J]. 中国统计, 2013(6):2.
  5. 冯国双, 罗凤基. 医学案例统计分析与SAS应用[M]. 北京大学医学出版社, 2011.
  6. 聊聊统计学三大相关性系数