数学建模:数据相关性分析(Pearson和 Spearman相关系数)含python实现

  相关性分析是一种用于衡量两个或多个变量之间关系密切程度的方法。相关性分析通常用于探索变量之间的关系,以及预测一个变量如何随着另一个变量的变化而变化。在数学建模中,这是常用的数据分析手段。
  相关性分析的结果通常用相关系数来表示,相关系数的取值范围为-1到1,其中1表示完全正相关,-1表示完全负相关,0表示没有相关性。
我们常用的相关系数包括:

  1. Pearson相关系数:用于衡量两个连续变量之间的线性关系。取值范围在 -1 到 1 之间,其中 -1 表示完全负相关,1 表示完全正相关,0 表示无线性关系。
  2. Spearman等级相关系数:用于衡量两个变量之间的单调关系,不要求变量呈线性关系。对于等级或顺序数据更为适用。

  在使用相关系数时,我们需要注意:样本越大,相关系数估计越稳定;有些相关系数对数据分布的假设比较敏感,确保你的数据满足相关方法的前提条件;相关性不代表因果关系,即使两个变量相关,也不能得出一个是因为另一个的结论。那么,对于这两种相关系数,我们如何选择呢?

Pearson相关系数

  Pearson相关系数是一种用于度量两个连续变量之间线性关系强度和方向的统计量。它通常用字母 τ \tau τ 表示,取值范围在 -1 到 1 之间。
  计算皮尔逊相关性时,要了解它要符合5个假设:连续变量;两个变量之间存在一定线性关系;两个变量应该大致符合正态分布;数据集中每个观测数据包括成对数据;数据集中不应包括极端异常值数据。
公式为: τ = ∑ ( x i − x ‾ ) ( y i − y ‾ ) ∑ ( x i − x ‾ ) 2 ⋅ ∑ ( y i − y ‾ ) 2 \tau=\frac {\sum(x_i-\overline x)(y_i-\overline y)}{\sqrt{\sum(x_i-\overline x)^2\cdot\sum(y_i-\overline y)^2}} τ=(xix)2(yiy)2 (xix)(yiy)  其中, x i x_i xi y i y_i yi分别是两个变量的观察值, x ‾ \overline x x y ‾ \overline y y分别是两个变量的均值。
  Pearson相关系数假设两个变量之间的关系是线性的,因此它可能不适用于非线性关系的情况。在数据中存在异常值或数据不符合正态分布的情况下,Pearson相关系数的解释力也可能受到影响。在这些情况下,Spearman等级相关系数可能更为适用,因为它们对于非线性关系和异常值更具有鲁棒性。

Spearman等级相关系数

  Spearman等级相关系数(Spearman’s rank correlation coefficient),通常用符号 ρ \rho ρ表示,是一种用于度量两个变量之间的单调关系(不一定是线性关系)的统计量。Spearman相关系数基于变量的等级或秩次而不是具体的数值。这使得它对于数据的分布形状和是否满足正态分布的要求都相对较为鲁棒。
  计算Spearman等级相关系数的步骤:对于每个变量,将其观察值按照大小进行排名,即从最小到最大依次排列,并用秩次表示;对于每一对观察值,计算其等级差(即秩次差);计算等级差的平方和;使用公式将等级差的平方和转换为Spearman相关系数。
  设 D i D_i Di为变量X和Y对应的秩次差,n为样本大小,Spearman相关系数的计算公式为: ρ = 1 − 6 ∑ D i 2 n ( n 2 − 1 ) \rho=1-\frac{6\sum D_i^2}{n(n^2-1)} ρ=1n(n21)6Di2  Spearman相关系数的取值范围在 -1 到 1 之间:当 ρ=1 时,表示存在完全的正单调关系,即一个变量的增加伴随着另一个变量的增加;当 ρ=−1 时,表示存在完全的负单调关系,即一个变量的增加伴随着另一个变量的减少;当 ρ=0 时,表示两个变量之间没有单调关系。
  Spearman相关系数对于非线性关系和异常值的敏感性相对较低,因此在数据不满足正态分布、存在异常值或者存在非线性关系的情况。

python代码实现


import pandas as pd# 示例数据
df = pd.DataFrame({'data1': [1, 2, 3, 4, 5], 'data2': [5, 4, 3, 2, 1]})# 计算 Pearson 相关系数
pearson_corr = df['data1'].corr(df['data2'])# 计算 Spearman 等级相关系数
spearman_corr = df['data1'].corr(df['data2'], method='spearman')print("Pearson 相关系数:", pearson_corr)
print("Spearman 等级相关系数:", spearman_corr)# Pearson 相关系数: -0.9999999999999999
# Spearman 等级相关系数: -0.9999999999999999

相关系数热力图:
在这里插入图片描述

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

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

相关文章

【LangChain-04】利用权重和偏差跟踪和检查LangChain代理的提示

利用权重和偏差跟踪和检查LangChain代理的提示 一、说明 考虑到(生成)人工智能空间,(自主)代理现在无处不在!除了更强大且幸运的是开放的大型语言模型(LLM)之外,LangCh…

测试用例流程设计

测试用例流程设计 简介 测试用例流程设计是指在进行软件测试时,对测试用例的整体规划和组织的过程。它涉及到制定一系列测试用例,以确保对软件系统的各个方面进行全面、系统和有效的测试。 现有测试用例的问题 可维护性不高 低模块化性:测…

re:从0开始的CSS学习之路 2. 选择器超长大合集

0. 写在前面 虽然现在还是不到25的青年人,有时仍会感到恐慌,害怕不定的未来,后悔失去的时间,但细细想来,只有自己才知道,再来一次也不会有太多的改变。 CSS的选择器五花八门,而且以后在JavaScr…

docker部署docker管理工具easydockerweb

重要提示 功能比较少,建议体验一下即可 安装 docker run -it -d -p 10041:3000 -e EDW_USERNAMEadmin -e EDW_PASSWORDadmin -v /var/run/docker.sock:/var/run/docker.sock qfdk/easydockerweb 使用 概览 镜像管理 容器管理

vue - 指令(一)

看文章可以得到什么? 1.可以快速的了解并会使用vue的指令 2.可以加深你对vue指令的理解,知道每个指令代表什么功能​​​​​​​ 目录 什么是vue的指令?​​​​​​​ vue常见指令的使用 v-html v-show v-if v-else 和v-else-…

Spring Data Envers 数据审计实战

随着各行各业信息化发展,决策者们越来越意识到数据版本追踪的重要性,尤其是上市公司,数据对于他们尤为重要。考虑到研发成本,对重要表单数据支持页面级的修改历史查看、对所有业务数据支持DB级的版本查看是一个不错的选择。 对于…

设计模式学习笔记(一):基本概念;UML

文章目录 参考面向对象的设计原则创建型模式结构型模式行为型模式 UML视图图(Diagram)模型元素(Model Element)通用机制类之间的关系关联关系复杂!!聚合关系组合关系 依赖关系泛化关系接口与实现关系 参考 https://github.com/fa…

2.0 Zookeeper 安装配置

Linux 安装 zookeeper 下载地址为: Apache ZooKeeper。 选择一稳定版本,本教程使用的 release 版本为3.4.14,下载并安装。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz,看到如下界…

c#cad 创建-圆(二)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 这段代码是一个AutoCAD插件,用于在模型空间中创建一个圆形。 首先,我们需要定义一个命令类CreateCircleCommand,并在命名空间CreateCircleInCad中声明。 在CreateCircleCommand类中&a…

【技能树学习】Git入门——练习题解析

前言 本篇文章给出了Git入门技能树中部分的练习题解析,包括分支管理,Git标签,在Mac和Windows上使用GitVSCode的步骤。强调了git cherry-pick不直接支持从标签中选择提交,git tag -d只能删除本地标签,Mac系统的终端可以…

23、数据结构/查找相关练习20240205

一、请编程实现哈希表的创建存储数组{12,24,234,234,23,234,23},输入key查找的值&#xff0c;实现查找功能。 代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> #include<math.h> typedef struct Node {int data;struct n…

flutter使用webview_flutter在安卓和ios上打开网页

webview_flutter仓库地址&#xff1a;webview_flutter | Flutter package github地址&#xff1a;https://github.com/flutter/packages/tree/main/packages/webview_flutter/webview_flutter 要打开非https协议的网页&#xff0c;需要在安卓平台上添加权限&#xff1a;andro…

若依整合mybatis-plus

文章目录 1.注释掉原本的MybatisConfig2. 将mybatis的配置文件改为mybatis-plus文件 ##前言 出先下列异常&#xff1a; 请求地址’/prod-api/user’,发生未知异常. org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.ruoyi.web.mapper.Us…

003集—三调数据库添加三大类字段——arcgis

在国土管理日常统计工作中经常需要用到三大类数据&#xff08;农用地、建设用地、未利用地&#xff09;&#xff0c;而三调数据库中无三大类字段&#xff0c;因此需要手工录入三大类字段&#xff0c;并根据二级地类代码录入相关三大类名称。本代码可一键录入海量三大类名称统计…

数字图像处理(实践篇)四十五 OpenCV-Python 使用ORB算法(包括算法概述)检测图像上的特征点

目录 一 ORB算法 二 涉及的函数 三 实践 ORB: An efficient alternative to SIFT or SURF SIFT 和 SURF 已获得专利,使用需要付费。但是ORB并不需要。ORB 最重要的一点是它来自“

【日常总结】SourceTree 1.5.2.0 更换用户名称和密码

一、场景 二、问题 三、解决方案 > 方案一&#xff1a;删除缓存文件 > 方案二&#xff1a;更新最新版本&#xff0c;可以直接修改密码&#xff08;推荐&#xff09; 方案一&#xff1a;删除缓存文件 Stage 1&#xff1a;设置显示隐藏文件 Stage 2&#xff1a;打开…

070:vue+cesium: 利用canvas设置线性渐变色材质

第070个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置线性渐变色的材质,这里使用canvas的辅助方法。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共104行)专栏目标示例效果 配置方式 1)查看基础…

Android平台GB28181设备接入模块实现后台service按需回传摄像头数据到国标平台侧

技术背景 我们在做Android平台GB28181设备对接模块的时候&#xff0c;遇到这样的技术需求&#xff0c;开发者希望能以后台服务的形式运行程序&#xff0c;国标平台侧没有视频回传请求的时候&#xff0c;仅保持信令链接&#xff0c;有发起视频回传请求或语音广播时&#xff0c;…

数字孪生网络攻防模拟与城市安全演练

在数字化浪潮的推动下&#xff0c;网络攻防模拟和城市安全演练成为维护社会稳定的不可或缺的环节。基于数字孪生技术我们能够在虚拟环境中进行高度真实的网络攻防模拟&#xff0c;为安全专业人员提供实战经验&#xff0c;从而提升应对网络威胁的能力。同时&#xff0c;在城市安…

GEE数据集——全球健康地图项目Global Healthsites Mapping Project

Global Healthsites Mapping Project Healthsites.io和全球健康网站绘图项目的使命是帮助向政府、非政府组织和私营部门提供准确的最新健康设施信息。医疗机构登记簿是一个国家内运作良好的医疗信息系统的基石。准确和最新的数据提供了基础数据&#xff0c;有助于推动服务可用…