相关性分析与常用相关系数

Coldrain 在做 2012 年全国大学生数学建模竞赛 A 题时遇到了相关性分析,遂作此篇,以为学习。

1. 相关性的定义

相关性是两个变量线性相关的程度。从广义上讲,相关性实际上是双变量数据中两个随机变量之间的任何统计关系,无论是否因果关系。

相关性并不意味着因果关系!

例如:

  1. 夏季,冰淇淋的消费量会增加。冰淇淋销售额与夏天之间存在很强的相关性。在这个特殊的例子中,存在因果关系,因为极热的夏季确实推动了冰淇淋的销售。
  2. 冰淇淋的销售也与鲨鱼袭击有很强的相关性。我们非常清楚,鲨鱼袭击绝对不是因为冰淇淋造成的。所以,这里没有因果关系,但是他们仍然相关。

2. 相关系数

在统计学中,相关的意义是:用来衡量两个变量相对于其相互独立的距离。

在这个广义的定义下,有许多根据数据特点来衡量数据相关性而定义的系数,称作相关系数。

相关系数是对两个变量的相对运动之间关系强度的统计量度。

相关系数的值范围在 -1.0 和 1.0 之间 。-1.0 的相关性表示完全的负相关 ,而 1.0 的相关性表示完全的正相关。0.0 的相关性表明两个变量的移动之间没有线性关系。

对于不同测量尺度的变量,有不同的相关系数可用:

  • Pearson 相关系数
  • Spearman 相关系数
  • Kendall 相关系数
  • ...

上面提到的这三种相关系数各有优势和适用范围:

  • Pearson 系数 适用于线性关系的测量,对数据要求较高。
  • Spearman 秩相关系数 适用于单调关系的测量,对数据分布没有假设要求,并且对异常值较为稳定(即鲁棒性更高)。
  • Kendall 秩相关系数 适用于顺序关系的测量,同样对数据分布没有假设要求,并且对异常值较为稳定。

3. Pearson 相关系数

也就是概率论课本 1 上讲述的相关系数 ρ \rho ρ

Pearson相关系数是用于衡量两个变量之间线性关系强度的指标。

它计算的是两个变量的协方差与各自标准差的比值,取值范围在-1到1之间。

  • 当 ρ X , Y > 0 \rho_{X,Y}>0 ρX,Y>0 时,表示两个变量呈正相关
  • 当 ρ X , Y < 0 \rho_{X,Y}<0 ρX,Y<0 时,表示两个变量呈负相关
  • 当 ρ X , Y \rho_{X,Y} ρX,Y 接近 0 时,表示两个变量没有线性关系。

Pearson 相关系数公式如下:

ρ X , Y = c o v ( X , Y ) σ X σ Y = E ( ( X − μ X ) ( Y − μ Y ) ) σ X σ Y \rho_{X,Y} = \frac{cov(X, Y)}{\sigma_X \sigma_Y} = \frac{E((X-\mu_X)(Y-\mu_Y))}{\sigma_X \sigma_Y} ρX,Y=σXσYcov(X,Y)=σXσYE((X−μX)(Y−μY))

其中, E E E 是数学期望,cov 表示协方差, σ X \sigma_X σX 和 σ Y \sigma_Y σY 是标准差。

因为 μ X = E ( X ) \mu_X = E(X) μX=E(X), σ X 2 = E ( X 2 ) − E 2 ( X ) \sigma^2_X = E(X^2)-E^2(X) σX2=E(X2)−E2(X),同样之与 Y Y Y,那么上式也可以写成:

ρ X , Y = E ( X Y ) − E ( X ) E ( Y ) E ( X 2 ) − E 2 ( X ) E ( Y 2 ) − E 2 Y \rho_{X, Y} = \frac{E(XY)-E(X)E(Y)}{\sqrt{E(X^2)-E^2(X)} \sqrt{E(Y^2)-E^2{Y}}} ρX,Y=E(X2)−E2(X) E(Y2)−E2Y E(XY)−E(X)E(Y)

∣ ρ X , Y ∣ ( ≤ 1 ) |\rho_{X,Y}|(\le1) ∣ρX,Y∣(≤1) 越大,表示两个变量的线性相关程度越高。

需要注意的是,Pearson 相关系数只能测量线性关系,对于非线性关系无法准确捕捉。

利用 Python 计算 Pearson 相关系数:

python 复制代码
from scipy.stats import pearsonr
import numpy as np

X = np.array([1, 2, 3, 4, 5, 6, 7])
Y = np.array([9, 8, 7, 6, 5, 4, 3])

# 计算 Pearson 系数
r, p = pearsonr(X, Y)    # r 为系数

4. Spearman 秩相关系数

当 X X X 和 Y Y Y 具有某种单调关系时, X X X 和 Y Y Y 是完全相关的(-1 或 1)

对 Pearson 系数来说,只有当 X X X 和 Y Y Y 有完全的线性关系时,才是完全相关的(-1 或 1)

也就是说,当我们需要刻画变量之间是否具有单调关系时,我们就需要用到 Spearman 秩相关系数了。

  • 单调关系
    • 随着一个变量的值增加,另一个变量的值增加 or 减小。
    • 不限制恒定的速率
  • 线性关系
    • 梯度为常数
    • 增加/减少的速率是恒定的

Spearman秩相关系数的计算步骤如下:

  1. 对每个变量的观测值进行排序,得到每个观测值的秩次(从小到大排列)。如果有相同的观测值,则取它们的平均秩次。
  2. 计算每个观测值的秩次差,即第一个变量的秩次减去第二个变量的秩次。
  3. 计算秩次差的平方和,并除以样本大小减一(n-1)得到Spearman秩相关系数。

Spearman秩相关系数的取值范围在-1到1之间,其中1表示完全的正相关,-1表示完全的负相关,0表示无相关性。

Python 计算 Spearman 秩相关系数:

python 复制代码
from scipy.stats import spearmanr
import numpy as np

X = np.array([1, 2, 3, 4, 5, 6, 7])
Y = np.array([9, 8, 7, 6, 5, 4, 3])

# 计算 Spearman 系数
r, p = spearmanr(X, Y)    # r 为系数

5. 差异与选择

  • Pearson 适用于两个变量之间的线性关系,而Spearman适用于单调关系。
  • Pearson 处理变量的数据原始值,而 Spearman 处理数据排序值(需要先做变换,transform)

Pearson 相关系数只适用于线性关系且正态分布。

此外,如果散点图表明"可能是单调的,可能是线性的"关系,最好的选择是 Spearman 而不是 Pearson。即使数据证明是完全线性的,用 Spearman 也不会造成信息丢失。但是,如果不是完全线性但使用 Pearson 系数,会丢失 Spearman 可以捕获的信息,是否单调。


6. 参考资料

相关推荐
Maplesoft9 小时前
柔印行业如何通过数字化样机、虚拟调试提升企业盈利能力
人工智能·数学建模·系统仿真
梦帮科技2 天前
Kali Linux Scapy 畸形报文构造学——深度解剖非法 TCP Flags 与反常序列号
linux·爬虫·神经网络·算法·数学建模·系统架构·模拟退火算法
蒲公英eric2 天前
线性回归与正则化:从最小二乘到岭回归、LASSO
人工智能·算法·数学建模·线性回归·岭回归·最小二乘·lasso
AtItAgain3 天前
buck电路小信号模型推导
数学建模
lisw053 天前
消元法是什么?怎么使用?
数学建模
lisw053 天前
人类认知和语言学习中的控制论!
人工智能·学习·数学建模
Martina_03215 天前
AI生成3D模型导入后只剩一个大网格?用6步完成微缩场景拆分与优化
人工智能·游戏·数学建模·3d·ai·自然语言处理·aigc
lisw055 天前
谈谈基因调控建模!
数学建模
lisw055 天前
生物数学:概念、历史、内容、挑战与展望!
大数据·数学建模
by————组态6 天前
Ricon组态适用领域全景解析:工业制造、能源、市政民生与智慧城市四大场景落地实践
后端·物联网·数学建模·智慧城市·能源·制造·组态