当前位置: 首页 > news >正文

相关性检验

文章目录

  • Pearson相关系数
  • Spearman等级相关系数
  • Cochran's Q检验
  • Kappa一致性系数
  • Kendall相关系数
  • 实例分析
  • 总结

在数据分析的广阔天地中,相关性检验是探索变量间关系的一把钥匙。本文将带领大家了解几种常用的相关性检验方法:Pearson、Spearman、Cochran’s Q、Kappa和Kendall。我们将深入每种方法的计算公式,并以几个实例,展示如何使用这些方法来计算相关性。

Pearson相关系数

Pearson相关系数是衡量两个连续变量线性相关程度的指标。其值介于-1到1之间,公式如下:

r Pearson = ∑ ( X i − X ˉ ) ( Y i − Y ˉ ) ∑ ( X i − X ˉ ) 2 ∑ ( Y i − Y ˉ ) 2 r_{\text{Pearson}} = \frac{\sum (X_i - \bar{X})(Y_i - \bar{Y})}{\sqrt{\sum (X_i - \bar{X})^2}\sqrt{\sum (Y_i - \bar{Y})^2}} rPearson=(XiXˉ)2 (YiYˉ)2 (XiXˉ)(YiYˉ)

其中, X i X_i Xi Y i Y_i Yi 是观测值, X ˉ \bar{X} Xˉ Y ˉ \bar{Y} Yˉ 是它们的均值。

Spearman等级相关系数

Spearman等级相关系数适用于非参数数据,衡量两个变量的单调关系。计算公式如下:

r Spearman = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) r_{\text{Spearman}} = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} rSpearman=1n(n21)6di2

d i d_i di 是排名差, n n n 是观测值数量。

Cochran’s Q检验

Cochran’s Q检验用于三个或更多个相关比例的差异性检验。其公式为:

Q = k − 1 2 + 1 2 × n ∑ ( p i − p overall ) 2 Q = k - \frac{1}{2} + \frac{1}{2 \times n} \sum (p_i - p_{\text{overall}})^2 Q=k21+2×n1(pipoverall)2

k k k 是比例的数量, p i p_i pi 是第 i i i 个比例, p overall p_{\text{overall}} poverall 是所有比例的平均值。

Kappa一致性系数

Kappa一致性系数用于衡量两个评估者在分类数据上的一致性。其计算公式如下:

κ = p o − p e 1 − p e \kappa = \frac{p_o - p_e}{1 - p_e} κ=1pepope

p o p_o po 是观察到的一致性比例, p e p_e pe 是偶然一致性的比例。

Kendall相关系数

Kendran的tau-b相关系数是衡量两个变量相关性的非参数方法。其计算公式如下:

τ b = 2 ( number of concordant pairs ) − 2 ( number of discordant pairs ) n ( n − 1 ) \tau_b = \frac{2(\text{number of concordant pairs}) - 2(\text{number of discordant pairs})}{n(n-1)} τb=n(n1)2(number of concordant pairs)2(number of discordant pairs)

实例分析

实例数据

学生测试1测试2
A7882
B8580
C9088
D6065
E7075

Pearson相关系数
X ˉ = 78 + 85 + 90 + 60 + 70 5 = 76 \bar{X} = \frac{78 + 85 + 90 + 60 + 70}{5} = 76 Xˉ=578+85+90+60+70=76
Y ˉ = 82 + 80 + 88 + 65 + 75 5 = 79 \bar{Y} = \frac{82 + 80 + 88 + 65 + 75}{5} = 79 Yˉ=582+80+88+65+75=79
r Pearson = ( 78 − 76 ) ( 82 − 79 ) + . . . + ( 70 − 76 ) ( 75 − 79 ) ( ( 78 − 76 ) 2 + . . . + ( 70 − 76 ) 2 ) ( ( 82 − 79 ) 2 + . . . + ( 75 − 79 ) 2 ) r_{\text{Pearson}} = \frac{(78-76)(82-79) + ... + (70-76)(75-79)}{\sqrt{((78-76)^2 + ... + (70-76)^2)((82-79)^2 + ... + (75-79)^2)}} rPearson=((7876)2+...+(7076)2)((8279)2+...+(7579)2) (7876)(8279)+...+(7076)(7579)
r Pearson = 0.967 r_{\text{Pearson}} = 0.967 rPearson=0.967(四舍五入到小数点后三位)

Spearman等级相关系数
等级分配:

  • 测试1: A(3), B(5), C(5), D(1), E(2)
  • 测试2: A(4), B(3), C(5), D(1), E(3)

计算 d i d_i di并应用公式,我们得到:
r Spearman = 1 r_{\text{Spearman}} = 1 rSpearman=1(因为排名完全一致)

Kendall相关系数
计算一致对和不一致对的数量:

  • 一致对:(A,B), (B,C), (C,E) - 3对
  • 不一致对:(A,C), (A,D), (A,E), (B,D), (B,E), (D,E) - 6对
    τ b = 2 ( 3 ) − 2 ( 6 ) 5 ( 5 − 1 ) = − 4 8 = − 0.5 \tau_b = \frac{2(3) - 2(6)}{5(5-1)} = -\frac{4}{8} = -0.5 τb=5(51)2(3)2(6)=84=0.5(负相关)

Python代码

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from scipy.stats import pearsonr, spearmanr# 定义数据
data = {'测试1': [78, 85, 90, 60, 70],'测试2': [82, 80, 88, 65, 75]
}# 创建DataFrame
df = pd.DataFrame(data)# 计算Pearson和Spearman相关系数
pearson_corr, _ = pearsonr(df['测试1'], df['测试2'])
spearman_corr, _ = spearmanr(df['测试1'], df['测试2'])# 创建相关性矩阵
corr_matrix = {'测试1': [pearson_corr, spearman_corr],'测试2': [spearman_corr, 1]  # 假设测试1和测试2完全相关
}# 创建DataFrame
corr_df = pd.DataFrame(corr_matrix, index=['测试1', '测试2'])# 绘制热力图
sns.heatmap(corr_df, annot=True, cmap='coolwarm', fmt=".2f")
plt.title('相关性热力图')
plt.show()

总结

通过上述分析,我们可以看到不同相关性检验方法如何揭示变量间的关系。每种方法都有其特定的应用场景和优势。选择合适的方法来分析你的数据,可以更准确地理解变量间的相互作用。

相关文章:

相关性检验

文章目录 Pearson相关系数Spearman等级相关系数Cochrans Q检验Kappa一致性系数Kendall相关系数实例分析总结 在数据分析的广阔天地中,相关性检验是探索变量间关系的一把钥匙。本文将带领大家了解几种常用的相关性检验方法:Pearson、Spearman、Cochran’s…...

【python】Django运行报错分析:ImproperlyConfigured 错误解决办法

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...

AS01/AS11 创建固资和子资产

AS01:创建资产卡片 定义该资产的折旧费用,应该归结到哪个成本中心。 如果一台设备停止使用,可以勾选。停止折旧。 该界面维护折旧码和折旧的时间。 维护完之后点击保存。 系统生成一个资产卡片号。 AS02-修改资产卡片号 更改不同时间段&…...

vue3数字动画插件countup.js

countup.js 是一个轻量级的 JavaScript 库,允许你为网站上显示统计数据或计数器时平滑地动画化数字。CountUp 类被用来创建计数器实例,可以平滑地从一个数值变化到另一个数值。 只是用户视觉更好一些。 1、安装插件 npm i countup.js2、个人是封装了组件…...

aspeed2600 GPIO分析与适配ipmitool power status, ipmitool power on/off

1.说明 本节以x86-power-control/src/power_control.cpp为基础,分析整个GPIO的调用流程,实现简单的ipmitool power on/off,ipmitool power status的管理。 1.资源:x86-power-control:https://github.com/openbmc/x86-power-control2.相关文件: meta-ph…...

在C#中配置ini文件以及封装ini类

在C#中使用 DllImport 属性从 kernel32.dll 导入函数来写入和读取Windows的INI文件,你可以使用 WritePrivateProfileString 来写入数据,使用 GetPrivateProfileString 来读取数据。 以下是如何使用这些函数的示例: 写入INI文件 using Syst…...

使用git上传代码到github

1、设置用户名及邮箱 git config user.name"你的用户名"git config user.email"xxxxx.com" 2、查看配置 git config -l 3、生成秘钥 ssh-keygen -t rsa 根据上图中红框标出的id_rsa.pub地址,找到它,使用txt文件打开,复…...

滚珠花键:新能源汽车传动系统的核心动力传递者

在日常生活中,汽车已经成为了必不可少的交通工具,尤其是新能源汽车。而滚珠花键作为传动系统中的重要组成部分,在传动系统方面的作用不容忽视。 随着科技的不断发展,汽车行业也在不断进步,滚珠花键作为高精度的机械传动…...

LeetCode 149, 347, 31

文章目录 149. 直线上最多的点数题目链接标签思路总体思路如何判断 一个点 在 由两点确定的直线 上 代码 347. 前 K 个高频元素题目链接标签思路代码 31. 下一个排列题目链接标签思路代码 149. 直线上最多的点数 题目链接 149. 直线上最多的点数 标签 几何 数组 哈希表 数学…...

操作系统(信号处理)

一、信号介绍 什么是中断: 当进程接收到消息后中止当前正在执行的任务,转而执行其它任务,等待其它任务执行完毕后再返回继续执行。这种执行模式称为中断,分为硬件中断和软件中断两种 什么是信号: 信号是UNIX、类UNI…...

[MRCTF2020]Ezpop

[MRCTF2020]Ezpop 题目是pop,考的其实就是pop链,可以自己先学学,啥也不会QAQ php反序列化之pop链_pop3.phpwelcome-CSDN博客 POP 面向属性编程(Property-Oriented Programing) 常用于上层语言构造特定调用链的方法,与二进制利用…...

24暑假算法刷题 | Day27 | 贪心算法 I | LeetCode 455. 分发饼干,376. 摆动序列,53. 最大子数组和

目录 455. 分发饼干题目描述题解 376. 摆动序列题目描述题解 53. 最大子数组和题目描述题解 455. 分发饼干 点此跳转题目链接 题目描述 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i&#x…...

Golang 的空接口有什么用?

空接口在 Go 语言中具有多种重要用途: 实现通用的数据结构 例如,可以创建一个包含空接口类型元素的切片或映射,从而能够存储不同类型的值。这在处理多种未知类型的数据时非常有用。比如,一个日志系统可能会将不同类型的日志消息&a…...

计算机毕业设计选题推荐-课程教学平台-Java/Python项目实战

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Py…...

健身日记之倒立俯卧撑学习——起始日2024.6.4

文章目录 目录 前言上期预期 昔日计划 新目标计划 瓶颈突破尝试 参考视频及文章 前言 两个月过去了,已经有所突破了,但是比较预期还是有较大差距,忘记更新csdn了,平时抖音视频号记录的多一些。 上期预期 2024.6.4开始尝试突…...

pikachu文件包含漏洞

一:漏洞基础 程序在引用文件的时,引用的文件名存在可控的情况,传入的文件名没有经过合理的校验或校验不严,从而操作了预想之外的文件,就有可能导致文件泄漏和恶意的代码注入; 文件包含漏洞概念 在PHP程序…...

09.FreeRTOS时间片调度与任务相关函数

文章目录 09. FreeRTOS时间片调度与任务相关函数1. FreeRTOS时间片调度2. 任务状态查询API函数3. 任务时间统计API函数 09. FreeRTOS时间片调度与任务相关函数 1. FreeRTOS时间片调度 时间片调度简介: 时间片调度实验流程: 核心代码: 开…...

git分支介绍

git branch 查看当前分支情况 可以看见当前只有一个分支叫main,也就是默认分支,可以理解为树的主干,git早期版本中默认分支叫master 命令行创建一个新分支 git branch [分支名]在创建之后,如果需要切换到新分支需要git switc…...

vm虚拟机下安装CentOS7系统

VMware16安装CentOS7 1.启动之前安装的VM 具体VMware安装过程 2.配置Linux(centos7)的镜像文件 选择安装镜像文件 4.开启虚拟机 开始读秒安装 选择安装过程中使用的语言,这里选择英文、键盘选择美式键盘。点击Continue 首先设置时间…...

python-报数(赛氪OJ)

[题目描述] 有 n 人围成一圈,顺序排号。 从第 1 个人开始报数(从 1 到 3 报数),凡是报到 3 的人退出圈子,问最后留下的是原来的第几号的那位。输入格式: 初始人数 n 。输出格式: 最后一人的初始…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

MFC内存泄露

1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...

基础测试工具使用经验

背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解

JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...

LangFlow技术架构分析

🔧 LangFlow 的可视化技术栈 前端节点编辑器 底层框架:基于 (一个现代化的 React 节点绘图库) 功能: 拖拽式构建 LangGraph 状态机 实时连线定义节点依赖关系 可视化调试循环和分支逻辑 与 LangGraph 的深…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O…...

离线语音识别方案分析

随着人工智能技术的不断发展,语音识别技术也得到了广泛的应用,从智能家居到车载系统,语音识别正在改变我们与设备的交互方式。尤其是离线语音识别,由于其在没有网络连接的情况下仍然能提供稳定、准确的语音处理能力,广…...

Pydantic + Function Calling的结合

1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...

Vue 实例的数据对象详解

Vue 实例的数据对象详解 在 Vue 中,数据对象是响应式系统的核心,也是组件状态的载体。理解数据对象的原理和使用方式是成为 Vue 专家的关键一步。我将从多个维度深入剖析 Vue 实例的数据对象。 一、数据对象的定义方式 1. Options API 中的定义 在 Options API 中,使用 …...