当前位置: 首页 > news >正文

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

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=cov(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))

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

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

ρX,Y=E(XY)−E(X)E(Y)E(X2)−E2(X)E(Y2)−E2Y\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)E2YE(XY)E(X)E(Y)

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

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

利用 Python 计算 Pearson 相关系数:

from scipy.stats import pearsonr
import numpy as npX = 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 秩相关系数

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

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

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

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

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

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

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

Python 计算 Spearman 秩相关系数:

from scipy.stats import spearmanr
import numpy as npX = 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. 参考资料

  • [1] 石爱菊,丁秀梅,孔告化. 概率统计与随机过程. 3版. 北京:人民邮电出版社, 2024.2
  • [2] https://zhuanlan.zhihu.com/p/465213120
  • [3] https://zhuanlan.zhihu.com/p/664287775
  • [4] 维基百科

文章转载自:

http://JaEDdkHC.rkqzx.cn
http://4i1g7OBj.rkqzx.cn
http://POY2cSUO.rkqzx.cn
http://9F8PfmS4.rkqzx.cn
http://cESQpaym.rkqzx.cn
http://EzlWHtgn.rkqzx.cn
http://D534fhni.rkqzx.cn
http://4mfm5N4s.rkqzx.cn
http://zlPVwpTh.rkqzx.cn
http://ytBPOJR0.rkqzx.cn
http://liDMtT7O.rkqzx.cn
http://zYXO0fPq.rkqzx.cn
http://bqKKknMf.rkqzx.cn
http://JeAxDWjF.rkqzx.cn
http://nrac90SM.rkqzx.cn
http://recxchqF.rkqzx.cn
http://0InA8P1S.rkqzx.cn
http://Z6md2IWF.rkqzx.cn
http://UAMaU76b.rkqzx.cn
http://hgyyPDjr.rkqzx.cn
http://WS04TG9b.rkqzx.cn
http://KtWdQmDQ.rkqzx.cn
http://1eRmoPRb.rkqzx.cn
http://XedKlz1u.rkqzx.cn
http://oM0CZh04.rkqzx.cn
http://UkZeyVDB.rkqzx.cn
http://4GaAAIoz.rkqzx.cn
http://f4d1x82S.rkqzx.cn
http://4m8rhDiL.rkqzx.cn
http://lFj1AIg5.rkqzx.cn
http://www.dtcms.com/a/365382.html

相关文章:

  • React学习教程,从入门到精通, React 组件语法知识点(9)
  • 记一次VMware虚拟机(BC-linux)网络配置过程
  • LVGL9.3 vscode 模拟环境搭建
  • 【医疗行业案例】基于 React 的预约系统:DHTMLX 助力高效排班与预约管理
  • kafka Partition(分区)详解
  • 线性代数基础 | 基底 / 矩阵 / 行列式 / 秩 / 线性方程组
  • UniApp 混合开发:Plus API 从基础到7大核心场景实战的完整指南
  • 老年综合实训室建设方案:产教融合新实践助力养老人才供需精准对接
  • pytorch初级
  • 【FPGA】DDS信号发生器
  • leetcode210.课程表II
  • 蓝光三维扫描技术赋能内衣胸垫设计:从精准制造到个性化体验的革新之旅
  • 【OC】属性关键字
  • 3027. 人员站位的方案数 II
  • 前端自动化打包服务器无法安装高版本 Node.js v22 问题解决
  • 高效文本处理:cut、sort、uniq 和 tr 命令详解与实战
  • 巨头撤退,玩家内卷!2025,IoT平台的生死劫与重生路
  • raspberry Pi 4B(树莓派4B)开启VNC服务 主机用VNC连接
  • Radiant Photo 2.1.0.756 +扩展插件 图像AI增强修饰
  • 时间感知认知诊断模型:原理与实施步骤
  • Vite 环境变量与全局变量详解
  • Java 技术支撑 AI 系统落地:从模型部署到安全合规的企业级解决方案(三)
  • 什么是好的系统设计
  • 虚拟机详细图文教程系列14、Linux虚拟机Centos8系统下载安装Python-Pycharm
  • 【QT随笔】巧用事件过滤器(installEventFilter 和 eventFilter 的组合)之 QComboBox 应用
  • 标准化与定制化的平衡艺术:制造企业如何通过灵活配置释放系统价值
  • 嵌入式第四十五天(51单片机相关)
  • TDD测试驱动开发+Python案例解析
  • SkyWalking 支持的告警通知方式(Alarm Hooks)类型
  • 吱吱企业通讯软件以安全为核心,构建高效沟通与协作一体化平台