【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,一经查实,立即删除!

相关文章

Web - CSS3过渡与动画

过渡 基本使用 transition过渡属性是css3浓墨重彩的特性&#xff0c;过渡可以为一个元素在不同样式之间变化自动添加补间动画。 过渡从kIE10开始兼容&#xff0c;移动端兼容良好&#xff0c;网页上的动画特效基本都是由JavaScript定时器实现的&#xff0c;现在逐步改为css3过…

Unity 高度可扩展的技能与多 Buff 框架详解

一、框架设计 1.1 核心思想 组件化设计: 将技能和 Buff 抽象为可复用的组件&#xff0c;通过组合不同的组件实现复杂的效果。 数据驱动: 使用 ScriptableObject 或 JSON 等数据格式定义技能和 Buff 的属性&#xff0c;方便配置和修改。 事件驱动: 利用 Unity 的事件系统或自…

编译和链接【一】

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

图像锐化(QT)

如果不使用OpenCV&#xff0c;我们可以直接使用Qt的QImage类对图像进行像素级操作来实现锐化。锐化算法的核心是通过卷积核&#xff08;如拉普拉斯核&#xff09;对图像进行处理&#xff0c;增强图像的边缘和细节。 以下是一个完整的Qt应用程序示例&#xff0c;展示如何使用Qt…

迅雷下载的原理和使用协议的分析

迅雷作为一款广泛使用的下载工具&#xff0c;其核心原理是通过整合多种下载协议和资源分发技术来提升下载速度。以下是对其原理及协议的详细分析&#xff1a; 一、迅雷下载的核心原理 多协议混合下载&#xff08;P2SP&#xff09; P2SP&#xff08;Peer-to-Server-Peer&#xf…

【动手学运动规划】5.4 二次规划问题:QP优化

站在天堂看地狱&#xff0c;人生就像情景剧&#xff1b;站在地狱看天堂&#xff0c;为谁辛苦为谁忙。 —武林外传 白展堂 &#x1f3f0;代码及环境配置&#xff1a;请参考 环境配置和代码运行! 在运动规划算法中, QP优化是非常常见的优化问题形式, 本节我们将进行介绍. 5.4.1…

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 堆内存的使用情况…

RabbitMQ 如何设置限流?

RabbitMQ 的限流&#xff08;流量控制&#xff09;主要依赖于 QoS&#xff08;Quality of Service&#xff09; 机制&#xff0c;即 prefetch count 参数。这个参数控制每个消费者一次最多能获取多少条未确认的消息&#xff0c;从而避免某个消费者被大量消息压垮。 1. RabbitMQ…

第四十八章:黄山之行:与小一的奇妙冒险

自从小泽泽满月酒过后&#xff0c;小冷一家的生活又恢复了往日的温馨与忙碌。小泽泽在家人的悉心照料下茁壮成长&#xff0c;而小冷和小颖也在工作与家庭之间努力平衡着。2024 年 11 月&#xff0c;秋意正浓&#xff0c;山林间五彩斑斓&#xff0c;空气中弥漫着清爽的气息。小冷…

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

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

2025.2.8 寒假综合训练赛2题解

A. 博弈 Link&#xff1a;P1290 欧几里德的游戏 博弈类的题目&#xff0c;首先考虑找找有什么性质&#xff0c;从而找到“必胜态”和“必败态”。 其中&#xff0c;面对“必胜态”不一定取胜&#xff08;看个人操作的好坏&#xff09;&#xff0c;但面对“必败态”一定输&am…

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;这里放在…

Spring Boot 中的日志配置

文章目录 Spring Boot 中日志配置的源码分析1. Spring Boot 日志框架的选择与自动配置2. 日志自动配置与默认行为3. 日志系统的核心组件&#xff1a;Logger 和 LoggerFactory4. 日志配置文件的解析配置日志级别配置日志输出格式和目标 5. 日志级别的控制自定义日志级别 6. 自定…

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

缘起&#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…

c++初始

目录 一数据类型 1. 2.sizeof 3.布尔 4.字符串类型 二.数据输入与输出 1.输出 2.输入 三.运算 1.加减乘除取模&#xff0c;&#xff0c;--都一样 2.逻辑非与或&#xff0c;与C语言一样 3.比较运算符&#xff0c;与C语言一样 4.三目运算符&#xff08;与C语言一样&a…

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

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