Pearson相关系数和Spearman相关系数的区别

article/2025/9/20 12:26:36

Pearson相关系数和Spearman相关系数的区别

  • 1、协方差、相关系数
  • 2、Pearson相关系数
  • 3、Spearman相关系数
    • 3.1 定义
    • 3.2 什么时候用
  • 4、两者的区别点
    • 4.1 线性相关与单调相关
    • 4.2 前提假设不同
    • 4.3 变量正态分布与否
  • 5、实例展示
  • 6、参考资料

  参考资料前两个博客讲解的非常详细,因本人想要自己梳理下,才有此文,请直接跳转即可。

1、协方差、相关系数

(1)简单来说
  协方差:变量具有 同增、同减 的趋势。趋势越接近,则相关性越大,反之越小。
  相关系数:协方差的标准化,把数值控制在[-1,1]的区间表示。方便比较多组变量的相关性强弱。

(2)作用上来说
  协方差描述两个变量之间相关的 方向,相关系数解释相关的 强度

(3)复杂点说:协方差是随机变量离差之积,与随机变量分布函数乘积的积分,或者是就是离差乘积的期望。

(4)相关系数范围
  相关系数是用以反映变量之间的相关关系程度的统计指标。其取值范围是[-1,1],当取值为0时表示不相关,取值为[-1,0)表示负相关,取值为(0,-1],表示负相关。

方差与协方差的区别:
如图所示

参考视频:十分钟理解协方差和相关系数、如何通俗地解释协方差

 

2、Pearson相关系数

  皮尔森相关系数评估两个连续变量之间的 线性关系,是用来衡量两个数据集的线性相关程度。
  数据集要 符合正态分布、无异常值、连续变量 等特定。
特点
 

3、Spearman相关系数

3.1 定义

  斯皮尔曼相关系数评估两个连续变量之间的单调关系。在单调关系中,变量趋于一起变化,但不一定以恒定速率变化。
  它也被称为等级相关或者秩相关(即rank)。

3.2 什么时候用

  当 (1)分布严重非正态;(2)变量非连续;(3)异常值影响大, 的时候,要舍弃Pearson相关系数

4、两者的区别点

4.1 线性相关与单调相关

  Pearson相关系数是用来衡量两个数据集(变量)的线性相关程度。而Spearman相关系数不关心两个数据集是否线性相关,而是单调相关。
  在单调关系中,变量倾向于沿着相同的相对方向移动,但不一定以恒定的速率移动。在线性关系中,变量沿着相同的方向以恒定的速率移动

4.2 前提假设不同

  Pearson相关假设数据集在同一条直线上,而Spearman只要求单调递增或者递减,所以Pearson的统计效力比Spearman要高。
  更重要的是,要根据实际情况选择正确的假设。

  比如,某个实验做了两次技术或者生物学重复,那有理由假设这两次重复线性相关。而如果是一个基因和另一个受到调控的基因的表达水平,或者某个基因顺式作用元件的染色质开放程度,和这个基因表达水平之间的关系就可能只需要假设单调相关。

4.3 变量正态分布与否

  Pearson相关系数要求数据集是连续型变量,并且符合正态分布,而Spearman相关系数没有这个要求;
  Pearson相关系数在出现奇异值,或者长尾分布的时候稳定性差,不太可靠,而Spearman对于数据错误和极端值的反应不敏感。
 

5、实例展示

相关系数实例展示
(1)上面两张图
  如果对数据进行线性变换(y = ax + b; a ≠ 0),两者相关系数的绝对值都不会发生变化(要考虑下正负);
  上面两个图既是单调关系,也是线性关系

(2)中间两张图
  如果对数据进行单调但不线性的变换(比如最常见的log scale),Spearman相关系数的绝对值也不会发生变化。
  两张图显示两个变量同时上升,但不以相同的速率上升。此关系是单调的,但不是线性的

(3)下面两张图
  左下图显示了当关系是随机的或不存在时,则两个相关系数几乎为零。
  右下图显示了非常强的关系。Pearson系数和Spearman系数均约为0。

 

6、参考资料

1、Pearson相关系数和Spearman相关系数的区别
2、救救孩子!Spearman、Pearson相关系数傻傻分不清?
3、统计学与质量051 - 相关性 - 自变量与因变量 协方差(Covariance)
4、统计学与质量052 - 皮尔逊 (Pearson) 相关系数 & 斯皮尔曼 (Spearman)相关系数


http://chatgpt.dhexx.cn/article/ynfuboth.shtml

相关文章

Pearson相关系数, Spearman相关系数,Kendall相关系数

三个相关性系数(pearson, spearman, kendall)反应的都是两个变量之间变化趋势的方向以及程度,其值范围为-1到1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大表示相关性越强。 1.…

数学建模:相关性分析学习——皮尔逊(pearson)相关系数与斯皮尔曼(spearman)相关系数

目录 前言 一、基本概念及二者适用范围比较 1、什么是相关性分析 2、什么是相关系数 3、适用范围比较 二、相关系数 1.皮尔逊相关系数(Pearson correlation) 1、线性检验 2、正态检验 3、求相关系数 2、斯皮尔曼相关系数(Spearman…

斯皮尔曼相关(Spearman correlation)系数概述及其计算例

目录 1. 什么是秩相关系数? 2. 单调性,monotonicity 3. 斯皮尔曼秩相关系数 4. 什么时候使用斯皮尔曼秩相关系数呢? 5. 斯皮尔曼秩相关系数计算公式 6. 斯皮尔曼秩相关系数计算例 6.1 手动计算 6.2 scipy函数 6.3 pandas corr() 6…

一文数学数模-相关性分析(二)斯皮尔曼相关(spearman)相关性分析一文详解+python实例代码

前言 相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达。其中常见的相关性系数就有三种:person相关系数,spearman相关系数,Kendalls tau-b等级相关系数。各有各自的用法和使用场景。当然关于这以…

斯皮尔曼(spearman)相关系数python代码实现

简介 斯皮尔曼等级相关系数(简称等级相关系数,或称秩相关系数,英语:Spearmans rank correlation coefficient或Spearmans ρ)。一般用或者表示。它是衡量两个变量的相关性的无母数指标。它利用单调函数评价两个统计变量…

数学建模——相关系数(4)——斯皮尔曼相关系数(spearman)

文章目录 引述一、斯皮尔曼相关系数(spearman)1.定义12.定义23.使用MATLAB计算spearman相关系数4. 斯皮尔曼相关系数的假设检验 二、斯皮尔曼相关系数与皮尔逊相关系数的比较 引述 经过之前几节的学习,我们了解并掌握了皮尔逊相关系数。在学…

Spearman相关系数的含义及适用场景

斯皮尔曼相关系数计算工具: https://geographyfieldwork.com/SpearmansRankCalculator.html斯皮尔曼相关系数的解释:https://statisticsbyjim.com/basics/spearmans-correlation/ 统计中,斯皮尔曼相关系数是皮尔逊相关系数的非参数替代方法。对遵循曲线、…

SPSS——相关分析——Spearman秩相关系数

简介 斯皮尔曼等级相关(Spearman’s correlation coefficient for ranked data)主要用于解决称名数据和顺序数据相关的问题。适用于两列变量,而且具有等级变量性质具有线性关系的资料。由英国心理学家、统计学家斯皮尔曼根据积差相关的概念推…

ML之Spearman:Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略

ML之Spearman:Spearman相关系数(斯皮尔曼等级相关系数)的简介、案例应用之详细攻略 目录 Spearman相关系数(斯皮尔曼等级相关系数)的简介 (1)、Spearman相关系数(斯皮尔曼等级相关系数)的计算逻辑 Spearman相关系数(斯皮尔曼等级相关系数)的的案例应用 Spearman相…

斯皮尔曼spearman相关系数

斯皮尔曼spearman相关系数 斯皮尔曼相关系数定义: X和Y为两组数据,其斯皮尔曼(等级)相关系数: r s 1 − 6 ∑ i 1 n d i 2 n ( n 2 − 1 ) r_s1-\frac{6\sum\limits_{i1}^nd_i^2}{n(n^2-1)} rs​1−n(n2−1)6i1∑n​di2​​ …

数据库知识及数据库编程

数据库的概念 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数…

数据库编程与设计—SQL语言

一、SQL语言基础 1 什么是SQL 结构化查询语言结构化查询语言(Structured Query Language)简称 SQL(发音:sequal[si:kwəl]),是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本…

JDBC --- Java的数据库编程

目录 🍈一、数据库编程的必备条件 🍉二、什么是 JDBC JDBC 的优势 🍊三、JDBC 使用流程 以及 常用接口和类的讲解 🍡0. 前置工作 🍭1. 引入依赖 🍬2. 数据库连接Connection 🍬3. 创建操…

数据库—mysql、数据库编程(API)

1. Linux平台准备 &#xff08;1&#xff09;安装SDK开发包的命令 sudo apt-get install libmysqlclient-dev &#xff08;2&#xff09;编译时需要链接的库:-lmysqlclient 2. mysql 的初始化和清理 #include <mysql/mysql.h> MYSQL mysql1; //创建句柄 mysql_init(&…

8.数据库编程

一、思维导图 二、基础梳理 1.游标的使用步骤 ① 声明游标。 用DECLARE语句为一条SELECT语句定义游标 EXEC SQL DECLARE<游标名> CURSOR FOR <SELECT语句>;使用T-SQL语句生成一个结果集&#xff0c;并且定义游标的特征&#xff0c;如游标中的记录是否可以修改。…

数据库编程----Mysql简介

数据库编程----Mysql简介 文章目录 一、什么是Mysql二、Mysq的l特点三、总结 一、什么是Mysql Mysql是一个关系型数据库管理系统二、Mysq的l特点 三、总结 Mysql是一个关系型的数据管理系统

6.数据库编程

PL-SQL编程 1.PL/SQL的特点 PL(Procedure Language)/SQL&#xff09;是Oracle在数据库中引入的一种过程化的编程语言。 PL/SQL是对SQL的扩充&#xff1a;具有为程序开发而设计的特性&#xff1b; 在PL/SQL 中可以使用变量&#xff0c;进行流程控制&#xff0c;来实现比较复杂…

编程语言与数据库

从新近的TIOBE编程语言排名可看到&#xff0c;Java、C依然稳定地在最受欢迎前列。 因具备图灵完备性&#xff0c;2018年才重新被纳入清单的SQL语言已快速出现在第9位置&#xff08;7月&#xff09;——这似乎意味着&#xff0c;传统的RDBMS(关系数据库系统)仍然是应用的主流&am…

java数据库编程入门

一、JDBC概述 1、JDBC是Java数据库连接技术的简称&#xff0c;提供连接各种常用数据库的能力。 2、JDBC模型 JAVA程序一般通过调用JDBC所定义的类和接口来处理数据库中的数据&#xff0c;也就是通过调用JDBC的驱动程序实现对数据库的操作。 3、JDBC操作数据库过程 基于JDBC…

Python之数据库编程

目录 一、MySQL数据库的使用 数据库相关操作 二、数据库增删改查 增加 修改 删除 三、数据库标准写法 一、MySQL数据库的使用 建表 CREATE TABLE py_student( id INTEGER primary key auto_increment, name INTEGER not null, gender varchar(11) default 男 , birthday d…