【R语言】相关系数

一、cor()函数

cor()函数是R语言中用于计算相关系数的函数,相关系数用于衡量两个变量之间的线性关系强度和方向

常见的相关系数有皮尔逊相关系数(Pearson correlation coefficient)斯皮尔曼秩相关系数(Spearman's rank correlation coefficient)肯德尔等级相关系数(Kendall's tau correlation coefficient)

cor(x, y=NULL, use="everything", method=c("pearson", "kendall", "spearman"))

参数详解:

  1. x:数值向量、矩阵或数据框;
  2. y:默认为NULL,也可以是向量、矩阵和数据框(要和x的各维度相对应)
  3. use:处理数据中缺失值(NA);一共有5种选择:默认为everything,表示当出现NA时,函数会返回NAall.obs表示遇到NA时会报错;complete.obs表示对出现NA的行进行删除,如果经过此处理后没有完整的数据行,会报错;na.or.complete表示对出现NA的行进行删除,如果经过此处理后没有完整的数据行,会返回NA;pairwise.complete.obs的作用是依次比较多对变量,并把两个变量相互之间的缺失行剔除,然后用余下的数据计算两者的相关系数。
  4. method:指定三种中的相关系数。

下面用R中的内置数据集USArrests举例:

1、皮尔逊相关系数

皮尔逊相关系数是衡量两个连续变量之间线性相关程度的指标。它的值域是-1到1之间,其中1表示完全正相关,-1表示完全负相关,0表示没有线性相关。

head(USArrests)
cor(x=USArrests$Murder, y=USArrests$Assault, method="pearson")

同时计算多个变量之间的两两相关性:

cor(x=USArrests, method="pearson")

 

2、斯皮尔曼秩相关系数

斯皮尔曼秩相关系数是衡量两个变量之间等级(秩)相关程度的指标。与皮尔逊相关系数不同,它不需要数据满足正态分布假设,并且可以用于衡量非线性关系。它的值域也是-1到1之间。

head(USArrests)
cor(x=USArrests$Murder, y=USArrests$Assault, method="spearman")

 同时计算多个变量之间的两两相关性:

cor(x=USArrests, method="spearman")

3、肯德尔等级相关系数

肯德尔等级相关系数也是衡量两个变量之间等级(秩)相关程度的指标,但它特别适用于衡量有序分类数据之间的相关性。与斯皮尔曼秩相关系数类似,它也不需要数据满足正态分布假设。 

head(USArrests)
cor(x=USArrests$Murder, y=USArrests$Assault, method="kendall")

 同时计算多个变量之间的两两相关性:

cor(x=USArrests, method="kendall")

二、pcor()函数

pcor()函数来自于ppcor扩展包,用来计算偏相关系数(Partial Correlation Coefficient)

偏相关系数用于衡量两个变量在排除了其他变量影响后的相关性。即,偏相关系数衡量的是两个变量在固定其他变量的情况下的线性关系。

使用pcor()函数需要数据框作为输入,并且可以选择相关性计算的方法(默认为Pearson)。

library(ppcor)# 查看USArrests数据集的前3行
head(USArrests, n=3)# 计算偏相关系数矩阵
partial_corr_matrix <- pcor(USArrests)$estimate
partial_corr_matrix# 提取Murder和Assault之间的偏相关系数
partial_corr_matrix["Murder", "Assault"]

三、kendall.global()函数

R语言中的vegan包中,kendall.global()函数是用于分析多个群落(或样本)之间整体相关性一致性的。这个函数通常用于生态学研究,特别是在群落生态学领域,来评估不同群落之间的相似性或差异性。

kendall.global()函数基于Kendall's coefficient of concordance(Kendall和谐系数)来计算,这是一个衡量多个评估者对同一对象排序一致性的统计量。在群落生态学中,这个系数可以被用来衡量多个群落样本在物种组成或丰度上的整体一致性。

library(vegan)
x <- data.frame(col1=c(1,2,5,6,7), col2=c(3,6,8,9,88), col3=c(2.5,6.7,1.2,4.5,9.0))
kendall.global(x)

四、点二列相关:biserial.cor()函数

点二列相关(Point-Biserial Correlation用于测量一个连续变量与一个二分类变量之间的相关性。它实际上是皮尔逊相关系数(Pearson correlation coefficient)的一种特殊情况,其中一个变量被转换为标准正态分布的z分数,而另一个变量是二分类的(通常编码为0和1)。

在R语言中,可以使用ltm包中的biserial.cor()函数来计算点二列相关。

使用ltm扩展包中的LSAT数据集来演示,此数据集包含了美国法学院入学考试中5道题的测试结果,现在要求这5道题的总分与第1题之间的相关。

head(LSAT)
library(ltm)
# 首先使用cor()函数计算总分值与第1题之间的点二列相关系数
cor(x = rowSums(x=LSAT), y=LSAT[[1]])# 然后使用ltm::biserial.cor()函数计算总分值与第1题之间的点二列相关系数
biserial.cor(x=rowSums(LSAT), y=LSAT[[1]])

从上面结果可知,两个函数得出的结果在数值上是一样的,但反向相反。 

可以通过改变biserial.cor()函数的level参数来得到与cor()函数完全一致的结果。这个参数表示二分变量中哪一个作为参照水平,默认为1,可以将其设置为2来实现。

biserial.cor(x=rowSums(LSAT), y=LSAT[[1]], level=2)

 二列相关:biserial()函数

二列相关是一种特殊类型的相关系数,用于测量一个连续变量(如测试分数)与一个二分变量(如通过/失败)之间的关系。

可以使用psych包中的biserial()函数

library(ltm)
library(psych)
# 使用psych::biserial()函数计算总分值与第1题之间的二列相关系数
biserial(x=rowSums(LSAT), y=LSAT[[1]])

 五、Phi相关系数:phi()函数

Phi系数是专门用于两个二分变量之间的相关系数。它的值范围在-1到1之间,类似于皮尔逊相关系数,但它是基于列联表(contingency table)计算的。

可以使用psych包中的phi()函数实现。

Phi系数为0:表示两个二分变量之间没有关联或相关性。这可以理解为,在控制其他因素的情况下,一个变量的状态(如0或1)不会给出另一个变量状态的任何信息。

Phi系数接近1或-1:表示两个变量之间存在强烈的正相关或负相关。即,一个变量的状态能够很好地预测另一个变量的状态。

需要注意的是,phi()函数返回0并不总是意味着两个变量在实际意义上没有关联。它仅仅表明在当前的样本和数据收集方法下,没有找到足够的证据来支持两个变量之间存在统计相关性。

library(psych)# 创建两个二分变量数据框
data <- data.frame(x = factor(c(0, 1, 0, 1, 1, 0, 1, 0)),y = factor(c(0, 0, 1, 1, 1, 0, 0, 1))
)# 使用psych包中的phi函数计算Phi系数
# phi函数需要的是一个列联表作为输入
table_xy <- table(data$x, data$y)
phi_coefficient <- phi(table_xy)phi_coefficient

x <- matrix(c(100, 60, 90, 180), ncol=2)
x
phi(x)

 

 

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

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

相关文章

编译和链接【一】

文章目录 编译和链接【一】从翻译单元到二进制文件 编译和链接【一】 在我大一的时候&#xff0c; 我使用VC6.0对C语言程序进行编译链接和运行 &#xff0c; 然后我接触了VS&#xff0c; VS code等众多IDE&#xff0c; 这些IDE界面友好&#xff0c; 使用方便&#xff0c; 例如…

Linux: ASoC 声卡硬件参数的设置过程简析

文章目录 1. 前言2. ASoC 声卡设备硬件参数2.1 将 DAI、Machine 平台的硬件参数添加到声卡2.2 打开 PCM 流时将声卡硬件参数配置到 PCM 流2.3 应用程序对 PCM 流参数进行修改调整 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&am…

ansible使用学习

一、查询手册 1、官网 ansible官网地址&#xff1a;https://docs.ansible.com 模块查看路径&#xff1a;https://docs.ansible.com/ansible/latest/collections/ansible/builtin/index.html#plugins-in-ansible-builtin 2、命令 ansible-doc -s command二、相关脚本 1、服务…

jmap使用

常用命令 jmap -heap PID jmap -histo PID | head -20 jmap -dump:formatb,fileheap_dump.hprof PID jmap 是 Java 开发工具包&#xff08;JDK&#xff09;提供的一个命令行工具&#xff0c;用于生成 Java 进程的内存映射信息。它可以帮助开发者分析 Java 堆内存的使用情况…

基于 SpringBoot 和 Vue 的智能腰带健康监测数据可视化平台开发(文末联系,整套资料提供)

基于 SpringBoot 和 Vue 的智能腰带健康监测数据可视化平台开发 一、系统介绍 随着人们生活水平的提高和健康意识的增强&#xff0c;智能健康监测设备越来越受到关注。智能腰带作为一种新型的健康监测设备&#xff0c;能够实时采集用户的腰部健康数据&#xff0c;如姿势、运动…

docker离线安装及部署各类中间件(x86系统架构)

前言&#xff1a;此文主要针对需要在x86内网服务器搭建系统的情况 一、docker离线安装 1、下载docker镜像 https://download.docker.com/linux/static/stable/x86_64/ 版本&#xff1a;docker-23.0.6.tgz 2、将docker-23.0.6.tgz 文件上传到服务器上面&#xff0c;这里放在…

从零到一:我的元宵灯谜小程序诞生记

缘起&#xff1a;一碗汤圆引发的灵感 去年元宵节&#xff0c;我正捧着热腾腾的汤圆刷朋友圈&#xff0c;满屏都是"转发锦鲤求灯谜答案"的动态。看着大家对着手机手忙脚乱地切换浏览器查答案&#xff0c;我突然拍案而起&#xff1a;为什么不做一个能即时猜灯谜的微信…

CSS3+动画

浏览器内核以及其前缀 css标准中各个属性都要经历从草案到推荐的过程&#xff0c;css3中的属性进展都不一样&#xff0c;浏览器厂商在标准尚未明确的情况下提前支持会有风险&#xff0c;浏览器厂商对新属性的支持情况也不同&#xff0c;所有会加厂商前缀加以区分。如果某个属性…

2025.2.8——二、Confusion1 SSTI模板注入|Jinja2模板

题目来源&#xff1a;攻防世界 Confusion1 目录 一、打开靶机&#xff0c;整理信息 二、解题思路 step 1&#xff1a;查看网页源码信息 step 2&#xff1a;模板注入 step 3&#xff1a;构造payload&#xff0c;验证漏洞 step 4&#xff1a;已确认为SSTI漏洞中的Jinjia2…

数字电路-基础逻辑门实验

基础逻辑门是数字电路设计的核心元件&#xff0c;它们执行的是基本的逻辑运算。通过这些基本运算&#xff0c;可以构建出更为复杂的逻辑功能。常见的基础逻辑门包括与门&#xff08;AND&#xff09;、或门&#xff08;OR&#xff09;、非门&#xff08;NOT&#xff09;、异或门…

HC32功能复用说明

目录 引脚有哪些功能如何选择功能代码 引脚有哪些功能 数据手册中&#xff0c;每一个引脚功能有至多64个&#xff0c;对应列Func0~Func63 其中&#xff0c;Func0 ~Func31在《表 2-1 引脚功能表》中列出 Func32~Func63在《表 2-2 Func32~63 表》中列出。 Func32~Func63中的功…

数据库管理-第293期 奇怪的sys.user$授权+(20250210)

数据库管理293期 2025-02-10 数据库管理-第293期 奇怪的sys.user$授权&#xff08;20250210&#xff09;1 清空shared pool2 SR反馈总结 数据库管理-第293期 奇怪的sys.user$授权&#xff08;20250210&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09…

AutoMQ 如何实现没有写性能劣化的极致冷读效率

前言 追赶读&#xff08;Catch-up Read&#xff0c;冷读&#xff09;是消息和流系统常见和重要的场景。 削峰填谷&#xff1a;对于消息来说&#xff0c;消息通常用作业务间的解耦和削峰填谷。削峰填谷要求消息队列能将上游发送的数据堆积住&#xff0c;让下游在容量范围内消费…

【大模型】本地部署DeepSeek-R1:8b大模型及搭建Open-WebUI交互页面

本地部署DeepSeek-R1:8b大模型 一、摘要及版本选择说明1.1 摘要1.2 版本选择 二、下载并安装Ollama三、运行DeepSeek-R1:8b大模型四、安装Open WebUI增强交互体验五、关闭Ollama开机自动启动六、DeepSeek大模型启停步骤 一、摘要及版本选择说明 1.1 摘要 作为一名对 AI 和生成…

DeepSeek大模型的发展的十问十答

DeepSeek大模型是由杭州深度求索人工智能基础技术研究有限公司开发的一款基于Transformer架构的大型语言模型&#xff0c;具体介绍如下&#xff1a; 1. 架构基础 Transformer架构&#xff1a;DeepSeek大模型基于Transformer架构&#xff0c;该架构由Google在2017年提出&#xf…

Avnet RFSoC基于maltab得5G 毫米波 开发工具箱

使用 MATLAB 连接到 AMD Zynq™ RFSoC 评估板。使用 RF 附加卡执行 OTA 测试。使用 HDL Coder 部署算法 版本要求&#xff1a; 大于 2023b 需要以下支持包之一&#xff1a; 适用于 Xilinx 基于 Zynq 的无线电&#xff08;R2023b 及更早版本&#xff09;的通信工具箱支持包适…

计算机毕业设计Python+Spark知识图谱医生推荐系统 医生门诊预测系统 医生数据分析 医生可视化 医疗数据分析 医生爬虫 大数据毕业设计 机器学习

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

Vue事件处理 - 绑定事件

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue事件处理 - 绑定事件及事件处理 目录 事件处理 绑定方式 函数表达式 绑定函数名 输入框绑定事件 拿到输入框的值 传值加事件源 事件第三种写法 总结 事件处理 绑定方式 函数表达式 在按钮上使用函数表达式绑定事…

World of Warcraft [CLASSIC] 80 Four Horsemen (Naxxramas)

纳克萨玛斯 天启四骑士 Four Horsemen 图一&#xff1a;10人同生共死 图二&#xff1a;25人同生共死站位 图三&#xff0c;不做同生共死&#xff0c;做永恒者&#xff0c;击杀白马分布图&#xff0c;主要是不熟练乱跑&#xff0c;容易导致减员失败 永恒者&#xff0c;玩家无一…

DeepSeek与AI提示语设计的全面指南

当人人都会用AI时&#xff0c;你如何用得更好更出彩&#xff1f;本文全面介绍了DeepSeek的功能与使用方法&#xff0c;并深入探讨了AI提示语设计的核心技巧与进阶策略。通过精准的任务定义、提示语优化和人机协作&#xff0c;用户可以从AI的基础使用逐步进阶到创新应用&#xf…