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

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. 参考资料

相关推荐
数模竞赛Paid answer11 小时前
2021年深圳杯数学建模C题配电网可靠性和故障软自愈研究解题全过程论文及程序
算法·数学建模·数据分析·深圳杯
数模竞赛Paid answer1 天前
2026年华数杯数学建模A题微构体中填充导电介质的仿真优化解题全过程及程序
数学建模·数据分析·华数杯
数模竞赛Paid answer1 天前
2021年深圳杯数学建模B题背向瑞利散射光纤激光传感器设计解题全过程论文及程序
数学建模·数据分析·深圳杯
数模竞赛Paid answer1 天前
2026年五一杯数学建模B题多工序协同作业问题求解全过程文档及程序
数学建模·数据分析·五一杯
数模竞赛Paid answer2 天前
2026年五一杯数学建模A题煤矿巷道支护问题求解全过程文档及程序
数学建模·数据分析·五一杯
数模竞赛Paid answer2 天前
2026年五一杯数学建模C题边坡预警问题求解全过程文档及程序
算法·数学建模·五一杯
数模竞赛Paid answer2 天前
2021年深圳杯数学建模A题火星探测器着陆控制方案解题全过程论文及程序
算法·数学建模·深圳杯
smppbzyc2 天前
2026华数杯数学建模A题原创论文分享
数学建模·数学建模竞赛·华数杯·全国大学生数学建模竞赛·华数杯数学建模·2026华数杯
数模竞赛Paid answer3 天前
2024年五一杯数学建模A题钢板最优切割路径问题求解全过程论文及程序
数学建模·数据分析·五一杯
茜茜数模3 天前
2026华数杯A题完整思路+论文+代码:微构体中填充导电介质的仿真优化
数学建模·华数杯