相关性(Correlation)

相关性(Correlation) 指的是两个或多个变量之间随同变化的关系,是数据分析和机器学习中常用的概念。了解不同变量(或特征)之间的相关程度及其方向,对于特征选择模型构建多重共线性检测等具有重要意义。下面将从概念、度量方式、使用场景、注意事项等方面进行介绍。


1. 相关性的基本概念

  1. 线性相关性

    • 最常见是指线性依赖关系:如果一个变量增大时,另一个变量也倾向增大(或减小),则我们说它们之间存在正(或负)相关。
    • 线性相关最常用的度量就是皮尔森相关系数(Pearson Correlation Coefficient)
  2. 非线性相关性

    • 有些变量之间可能存在非线性的依赖关系(如曲线、分段)。此时仅用 Pearson 相关系数无法完全捕捉,需要考虑斯皮尔曼相关系数(Spearman)、**肯德尔相关系数(Kendall)**或其它更通用的统计方法。
  3. 相关 != 因果

    • 重要原则:“相关不代表因果”。即便两个变量高度相关,也不一定说明二者存在因果关系,可能存在第三个隐变量的影响或时间先后顺序等多种因素。

2. 常见的相关性度量方法

2.1 皮尔森相关系数(Pearson’s r)

  • 定义:衡量两个连续变量间的线性关系强度和方向,取值范围 [ − 1 , + 1 ] [-1, +1] [1,+1]

    • r > 0 r > 0 r>0,表示正相关; r < 0 r < 0 r<0,表示负相关; ∣ r ∣ |r| r 越接近 1,相关性越强。
    • r = 0 r = 0 r=0,表示线性无关;但不代表无任何关系,可能存在非线性关联。
  • 适用条件

    1. 变量为连续型并近似服从正态分布;
    2. 两个变量的关系大致呈线性。
  • 公式
    r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sqrt{\sum_{i=1}^{n} (x_i - \bar{x})^2 \sum_{i=1}^{n} (y_i - \bar{y})^2}} r=i=1n(xixˉ)2i=1n(yiyˉ)2 i=1n(xixˉ)(yiyˉ)
    其中 x ˉ \bar{x} xˉ y ˉ \bar{y} yˉ 分别是 x、y 的样本均值。

2.2 斯皮尔曼秩相关系数(Spearman’s ρ \rho ρ

  • 定义:基于变量的“秩”(Rank)来衡量关联,主要适用于非线性关系有序变量

    • 对原始样本排序(赋予秩),然后计算在秩空间的皮尔森相关。
  • 优点

    1. 对异常值或非线性更加鲁棒;
    2. 可以处理等级(ordinal)变量。
  • 取值范围:同样是 [ − 1 , + 1 ] [-1, +1] [1,+1]

2.3 肯德尔秩相关系数(Kendall’s τ \tau τ

  • 定义:也是基于排名的相关系数,但计算方式与斯皮尔曼不同,更关注样本对在秩上的一致性/不一致性。
  • 优点
    1. 对小样本更稳定;
    2. 对重复秩处理较好。

2.4 距离相关(Distance Correlation)等高级方法

  • 距离相关:考虑到可能存在更一般的非线性关系,通过所有样本点间的距离矩阵来定义相关度,更全面。
  • 当数据分布复杂或关系高度非线性时,可以考虑此类方法。

3. 使用场景

  1. 特征选择

    • 在机器学习前期,可能会对高相关的特征进行筛选或去冗余。如若两个特征相关系数过高(如 ∣ r ∣ > 0.9 |r|>0.9 r>0.9),可保留对目标更有效的那个特征,以减少多重共线性。
  2. 多重共线性检测

    • 在线性模型(如线性回归、Logistic 回归)中,如果变量之间高度相关,会影响回归系数的稳定性和解释性。可通过相关矩阵查看特征间相关程度。
  3. 探索性数据分析

    • 在数据可视化或初步分析阶段,可计算特征与目标间的相关系数,直观判断哪些特征可能与目标有较强(线性)关系。
  4. 实验/研究验证

    • 如果想证明两个变量的关系,可以用相关系数及其统计检验(p-value)来做初步判断。

4. 相关分析的注意事项

  1. 线性 vs. 非线性

    • Pearson 仅能捕捉线性趋势;若两个变量呈 U 型、指数型等非线性关系,Pearson 可能显示低相关,但实际上二者关系紧密。这时需考虑 Spearman、Kendall 或其他方法。
  2. 相关不代表因果

    • 即便相关系数达到 0.9 以上,也不能简单地说“X 导致 Y”。需要有理论、实验、时间先后顺序等佐证因果关系。
  3. 离群点(outlier)

    • Pearson 对异常值敏感; Spearman、Kendall 更稳健一些。遇到离群值较多的场景,要先评估或清洗异常值,或采用秩相关系数。
  4. 数据规模

    • 相关系数在小样本下不稳定;也可使用置信区间或 p-value 来评估统计显著性。
    • 若样本过大,统计显著性很容易通过;此时更要看实际相关系数数值的大小(效果量)。
  5. 类别型/有序型变量

    • 类别变量若无序,仅能做列联表 + 卡方检验等;若有序(Ordinal),可用 Spearman/Kendall。

5. 代码示例(Python)

假设我们有两个数组 xy,并想计算 Pearson、Spearman、Kendall 相关系数:

import numpy as np
from scipy.stats import pearsonr, spearmanr, kendalltau

# 生成示例数据
np.random.seed(42)
x = np.random.randn(100)
y = x * 0.5 + np.random.randn(100)*0.2  # 人为构造线性关系

pearson_corr, pearson_p = pearsonr(x, y)
spearman_corr, spearman_p = spearmanr(x, y)
kendall_corr, kendall_p = kendalltau(x, y)

print(f"Pearson correlation: {pearson_corr:.3f}, p-value={pearson_p:.3e}")
print(f"Spearman correlation: {spearman_corr:.3f}, p-value={spearman_p:.3e}")
print(f"Kendall correlation: {kendall_corr:.3f}, p-value={kendall_p:.3e}")

运行后会得到类似结果(随数据而变):

Pearson correlation: 0.900, p-value=1.23e-30
Spearman correlation: 0.867, p-value=2.45e-27
Kendall correlation: 0.754, p-value=1.10e-24

说明 x、y 明显呈正相关且在统计上非常显著。


6. 小结

  • 相关性(Correlation) 描述变量间的随同变化关系,常用 Pearson(线性)、Spearman(基于秩) 和 Kendall(秩一致性)等系数加以量化,取值范围都在 [ − 1 , + 1 ] [-1, +1] [1,+1]
  • 相关不代表因果,相关分析只是初步探查变量间联系的工具。
  • 实际分析中要考虑非线性、离群值、样本大小、变量类型等因素,合理选择相关系数计算方法。
  • 机器学习数据分析中,相关性广泛应用于特征选择多重共线性检测探索性分析等方面,帮助我们理解数据内部结构和优化模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值