python斯皮尔曼spearman相关性分析实例

 更新时间:2023年02月15日 11:00:15   作者:fanstuck  
这篇文章主要为大家介绍了python斯皮尔曼spearman相关性分析实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

相关性分析算是很多算法以及建模的基础知识之一了,十分经典。关于许多特征关联关系以及相关趋势都可以利用相关性分析计算表达。其中常见的相关性系数就有三种:person相关系数,spearman相关系数,Kendall's tau-b等级相关系数。各有各自的用法和使用场景。当然关于这以上三种相关系数的计算算法和原理+代码我都会在我专栏里面写齐全。目前关于数学建模的专栏已经将传统的机器学习预测算法、维度算法、时序预测算法和权重算法写的七七八八了,有这个需求兴趣的同学可以去看看。 皮尔逊相关性分析一文详解+python实例代码

一、定义

经常用希腊字母ρ表示。 它是衡量两个变量的依赖性的非参数指标。 它利用单调方程评价两个统计变量的相关性。 如果数据中没有重复值, 并且当两个变量完全单调相关时,斯皮尔曼相关系数则为+1或−1。斯皮尔曼相关系数被定义成等级变量之间的皮尔逊相关系数。对于样本容量为n的样本,n个原始数据被转换成等级数据,相关系数ρ为:

其中,di为Xi和Yi之间的等级差。 di的计算方式为:

二、斯皮尔曼相关使用场景

斯皮尔曼相关系数的适用条件比皮尔逊相关系数要广,只需两个变量的观测值是成对的等级评定数据,或者是由连续变量观测数据转化得到的等级数据,不论两个变量的总体分布形态、样本容量的大小如何,都可以用斯皮尔曼等级相关系数来进行研究。只要数据满足单调关系(例如线性函数、指数函数、对数函数等)就能够使用。

斯皮尔曼相关系数对于异常值不太敏感,因为它基于排序位次进行计算,实际数值之间的差异大小对于计算结果没有直接影响。

三、斯皮尔曼相关系数计算

和上期文章使用的函数一样,可以使用pandas的函数corr:

DataFrame.corr(method='pearson', 
               min_periods=1,
               numeric_only=_NoDefault.no_default)

参数说明:

method: {‘pearson’, ‘kendall’, ‘spearman’} or callable。Method of correlation。

  • pearson : standard correlation coefficient,皮尔逊系数
  • kendall : Kendall Tau correlation coefficient,肯德尔系数
  • spearman :Spearman rank correlation,斯皮尔曼系数

min_periods:int, optional。每对列所需的最小样本数。目前仅适用于Pearson和Spearman相关性。

numeric_only:bool, default True。仅包含浮点、整型或布尔型数据。

实现起来很简单

rho =df_test.corr(method='spearman')
rho

热力图

plt.rcParams['font.family'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
sns.heatmap(rho, annot=True)
plt.title('Heat Map', fontsize=18)

或者使用scipy的state函数,效果是一样的:

import numpy as np
from scipy import stats
stats.spearmanr(data1,data2)

四、斯皮尔曼相关系数的假设检验

分为两种情况:小样本和大样本

小样本情况(n ≤ 30),直接查临界值表H0:rs = 0; H1:rs ≠ 0

使用得出的斯皮尔曼相关系数 r 与对应的临界值进行比较。

大样本情况下,统计量

 H0:rs = 0; H1:rs ≠ 0,计算检验值z*,并求出对应的p值与0.05比较即可。

以上就是python斯皮尔曼spearman相关性分析实例的详细内容,更多关于python spearman相关性分析的资料请关注脚本之家其它相关文章!

相关文章

  • 详解Python 4.0 预计推出的新功能

    详解Python 4.0 预计推出的新功能

    这篇文章主要介绍了详解Python 4.0 预计推出的新功能,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-07-07
  • Python实现识别图片为文字的示例代码

    Python实现识别图片为文字的示例代码

    这篇文章主要为大家详细介绍了Python如何不调用三方收费接口,照样实现识别图片为文字的功能。文中的示例代码讲解详细,感兴趣的可以了解一下
    2022-08-08
  • 详解pytest分布式执行插件 pytest-xdist 的高级用法

    详解pytest分布式执行插件 pytest-xdist 的高级用法

    这篇文章主要介绍了pytest分布式执行插件 pytest-xdist 的高级用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • 详解Python中HTML解析库pyquery的使用

    详解Python中HTML解析库pyquery的使用

    在工作中难免会遇到解析 HTML 的场景,比如将网页下载下来之后,要解析出里面图片的路径、指定标签里的文本等等,而 pyquery 专门负责做这件事,下面我们就来学习一下他的具体用法吧
    2023-12-12
  • 详解Python遍历列表时删除元素的正确做法

    详解Python遍历列表时删除元素的正确做法

    这篇文章主要介绍了详解Python遍历列表时删除元素的正确做法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • Python实战之用tkinter库做一个鼠标模拟点击器

    Python实战之用tkinter库做一个鼠标模拟点击器

    这篇文章主要介绍了Python实战之用tkinter库做一个鼠标模拟点击器,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • 使用python计算三角形的斜边例子

    使用python计算三角形的斜边例子

    这篇文章主要介绍了使用python计算三角形的斜边例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • 使用Python爬取最好大学网大学排名

    使用Python爬取最好大学网大学排名

    这篇文章主要介绍了如何使用Python爬取最好大学网大学排名,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 一文详解python如何将编写的模块打包上传至pypi

    一文详解python如何将编写的模块打包上传至pypi

    我们此前花了很大功夫写了一个极其简单的web框架myWeb,想要给别人用的时候,需要让别人拷贝源代码才行,这太low了,所以本篇文章会介绍如何将自己写的模块打包上传至pypi,以便让需要的人通过pip进行安装,感兴趣的同学可以参考阅读
    2023-05-05
  • python 监控服务器是否有人远程登录(详细思路+代码)

    python 监控服务器是否有人远程登录(详细思路+代码)

    这篇文章主要介绍了python 监控服务器是否有人远程登录的方法,帮助大家利用python 监控服务器,感兴趣的朋友可以了解下
    2020-12-12

最新评论