Pearson相关系数和Spearman相关系数的区别及说明

 更新时间:2023年05月29日 09:56:14   作者:SunnyRivers  
这篇文章主要介绍了Pearson相关系数和Spearman相关系数的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

前言

相关系数是用以反映变量之间的相关关系程度的统计指标。

其取值范围是[-1,1],当取值为0时表示不相关,取值为[-1,0)表示负相关,取值为(0,-1],表示负相关。

目前常用的两种相关性系数为皮尔森相关系数(Pearson)和斯皮尔曼等级相关系数(Spearman)

简介

1.皮尔森相关系数评估两个连续变量之间的线性关系。

其中:

-1 ≤ p ≤ 1

p接近0代表无相关性

p接近1或-1代表强相关性

2.斯皮尔曼相关系数评估两个连续变量之间的单调关系。在单调关系中,变量趋于一起变化,但不一定以恒定速率变化。

其中:

N是观测值的总数量

斯皮尔曼另一种表达公式:

表示二列成对变量的等级差数。

区别

Pearson和Spearman相关系数的范围可以从-1到+1。

当Pearson相关系数为+1时,意味着,当一个变量增加时,另一个变量增加一致量。

这形成了一种递增的直线。

在这种情况下,Spearman相关系数也是+1。

如果关系是一个变量在另一个变量增加时增加,但数量不一致,则Pearson相关系数为正但小于+1。

在这种情况下,斯皮尔曼系数仍然等于+1。

当关系是随机的或不存在时,则两个相关系数几乎为零。

如果关系递减的直线,那么两个相关系数都是-1。

如果关系是一个变量在另一个变量增加时减少,但数量不一致,则Pearson相关系数为负但大于-1。

在这种情况下,斯皮尔曼系数仍然等于-1

相关值-1或1意味着精确的线性关系,如圆的半径和圆周之间的关系。

然而,相关值的实际价值在于量化不完美的关系。

发现两个变量是相关的经常通知回归分析,该分析试图更多地描述这种类型的关系。

其他非线性关系

Pearson相关系数仅评估线性关系。Spearman相关系数仅评估单调关系。

因此,即使相关系数为0,也可以存在有意义的关系。

检查散点图以确定关系的形式。

该图显示了非常强的关系。

Pearson系数和Spearman系数均约为0。

结论

皮尔森评估的是两个变量的线性关系,而斯皮尔曼评估的两变量的单调关系。

因此,斯皮尔曼相关系数对于数据错误和极端值的反应不敏感。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用Flask和Django中解决跨域请求问题

    使用Flask和Django中解决跨域请求问题

    这篇文章主要介绍了使用Flask和Django中解决跨域请求问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 一文教你如何在Python中忽略烦人的警告

    一文教你如何在Python中忽略烦人的警告

    当你用 Python 写代码时,有时候会看到一些“警告”信息,这些信息不会让代码出错,但会让输出看起来很乱,所以本文为大家整理了一些忽略警告的方法,希望对大家有所帮助
    2024-12-12
  • python动画manim中的颜色ManimColor的使用方法详解

    python动画manim中的颜色ManimColor的使用方法详解

    这篇文章主要介绍了python动画manim中的颜色ManimColor的使用方法,本文通过实例图文展示给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08
  • 在Sublime Editor中配置Python环境的详细教程

    在Sublime Editor中配置Python环境的详细教程

    这篇文章主要介绍在sublime编辑器中安装python软件包,以 实现自动完成等功能,并在sublime编辑器本身中运行build,本文通过实例代码给大家介绍的非常详细,需要的朋友参考下吧
    2020-05-05
  • python中的reduce内建函数使用方法指南

    python中的reduce内建函数使用方法指南

    python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,得到的结果再与第三个数据用func()函数运算,最后得到一个结果
    2014-08-08
  • TensorFlow数据输入的方法示例

    TensorFlow数据输入的方法示例

    这篇文章主要介绍了TensorFlow数据输入的方法示例,主要介绍了4种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • python+opencv边缘提取与各函数参数解析

    python+opencv边缘提取与各函数参数解析

    这篇文章主要介绍了python+opencv边缘提取与各函数参数解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • 基于Python的Milvus完整使用实战案例

    基于Python的Milvus完整使用实战案例

    本教程提供Milvus 2.4.x + Python的实战案例,涵盖向量数据库全流程操作,通过Docker快速部署Milvus服务,适合新手快速上手,对Python Milvus使用感兴趣的朋友跟随小编一起看看吧
    2026-03-03
  • 详解Open Folder as PyCharm Project怎么添加的方法

    详解Open Folder as PyCharm Project怎么添加的方法

    这篇文章主要介绍了详解Open Folder as PyCharm Project怎么添加的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 详解python-nmap的安装与常用方法

    详解python-nmap的安装与常用方法

    ​​python-nmap​​是一个基于​​Python​​的​​nmap​​网络扫描器接口,它允许用户通过 ​​Python​​ 脚本轻松地调用 ​​nmap​​ 的功能,​​nmap​​是一款功能强大的网络扫描和发现工具,本文给大家介绍python-nmap的安装与常用方法,需要的朋友可以参考下
    2024-12-12

最新评论