赞
踩
为了说明两组数据之间的相关性,例如身高与50米跑步的成绩,我们引入相关系数,本文先介绍person相关系数以及在特定情况下的使用方法。
Person相关系数在 满足特定条件下 用来衡量两个变量之间的相关性。
在正式介绍person相关系数之前,我们先引入协方差的概念
协方差是一个反映两个随机变量相关程度的指标,比如,一个人的身高和体重是否存在一些联系。公式如下:
其中 n为样本数量,
x
‾
\overline{x}
x 为样本均值。
如果x、y变化方向相同,即当 x > x ‾ x>\overline{x} x>x其均值是, y > y ‾ y>\overline{y} y>y其均值,在这种情况下,乘积为正。如果x、y的变化方向一直保持相同,则协方差为正;同理,如果x、y的变化方向一直保持相反,则协方差为负;如果x、y的变化方向之间相互无规律,即分子中有的项为正、有的项为负,那么累加后正负抵消。
协方差越大,那么二者之间变化的趋势就越接近。
Pearson相关系数是用协方差除以两个变量的标准差得到的,公式如下:
除以标准差的目的是消除量纲的影响,Pearson相关系数取[-1,1之间。皮尔逊相关系数其实就是标准化后的协方差
相关性 | 负 | 正 |
---|---|---|
无相关 | -0.09~0 | 0~0.09 |
弱相关 | -0.3~-0.1 | 0.1~0.3 |
中相关 | -0.5~-0.3 | 0.3~0.5 |
强相关 | -1~-0.5 | 0.5~1.0 |
事实上,比起相关系数的大小,我们往往更关注的是显著性(假设检验)。
必须得确定两个变量之间是线性相关的,否则非线性相关也会导致pearson相关系数很大。存在异常点的影响也可能导致两个变量之间的相关系数变大。我们常用散点图的方法确定两个变量之间的是否线性相关,然后再描述线性相关程度。
因此在进行相关性的分析时一定要配合散点图,否则是无效的。
推荐spsspro工具,简单高效。
或者python的pandas库,使用 Dataframe.describe()函数
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.describe())
答题之前先对数据进行描述性分析是个好习惯,不管以上分析有用没用,都是一种学术严谨的表现。
前面提到 绘制散点图是检查数据是否可用pearson相关性分析的必要条件,这里我们用python matpolit,对以上六个特征列取两两绘制散点图。
plt.figure(figsize=(60,50))
num = 1
for i in range(6):
for j in range(6):
plt.subplot(6,6,num)
plt.scatter(df.iloc[:,i],df.iloc[:,j],s=2)
plt.title(df.iloc[:,i].name+"--"+df.iloc[:,j].name)
num = num+1
# plt.tight_layout()
plt.show()
绘制结果如下:
由于我这里数据是假的,因此散点图的显示基本上没有相关性可言,不要在意这些细节,方法就是这么个方法,让我们继续。
推荐spasspro工具,简单高效还免费
相关性分析结果
显著性水平 ()中为假设检验的P值,我们假设
H
0
:
r
=
0
,
H_0:r=0,
H0:r=0,即该两列数据相关性为0
而
H
1
:
r
≠
0
H_1:r\neq0
H1:r=0即该两列数据相关性不为0。
当 P<0.01时,说明
H
0
H_0
H0显著不成立,即该两列相关程度很高,0.01<P<0.05时,该两列中度相关。
下文详细介绍假设检验
相关性分析热力图
前面提到直接通过相关系数进行假设检验是非常武断的,这里引入假设性检验对相关性系数的显著性进行分析。
假设性检验这里只讲如何应用,首先得满足一个条件:该数据必须符合正态分布。
spsspro检验结果
PS:通常现实研究情况下很难满足检验,若其样本峰度绝对值小于10并且偏度绝对值小于3,结合正态分布直方图、PP图或者QQ图可以描述为基本符合正态分布。
直方图
Q-Q图
Q-Q图,全称“Quantile Quantile Plot”。用图形的方式比较观测值与预测值(假定正态下的分布)不同分位数的概率分布,从而检验是否吻合正态分布规律。并且将实际数据作为X轴,将假定正态时的数据分位数作为Y轴,作散点图,散点与直线重合度越高越服从正态分布,散点差异愈大越不服从正态分布,请视实际情况而定。
pearson相关系数其实就是两组数据的协方差的去量纲,只有在两组数据有线性相关性时才适用。对pearson相关系数的分析要用到假设检验,进行假设检验需要满足数据符合正态分布。
假如数据实在不能看,没有任何线性关系、正态分布关系,那就放弃pearson相关系数吧,白搭。
当然,天无绝人之路,备用方案:spearman相关系数
先看公式:
r s = 1 − 6 ∑ i = 1 n d i 2 n ( n 2 − 1 ) r_s=1-\frac{6\sum_{i=1}^n{d_i^2}}{n(n^2-1)} rs=1−n(n2−1)6∑i=1ndi2
这里 n就是样本数,
d
i
d_i
di是X Y 的等级差
等级:将一组数从小到大排列后,每个数所在的位置就是等级。
也就是说这个spearman相关性跟数据值无关,跟它在的位置有关,虽然听起来不太靠谱,但总归是能在非线性数据上看相关性了。
spsspro
这里依旧是通过假设检验评价相关程度,()中为假设检验的P值,*表示相关程度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。