> 文章列表 > 相关性,皮尔逊相关系数、肯达相关系数、斯皮尔曼相关系数三者的相同点、异同点与适用场景

相关性,皮尔逊相关系数、肯达相关系数、斯皮尔曼相关系数三者的相同点、异同点与适用场景

相关性,皮尔逊相关系数、肯达相关系数、斯皮尔曼相关系数三者的相同点、异同点与适用场景

相关性,皮尔逊相关系数、肯达相关系数、斯皮尔曼相关系数三者的相同点、异同点与适用场景

相关性分析用来研究变量之间的关系,探索变量之间的相关性,有助于我们了解变量之间的影响和作用。在实际的数据分析中,可能有以下几种情况我们需要进行相关性分析:

  • 确定两个或多个变量之间的相关程度
  • 机器学习任务中识别并排除高度相关的几个变量
  • 利用相关性辅助探索变量之间的因果性

进行相关性分析时,还需要注意数据具备线性相关性的前提条件,并注意确认数据的完整性和正确性,以避免因数据错误或偏差等原因导致的错误结论。


1 皮尔逊相关系数、肯达相关系数、斯皮尔曼相关系数的相同点

  • 都是常用的衡量两个随机变量之间相关性的指标。

  • 无论是何种相关系数,其应用均需要满足相关数据为一组完整的、有意义的数据集,并且要注意相关系数只能明确表明变量之间的关系,但不能确定因果关系。


2 异同点

  • 皮尔逊相关系数:通常用于衡量两个连续型变量之间的线性关系。其计算方式是通过计算两个变量之间的协方差,再将其标准化得到,取值范围为-1到1。
  • 肯德尔相关系数:通常用于衡量两个顺序型变量之间的关系。其计算方式是通过比较两个变量中的相对大小差异,计算出相同序对和不同序对的比率,取值范围为-1到1。
  • 斯皮尔曼相关系数:也是用于衡量两个顺序型变量之间的关系的指标。其计算方式与肯德尔相关系数类似,不同之处在于其通过将原始数据用秩次表示,再计算秩次之间的协方差来衡量两个变量之间的相关性,取值范围同样为-1到1。

3 适用场景

  • 皮尔逊相关系数:适用于衡量两个连续型变量之间的线性关系,通常适用于正态分布的数据。
  • 肯德尔相关系数:适用于衡量两个顺序型变量之间的关系,通常适用于等距离数据和等比例数据,且其在数据不满足正态分布时通常比皮尔逊相关系数更为准确
  • 斯皮尔曼相关系数:也适用于衡量两个顺序型变量之间的关系,通常适用于等距离数据和等比例数据,与肯德尔相关系数相比,其对数据的异常值不敏感

4 用python计算相关性系数

import pandas as pd# DataFrame
df = pd.DataFrame({'x':[1, 2, 3], 'y':[4, 5, 6]})# 皮尔逊
p = df.corr()# 肯德尔
k = df.corr(method='kendall')# 斯皮尔曼
s = df.corr(method='spearman')

pandas 中计算相关系数时,若不指定相关系数类型,则默认计算皮尔逊相关系数。另外scipy也可以计算相关性系数。

民族服饰网