转自:http://blog.csdn.net/dmwithr/article/details/17077455
1 相关分析简介
- 相关分析简介
- 现代自然科学研究, 经济检验, 企业管理等活动中普遍存在相互影响的关系
- 函数关系是严格的确定对应关系,
- 相关关系-是一种不要求确定性对应, 具有一定随机性的关系
- 相关分析用来研究变量间相关关系
- 现代自然科学研究, 经济检验, 企业管理等活动中普遍存在相互影响的关系
- 相关关系的种类
- 按照相关关系的表现形态来划分, 可以分为线性相关和非线性相关
- 按变量之间相互关系的方向, 分为正相关和负相关
- 按变量之间相关的程度划分, 可以分为完全相关, 不相关, 和不完全相关
- 相关分析的主要内容
相关分析是对相关关系密切程度的研究, 相关分析的主要内容为
- 确定现象之间有无相关关系、
- 确定相关关系的表现形式
- 确定相关关系的密切程度和方向
相关分析常通过图形 (散点图) 和数值 (相关系数) 两种方法来揭示事物之间统计关系的强弱 程度
- 绘制散点图
2 Pearson相关分析
- Pearson 相关分析系数
在相关分析中, 对于两个数值型变量, 通常采用Pearson相关系数来度量两 个变量之间的相关性,设 X=(x1,x2,⋯,xn) , Y=(y1,y2,⋯,yn) ,则变量 X 和 Y 的Pearson相关系数定义 为
r(X,Y)=∑i=1n(xi−x¯)(yi−y¯)∑i=1n(xi−x¯)2−−−−−−−−−−√∑i=1n(yi−y¯)2−−−−−−−−−√其中 x¯=1n∑i=1nxi, y¯=1n∑i=1nyi 为 X,Y 的均值
- Pearson 相关系数的含义和相关性是否显著的检验
- Pearson 相关系数实际是两个中心化之后的两个变量的夹角余弦
- 当两个变量完全正相关时(两向量方向完全相同), r=1
- 若两个变量完全负相关, r=-1
- 若两个变量无关(相互垂直), r=0
- 在两个变量不相关的原假设下, 可以证明:
t=rn−2−−−−−√1−r2−−−−−√近似服从自由度为n-2的t 分布据此可以检验两个变量之间的相关性是否显著
- 缺点:如果X和Y为有序的等级变量, 此时数值上的加减没有意义, Pearson相关系数失去意 义, 为此我们考虑基于秩次的 Spearman 相关系数
3 Spearman相关分析
- Spearman 相关系数
- Spearman相关系数常用来度量定序型变量之间的线性相关关系
- 该系数的设计思想与Pearson简单相关系数完全相同
- 由于变量不是定距型数据, 不能直接采用原始数据进行计算, 而是利用数据的秩
- 所谓秩是指 xi 在 x1,⋯,xn 中按照一定的准则排序的顺序
- Spearman 相关系数的计算是将上述秩次带入到pearson 相关系数的计算公式中
- 变量的秩次
- 利用两变量的秩次大小作线性相关分析, 对原始变量的分布不作要求.
- 设 X=(x1,x2,⋯,xn) 和 Y=(y1,y2,⋯,yn) 为两个属性变量, 分别对A和 B从小到大进行排序, 求出秩次, 记为 UX, VY
- 例如 X=(1,5,7,3,4), 1排在第一位, 秩为1, 5 排在第4位, 秩为4, 可 得 $UX$=(1,4,5,2,3),
- Spearman相关系数 的具体计算
- 分别求出变量X 和 变量 Y 的秩次, 分别记为 UY=(U1,⋯,Un),VY=(V1,⋯,Vn) ,是取值 1,⋯,n 的数值变量
- 计算
UX,VY
的 Pearson相关系数, 即为 变量
X
和
Y
的 Spearman相关系数
ρ(X,Y)=r(UX,VY)=∑i=1n(Ui−n+12)(Vi−n+12)∑i=1n(Ui−n+12)2−−−−−−−−−−−−√∑i=1n(Vi−n+12)2−−−−−−−−−−−−√=1−6∑i=1n(Ui−Vi)2/(n(n2−1))
- Spearman 等级相关系数的含义
- 当两变量完全正相关时, 有 Ui−Vi=0,i=1,⋯,n , ∑i=1n(Ui−Vi)2=0 ,此时 ρ=1
- 两变量完全负相关时, 有 Ui+Vi=n+1 ,此时 ∑i=1n(Ui−Vi)2 达到最大值, 此时 ρ=−1
- 当两个变量相关性较弱时, 变量秩的变化不具有同步性, ρ 趋向于0
- 用Spearman秩相关系数进行统计推断
在原假设成立, 即两变量相互独立时, 可以得出Spearman秩相关系数的分布
- 样本量较少时, Spearman相关系数服从 Spearman分布
- 大样本情况下
Z=ρn−1−−−−−√近似服从N(0,1)
- 可以通过计算Spearman秩相关系数和对应的尾概率确定两个变量的相关性是否显著
4 Kendall τ 相关分析
- Kendall
τ
相关系数
- Kendall τ 系数采用非参数检验方法度量定序变量之间的线性相关关系
- 利用变量秩计算一致对(同序对) 数目 U 和非一致对(异序对) 数目 V 来生成
- 显然, 如果两变量具有较强的正相关, 则一致对数目 U 较大, 非一致对数目 V 较小 , 负相关时情况恰好相反
- 采用kendall 相关系数进行相关性推断
- kendall
τ
统计量的数字定义为
τ=(U−V)2n(n−1)
- 小样本情况下, τ 服从 Kendall τ 分布
- 大样本情况下, 采用的检验统计量为:
Z=τ9n(n−1)2(2n+5)−−−−−−−−√
可以证明, Z∼N(0,1)
- kendall
τ
统计量的数字定义为
5 相关分析的R实现
- 数据
30名初中生的身高, 体重, 胸围, 坐高数据如下 求相关系数
身高 体重 胸围 腰围 148 41 72 78 139 34 71 76 160 49 77 86 149 36 67 79 159 45 80 86 142 31 66 76 153 43 76 83 150 43 77 79 151 42 77 80 139 31 68 74 - pearson 相关系数的计算
options(digits=3) student<-read.table(file="data/student.csv",sep=",",header=F) names(student)<-c("sg","tz","xw","zg") cor(student)
sg tz xw zg sg 1.000 0.863 0.732 0.920 tz 0.863 1.000 0.897 0.883 xw 0.732 0.897 1.000 0.783 zg 0.920 0.883 0.783 1.000
- Pearson相关系数的检验
sg<-student$sg tz<-student$tz cor.test(sg,tz,method="pearson")
Pearson's product-moment correlation data: sg and tz t = 9.05, df = 28, p-value = 8.394e-10 alternative hypothesis: true correlation is not equal to 0 95 percent confidence interval: 0.730 0.933 sample estimates: cor 0.863
- Spearman 相关系数的计算
cor(student,method="spearman")
sg tz xw zg sg 1.000 0.852 0.746 0.949 tz 0.852 1.000 0.897 0.894 xw 0.746 0.897 1.000 0.813 zg 0.949 0.894 0.813 1.000
- Spearman 相关系数的检验
cor.test(student$sg,student$tz,method="spearman")
Spearman's rank correlation rho data: student$sg and student$tz S = 664, p-value = 2.3e-09 alternative hypothesis: true rho is not equal to 0 sample estimates: rho 0.852 警告信息: In cor.test.default(student$sg, student$tz, method = "spearman") : 无法给连结計算精確p值
- Kendall tau 相关系数
cor(student,method="kendall")
sg tz xw zg sg 1.000 0.676 0.560 0.841 tz 0.676 1.000 0.752 0.745 xw 0.560 0.752 1.000 0.659 zg 0.841 0.745 0.659 1.000
6 相关分析实现(Using Matlab)
corr
函数说明
corr
计算线性相关系数和秩相关系数RHO=corr(X)
返回 P ×P 矩阵, 矩阵元素为相应变量的先关系数RHO=corr(X,Y,...)
返回 P1-by-P2 矩阵, 矩阵元素对应 N-by-P1 and N-by-P2 matrices X and Y.[RHO,PVAL]=corr(...)
也返回 PVAL为检验向量不相关的 p-values 构成的矩阵, 若PVAL(i,j) 小于 0.05, 说明 RHO(i,j) 显著地偏离 0[...]=corr(...,'PARAM1',VAL1,'PARAM2',VAL2,...)
常见的参数如下- 相关系数类型 'type'
- 'Pearson' (默认值)计算Pearson 线性相关系数
- 'Kendall' 计算 Kendall's tau 相关系数
- 'Spearman' 计算 Spearman's rho.
- 假设检验类型 'tail' 设定对立假设'both': 双边检验(默认值) ρ≠0 , 'right' , 右边检验 ρ>0 , 'left', 左边检验 ρ<0
- 相关系数类型 'type'
- 数据
30名初中生的身高, 体重, 胸围, 坐高数据如下 求相关系数
身高 体重 胸围 腰围 148 41 72 78 139 34 71 76 160 49 77 86 149 36 67 79 159 45 80 86 142 31 66 76 153 43 76 83 150 43 77 79 151 42 77 80 139 31 68 74 - matlab 命令
student=csvread('data/student.csv'); [pearson,pval]=corr(student) [spearman,pval]=corr(student,'type','Spearman') [kendall,pval]=corr(student,'type','Kendall')
- pearson 相关系数
pearson = 1.0000 0.8632 0.7321 0.9205 0.8632 1.0000 0.8965 0.8827 0.7321 0.8965 1.0000 0.7829 0.9205 0.8827 0.7829 1.0000 pval = 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000
- Spearman 系数
spearman = 1.0000 0.8522 0.7458 0.9490 0.8522 1.0000 0.8967 0.8944 0.7458 0.8967 1.0000 0.8129 0.9490 0.8944 0.8129 1.0000 pval = 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000
- Kendall
τ
系数
kendall = 1.0000 0.6762 0.5598 0.8408 0.6762 1.0000 0.7515 0.7452 0.5598 0.7515 1.0000 0.6594 0.8408 0.7452 0.6594 1.0000 PVAL = 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.0000 0.0000 0.0000 0.0000 0.0000 1.000