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

news2024/11/16 20:52:50

前言

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

皮尔逊相关性分析一文详解+python实例代码


一、定义

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

 在实际应用或是具体题目中,变量间的连结是无关紧要的,将观测的两个变量的对应元素相减得到一个差值d,则还可以将上述公式转化为:

 其中,d_iX_{i}Y_{i}之间的等级差。

d_i的计算方式为:

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

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

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

三、斯皮尔曼相关系数(Spearman correlation)计算

和上期文章使用的函数一样,可以使用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比较即可。


点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见

 参阅

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/150083.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java + OpenCv 根据PID/VID调用指定摄像头

问题: 主机接入了多个USB摄像头,传统的OpenCv是用摄像头插入usb的下标调取的,如过只接入一个摄像头那直接使用capture.open(0);这种方式调用没有任何问题,多个的话,就会出现问题,因为USB拔插时候对应摄像头…

用原生的方式写vue组件之深度剖析组件内部的原理

目录前言一,对组件的复习及理解二,模块化与组件化三,用原生的方式写vue组件3.1 准备工作3.2 创建组件3.3 组件中的data为什么是函数式写法3.4 组件中的template四,注册组件五,使用组件六,全局组件七&#x…

阿里云服务器ECS购买教程

本文是关于阿里云主机(服务器ECS)购买流程的一个详细介绍。阿里云服务器(Elastic Compute Service,简称 ECS)是一种简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,…

机器学习实战教程(十二):线性回归提高篇

一、前言本篇文章讲解线性回归的缩减方法,岭回归以及逐步线性回归,同时熟悉sklearn的岭回归使用方法,对乐高玩具套件的二手价格做出预测。二、岭回归如果数据的特征比样本点还多应该怎么办?很显然,此时我们不能再使用上…

【Elsevier出版社】1区智能物联网类SCIEI,审稿友好~

1区智能物联网类SCI&EI 【出版社】Elsevier 【期刊简介】IF:5.5-6.0,JCR1区,中科院3区 【检索情况】SCI&EI 双检,正刊 【参考周期】3个月左右录用 【截稿日期】2023.2.28 【征稿领域】 ①物联网辅助的智能解决方案…

送给SQL开发者的一份新年礼物!麦聪软件发布一款纯Web化SQL开发工具,免安装还免费!

2023年新年伊始,麦聪软件再次迎来一个好消息:一款100%自主研发的纯Web化SQL开发工具——SQL Studio 1.0正式发布。这款产品让SQL开发者在Navicat、DBeaver之外,又多一款值得信赖的SQL开发工具可用。 图片 目前,SQL Studio 1.0面向…

qt读写xml文件(DOM和SAX两种方式)

一、XML简介: XML, 全称为扩展标记语言, 可用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据,是Internet环境…

纵向联邦线性回归实现-Federated Machine Learning Concept and Applications论文复现

本实验的算法实现思路来自这篇论文Federated Machine Learning Concept and Applications 文章目录场景介绍同态加密算法python的phe库实现了加法同态加密角色1角色2传统的线性回归纵向联邦线性回归纵向联邦线性回归代码实现导入工具包准备数据使用普通线性回归训练搭建训练过程…

什么神仙操作,用代码能画这样的图

大家好,我是车辙。不知道同学们画流程图或者时序图一般用的什么软件?Visio 还是 Process On 或者语雀? 因为公司原因,在很多情况下,我一般用语雀画流程图或者思维导图。不过凡事也有例外,对于比较简单的图…

你的电路是抄来的还是算出来的?

在你看这篇文章之前,我想提出几点说明: (1)最近在看拉扎维的书,写下来这些东西,这也只是我个人在学习过程中的一点总结,有什么观点大家可以相互交流;(2)不断的…

立创eda专业版学习笔记(3)(隐藏部分飞线)

又到了喜闻乐见的隐藏gnd飞线环节,我发现这个专业版的操作和标志版不一样,我想试一试这个标题的搜索结果,发现有用的结果还是很少,于是我也随便总结了一下,算是添砖加瓦吧。 原来的飞线是这个样子的: 现在我…

巧妙解决appleid问题答案忘了的问题

先说下这个问题解决办法的目标——主要是为了释放被占用的appleid邮箱,而如果你想保留该appleid并且正常使用的话,那么需要付出一点代价,也是可以做到的。 我最近就碰到这种情况,某个邮箱被appleid占用了,问题答案因为…

从实战出发,聊聊缓存数据库一致性

在云服务中,缓存是极其重要的一点。所谓缓存,其实是一个高速数据存储层。当缓存存在后,日后再次请求该数据就会直接访问缓存,提升数据访问的速度。但是缓存存储的数据通常是短暂性的,这就需要经常对缓存进行更新。而我…

Linux常用命令——lsb_release命令

在线Linux命令查询工具 lsb_release 显示发行版本信息 补充说明 LSB是Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息。如果使用该命令时不带参数,则默认加上-v参数。 -v 显示版本信息。 -i 显示发行版的id。 -d 显示该…

2023 Real World CTF 体验赛 --- wp

文章目录misc🐑了拼🐑webEvil MySQL ServerBe-a-Language-ExpertBe-a-Wiki-HackerYummy ApiApacheCommandTextmisc 🐑了拼🐑 游戏类题目,直接打开js文件搜索rwctf,发现flag rwctf{wellcome_to_the_rwct…

跟着开源项目学java8-从支持最大密码重试次数的提交看redis的场景化使用和基于jdk的schedule的异步延迟日志记录策略

我们这里要实现的功能是登录时添加账号登录错误时最大错误次数和锁定时间,功能不复杂,这次提交里面我们主要来看下一个项目里面一个业务功能怎样写更加优雅 核心实现 我们先来看核心实现的思路 首先是 login 方法重写,进入 loadUserByUser…

【vue2】Vue Cli脚手架与VueTools的安装详解

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:Vue Cli脚手架与VueTools的安装详解 目录 一、vue-cli脚手架工具的安装及文件介绍 1.v…

ArcGIS基础实验操作100例--实验72土地利用变化分析

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台:ArcGIS 10.6 实验数据:请访问实验1(传送门) 高级编辑篇--实验72 土地利用变化分析 目录 一、实验背景 二、实验数据 三、实验步骤 (1&…

ArcGIS 制图流程 非常详细

如何在ArcMap中从头到尾制作一幅专题图?你可以看本编教程,从准备数据到最终导出成图,一步一步进行操作,一定可以教会你。 至于为何使用英文版软件,你如果作图就会知道一般经纬度都是利用英文显示,不然最终…

微信小程序实现左边图片右边文字效果

实现的效果&#xff1a; xml布局文件&#xff1a; <view class"chuxingItem"> <image class"img" src"/pages/image/banche.png"></image> <view style"font-size: 30rpx;margin-left: 15rpx;">班车查询</…