【R语言数据分析】相关性分析:pearson与spearman

相关性分析是探寻两个变量之间关联关系的分析方法,注意相关性分析仅仅针对连续型变量和有序分类变量,对于无需分类变量就不存在相关性分析了,而是通过差异分析来间接反映相关性。比如性别和身高的关系就无法做相关性分析,虽然我们都知道身高和性别有关,但是这种关联性是通过差异性来间接体现的。比如我想研究是不是吃的越多长得越胖,这就可以做相关性分析了,因为这里的自变量也就是吃饭的多少是一个连续型变量。再比如我又想探寻是不是学历越高,工资越高,这也可以做相关性分析,因为这里的自变量学历是一个有序分类变量。发现没,一般可以做相关性分析的,都可以用越...就越....来描述我们想要研究的问题。

对于两个连续变量的相关性分析使用的是pearson线性相关性分析,比如探究身高和体重的关系。

对于一个连续变量和一个有序分类变量的相关性分析使用的是spearman秩相关性分析,比如探究工资和学历之间的关系。

对于两个有序分类变量之间的相关性分析也是使用spearman秩相关性分析,比如探究学历和考级等级的关系。

对于一个连续变量和一个无序分类变量之间就是做差异性分析了,比如身高和性别之间的关系,对于一个有序和一个无序分类变量变量之间也是做差异性分析,比如不同剂量组的药物与是否治愈的关系。

两个无序分类变量直接交叉卡方检验做差异性分析。比如两个班级的及格率。

举个例子,这里有一份调查问卷,问卷题目涉及到多个维度,我要研究这几个维度之间是否相关。

问卷的结果是以这样的表格形式给出的

首先把这份数据导入R中并进行一些数据的预处理。比如把表格中代表学历和能力考核的阿拉伯数字转成可读性更好的标签,使用的函数式factor,其中参数ordered=T表示这是一个分类变量,这个参数一般来说给不给都行。然后是计算每个人每一类问题的平均得分,并以这个得分构建新的一列,比如代表能力考核这一类的问题是前六个题,对应表格的第4到9列,我们要求每一个人这一类问题的平均得分,可以可以使用apply函数,apply(mydata[,4:9],1,mean)表示按行对这几列的数据求平均值,一次处理一行。最后使用round对这个平均值的结果保留两位小数。

接下来来查看一下不同类别之间的相关性,相关性分析,首先就来求一下两个变量之间的相关系数,比如求组织领导和护理认同这两个变量之间的相关系数,在R语言中求相关系数使用的函数是cor函数,函数使用的一般语法就是cor(变量1,变量2),比如运行cor(mydata$组织领导, mydata$护理认同)就得到了二者的相关系数为-0.3011634,表示这两个变量是负相关的,知道了相关系数之后我们还需要看一下这个相关性是否显著,注意相关系数的大小和显著性是两个不同的概念,并不是说相关性越大显著性就越高,相关性衡量的是两个变量之间线性关系的强度和方向,即使相关系数的值很大,如果样本量很小,那么这个相关性可能并不显著。相反,如果样本量很大,即使相关系数很小,相关性也可能显著。因此,在进行相关性分析时,需要同时考虑相关系数的大小和显著性(P值)。只有两个变量之间的关系显著,分析相关系数才有意义。查看两个变量之间的关系是否显著使用的函数是cor.test,运行代码cor.test(mydata$组织领导,mydata$护理认同)结果如图

发现p值小于0.05,可以得出结论二者之间关系显著。

这两个变量是我们求得不同学生对于这两种类别的问题的一个平均分,理论上是可以取到某个区间内所有的值的,因此这两个变量都是连续型变量,前面我们说过分析这样两个连续型变量应该使用pearson分析,那么我们直接调用cor函数把两个变量扔进去是不是做的pearson分析呢?答案是是的,cor函数的原型如下

其中method参数是可以省略的,省略的话默认是执行pearson分析,如果要执行另外两种分析就不能省略了。

cor函数是可以直接处理多个变量的,比如运行代码

res1

cor(mydata[,53:60])的意思是计算53列与其他列的相关系数(包括他自己的,与自己的相关系数是1),得到了8个结果,然后计算54列与其他列的相关系数,又得到了8个结果,最后得到了这样的一个矩阵。但是计算显著性就没法这样了,如果写cor.test(mydata[,53:60])会直接报错,显著性的计算只能一个个的写,比如cor.test(mydata[,53],mydata[,54]),这样的话这表有一个问题就是只展示了相关系数而没有展示显著性,因此该表的参考价值不大。既然cor.test无法批量应用,那么只能想一种别的方法了,既然表不好表达,那么我们直接用图可视化。使用的函数是corrgram程序包中的corrgram函数,使用方法也很简单,直接把不同变量扔给corrgram函数即可,运行代码corrgram(mydata[,53:60])就得到了这样一张图

图中根据颜色代表是正相关还是负相关,根据颜色的深浅来代表相关系数绝对值的大小,我们发现这个图是上三角和下三角对称的,这是因为比如组织领导和常规工作之间的相关系数和常规工作与组织领导之间的相关系数是一回事,就好比说你和我一起吃饭还是我和你一起吃饭,都是同一回事。这样为了方便的看到相关系数的大小我们可以把上三角或者下三角其中一个部分换成相关系数的数值,这个操作可以通过在corrgram函数中添加参数upper.panel = panel.conf完成,因为通过help查看corrgram的参数我们发现upper.panel需要的是一个函数

Function used to plot the contents of each panel.

而panel.conf就是一个函数,用于显示每个相关系数的显著性水平,比如是否小于0.05,表示统计显著性,如图,显著性是以置信区间的形式展示的。只要置信区间中不包含0,那么两个变量的相关性就是显著的。

spearman分析

对于一个有序分类变量和一个连续变量的相关性分析就要用到spearman分析,比如我现在要研究学历和病患处理这类问题的平均得分之间的相关性,学历是有序分类变量,病患处理问题的平均得分是一个连续变量,这就要用到spearman分析,函数还是用cor函数,但是和前面的pearson分析不同的是,参数部分需要我们手动指出method是spearman,但是cor函数只能处理numeric类型的变量的相关性分析,我们刚才为了增加表格可读性已经把学历转换成了因子类型,如图

现在我们要把他再转换成数值型,这就要用到do程序包中的Replace函数,运行下面一系列代码

运行之后再来看看mydata数据框,发现的确学历已经用阿拉伯数字替代了

但是长得像阿拉伯数字就一定是数值型吗?我们使用class(mydata$学历)查看这一列的类型居然是"character",所以还应该使用mydata$学历

数据准备完毕之后就可以调用cor函数和cor.test函数来计算相关系数和P值了

结果为

P值0.7204大于0.05,二者的相关性没有研究价值,差异可能由有偶然性引起的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RHCE shell-第一次作业

要求: 1、判断当前磁盘剩余空间是否有20G,如果小于20G,则将报警邮件发送给管理员,每天检査- 次磁盘剩余空间。 2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式 判断该程序是否运…

动态规划——最短编辑距离

一、问题描述 最短编辑距离(Minimum Edit Distance),也被称为Levenshtein距离,是一种计算两个字符串间的差异程度的字符串度量(string metric)。我们可以认为Levenshtein距离就是从一个字符串修改到另一个字符串时,其中编辑单个字符&#xff…

从零开始学AI绘画,万字Stable Diffusion终极教程(二)

【第2期】关键词 欢迎来到SD的终极教程,这是我们的第二节课 这套课程分为六节课,会系统性的介绍sd的全部功能,让你打下坚实牢靠的基础 1.SD入门 2.关键词 3.Lora模型 4.图生图 5.controlnet 6.知识补充 在第一节课里面,我们…

CPP#类与对象4

友元 关键字:friend 友元的实现:全局函数做友元; 类做友元; 成员函数做友元。 .1全局函数做友元 class Point { private:double x, y; public:Point(double xx, double yy); friend int Distance(Point &a, Point &b)…

关于win平台c语言引入开源库的问题与解决

许久不写博客,五一还在加班,就浅浅写一篇吧 最近除了做物联网平台 还对网关二次开发程序做了修改,网关的二次开发去年年底的时候做过,但是当时的逻辑不是十分完善,差不多已经过了半年了,很多细节已经忘记了…

探索APP托管服务分发平台的魅力 - 小猪APP分发平台(APP托管)

什么是APP托管服务分发平台 APP托管服务分发平台是一个集成了代码托管、构建集成、测试、发布和监控等全面性服务的平台。让开发者可以专注于创作探索APP托管服务分发平台的魅力 - 小猪APP分发平台,而不必花费太多精力在app的维护和分发上。 为什么要选择APP托管服…

D3CTF2024

文章目录 前言notewrite_flag_where【复现】D3BabyEscapePwnShell 前言 本次比赛笔者就做出两道简单题,但队里师傅太快了,所以也没我啥事。然后 WebPwn 那题命令行通了,但是浏览器不会调试,然后就简单记录一下。 note 只开了 N…

绘图神器===draw.io

文章目录 前言打开看看版本总结 前言 看到一个好玩的神器,Draw.io 看到一个网页draw.io,打开一看,还不错,是一款网页端的绘图平台。支持各种各样的绘制需求,像类图,流程图,泳道图,…

OpenCV如何模板匹配(59)

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何实现背投(58) 下一篇 :OpenCV在图像中寻找轮廓(60) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数 matchTemplate()搜索图像贴片和输入…

李沐-46 语义分割和数据集【动手学深度学习v2】

在语义分割中,不是一张图片分配一个label,而是为图片的每一个像素点分配一个label。假设我们输入的是RGB三通道的图片,即每个像素点颜色可以表示为(x, y, z),那么为了给像素点打上label,我们需要构建一个映射关系&…

这是一个简单的照明材料网站,后续还会更新

1、首页效果图 代码 <!DOCTYPE html> <html><head><meta charset"utf-8" /><title>爱德照明网站首页</title><style>/*外部样式*/charset "utf-8";*{margin: 0;padding: 0;box-sizing: border-box;}a{text-dec…

24.哀家要长脑子了!

目录 1.594. 最长和谐子序列 - 力扣&#xff08;LeetCode&#xff09; 2.350. 两个数组的交集 II - 力扣&#xff08;LeetCode&#xff09; 3.554. 砖墙 - 力扣&#xff08;LeetCode&#xff09; 4.9. 回文数 - 力扣&#xff08;LeetCode&#xff09; 5.13. 罗马数字转整数 …

使用D3.js进行数据可视化

D3.js介绍 D3.js是一个流行的JavaScript数据可视化库&#xff0c;全称为Data-Driven Documents&#xff0c;即数据驱动文档。它以数据为核心&#xff0c;通过数据来驱动文档的展示和操作。D3.js提供了丰富的API和工具&#xff0c;使得开发者能够创建出各种交互式和动态的数据可…

Linux服务器常用命令总结

view查找日志关键词 注意日志级别&#xff0c;回车后等一会儿&#xff0c;因为文件可能比较大加载完需要时间 当内容显示出来后&#xff0c;使用“/关键词”搜索 回车就能搜到&#xff0c;n表示查找下一个&#xff0c;N表示查找上一个 find 查找 find Family -name book …

华为平板手机如何清理应用市场的存储空间

如何清理应用市场的存储空间 适用产品&#xff1a; 手机&#xff0c;平板 适用版本&#xff1a;不涉及系统版本 如果您的应用市场显示应用的数据较大&#xff0c;可能是下载的安装包没有安装成功&#xff0c;导致安装包未自动删除。&#xff08;可参考&#xff1a;应用市场下…

Delta lake with Java--将数据保存到Minio

今天看了之前发的文章&#xff0c;居然有1条评论&#xff0c;看到我写的东西还是有点用。 今天要解决的问题是如何将 Delta产生的数据保存到Minio里面。 1、安装Minio&#xff0c;去官网下载最新版本的Minio&#xff0c;进入下载目录&#xff0c;运行如下命令&#xff0c;曾经…

2024年第11届生物信息学研究与应用国际会议(ICBRA 2024)即将召开!

2024年第11届生物信息学研究与应用国际会议&#xff08;ICBRA 2024&#xff09;将于2024年9月13-15日在意大利米兰举行。生物信息学&#xff0c;作为连接生物学与信息技术的桥梁&#xff0c;正日益成为探索生命奥秘、推动生命科学发展的重要力量。ICBRA 2024的召开&#xff0c;…

使用PyTorch从头实现Transformer

前言 本文使用Pytorch从头实现Transformer&#xff0c;原论文Attention is all you need paper&#xff0c;最佳解读博客&#xff0c;学习视频GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文&#xff0c;并对其进行了…

突破传统 重新定义:3D医学影像PACS系统源码(包含RIS放射信息)实现三维重建与还原

突破传统&#xff0c;重新定义PACS/RIS服务,洞察用户需求&#xff0c;关注应用场景&#xff0c;新一代PACS/RIS系统&#xff0c;系统顶层设计采用集中分布式架构&#xff0c;满足医院影像全流程业务运行,同时各模块均可独立部署&#xff0c;满足医院未来影像信息化扩展新需求、…

爬虫自动化之drissionpage实现随时切换代理ip

目录 一、视频二、dp首次启动设置代理三、dp利用插件随时切换代理一、视频 视频直接点击学习SwitchyOmega插件使用其它二、dp首次启动设置代理 from DrissionPage import ChromiumPage, ChromiumOptions from loguru
最新文章