一文搞定相关性分析
一、先谈谈概念性的东西1、何为相关性在医药研究中常常涉及到一些变量间的关系分析如儿童年龄与体重关系、血药浓度与时间的关系等。而变量之间的关系通常可以分为确定性关系与非确定性的关系两大类[1]。确定性关系是指当一个变量取值后另一变量有一个确定的值与之对应比如圆的半径与周长之间就有“2πr”的确定关系。但是我们实际科研中遇到的变量之间属于不确定关系的往往是大多数如人的身高与体重、年龄与血压等。即一个变量取值后另一个变量只会落一个包含某种规律的取值范围内而并不能对应一个准确的值这种不能用精确函数来表达的变量关系我们通常称之为不确定关系。当然非确定性关系也并非完全不能用函数的方式去模拟例如回归分析。2、何为相关性分析在数据处理的过程中我们一般将描述和分析变量相关关系的性质及其相关程度的过程称为相关分析。最简单的相关性分析方法就是绘制一个散点图直观的观察两个变量之间的相关性。在统计与分析之中我们不仅要了解变量之间是否相关通常还需要相关的程度、方向因此需要数字化一些的方法——统计推断。我们通常用样本相关系数r反映两个变量之间线性关系的强弱|r|的值越接近与1则变量之间的相关性程度就越高越接近于0则变量之间的相关性程度就越低。当|r|0时两变量之间呈完全线性相关此时散点图的所有对应点应该在同一条直线上。当0|r|1时则表示两变量之间存在一定的相关性关系。当r0时则两变量之间完全不存在线性相关关系但不排除有其他曲线关系。比如下面这个就是r1时的极端例子##### 构建一个数据集 ##### suppressMessages(library(ggplot2)) mydata - as.data.frame(cbind(1:10, 2:11)) head(mydata) ## V1 V2 ## 1 1 2 ## 2 2 3 ## 3 3 4 ## 4 4 5 ## 5 5 6 ## 6 6 7 #### 做个线性回归的计算 lm.model - lm(V1 ~ V2,data mydata) summary(lm.model) ## Warning in summary.lm(lm.model): essentially perfect fit: summary may be ## unreliable ## ## Call: ## lm(formula V1 ~ V2, data mydata) ## ## Residuals: ## Min 1Q Median 3Q Max ## -5.661e-16 -1.157e-16 4.273e-17 2.153e-16 4.167e-16 ## ## Coefficients: ## Estimate Std. Error t value Pr(|t|) ## (Intercept) -1.000e00 2.815e-16 -3.553e15 2e-16 *** ## V2 1.000e00 3.961e-17 2.525e16 2e-16 *** ## --- ## Signif. codes: 0 *** 0.001 ** 0.01 * 0.05 . 0.1 1 ## ## Residual standard error: 3.598e-16 on 8 degrees of freedom ## Multiple R-squared: 1, Adjusted R-squared: 1 ## F-statistic: 6.374e32 on 1 and 8 DF, p-value: 2.2e-16 ### 把斜率a和截距b取出来 a - lm.model$fitted.values[1] b - lm.model$fitted.values[2] a ## 1 ## 1 b ## 2 ## 2 ggplot(data mydata,aes(V1,V2))geom_point()geom_line() ggtitle(label paste(y , a, * x , b, sep ))#可以看到线性相关性是比较强的3、相关系数最常见的两种算法1、Pearson相关系数2、Spearman相关系数知道大家对公式及计算方法不感兴趣我也是如此但是你需要知道的是Spearman系数不要求两变量分布符合正态分布这就导致Spearman系数适用范围更广的同时计算精确度也相应的更低。二、R语言实现及可视化——ggcorrplot针对上述的各种相关性分析SPSS与Graphpad中也有较为完善的操作流程供大家使用。这里我们给大家推荐一个R语言中进行相关性可视化的神器——ggcorplot2[2]tips:下面的corr就是我们刚才提到的r值########## ggcorrplot 用法 ############3 #参考https://github.com/kassambara/ggcorrplot if(!require(ggcorrplot))install.packages(ggcorrplot) data(mtcars)#加载数据 class(mtcars) ## [1] data.frame head(mtcars) ## mpg cyl disp hp drat wt qsec vs am gear carb ## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 ## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 ## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 ## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 ## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 ## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 corr - round(cor(mtcars), 1)#计算每列变量间的相关性 head(corr[, 1:6]) ## mpg cyl disp hp drat wt ## mpg 1.0 -0.9 -0.8 -0.8 0.7 -0.9 ## cyl -0.9 1.0 0.9 0.8 -0.7 0.8 ## disp -0.8 0.9 1.0 0.8 -0.7 0.9 ## hp -0.8 0.8 0.8 1.0 -0.4 0.7 ## drat 0.7 -0.7 -0.7 -0.4 1.0 -0.7 ## wt -0.9 0.8 0.9 0.7 -0.7 1.0 p.mat - cor_pmat(mtcars) head(p.mat[, 1:4]) ## mpg cyl disp hp ## mpg 0.000000e00 6.112687e-10 9.380327e-10 1.787835e-07 ## cyl 6.112687e-10 0.000000e00 1.802838e-12 3.477861e-09 ## disp 9.380327e-10 1.802838e-12 0.000000e00 7.142679e-08 ## hp 1.787835e-07 3.477861e-09 7.142679e-08 0.000000e00 ## drat 1.776240e-05 8.244636e-06 5.282022e-06 9.988772e-03 ## wt 1.293959e-10 1.217567e-07 1.222320e-11 4.145827e-05ggcorrplot(corr)#最简单的相关性热图ggcorrplot(corr, method circle)#让热图的方框变成圆圈ggcorrplot(corr, hc.order TRUE, outline.color white)#设置边界颜色ggcorrplot(corr, hc.order TRUE,#设置是否聚类 type lower,#设置三角形对着的方式 outline.color white)ggcorrplot( corr, hc.order TRUE, type lower, outline.color white, ggtheme ggplot2::theme_gray, colors c(#6D9EC1, white, #E46726) )#设置主题和颜色ggcorrplot(corr, hc.order TRUE, type lower, lab TRUE)#是否展示C值ggcorrplot(corr, hc.order TRUE, type lower, p.mat p.mat)#是否展示p值ggcorrplot( corr, p.mat p.mat, hc.order TRUE, type lower, insig blank )#是否将不显著的色块移除最后考虑到站内的粉丝有一部分是冲着在线工具来的在线版的ggcorrplot工具我也已发布并测试成功下一条推送我将发布工具使用教程。以下附上测试视频时长01:24测试视频参考[1]: 高祖新 言方荣 医药统计分析与SPSS软件应用[M].北京人民卫生出版社2018169-187.[2]: https://github.com/kassambara/ggcorrplot

相关新闻

使用 pytest-xdist 进行高效并行自动化测试

使用 pytest-xdist 进行高效并行自动化测试

pytest-xdist 是 pytest 的一个扩展插件,主要用于实现测试用例的并行执行和分布式测试。通过利用多进程或者多机分布式的方式,pytest-xdist 能够显著缩短测试执行时间,提升持续集成(CI)流程的效率。 在自动化测试中&a…

2026/7/8 20:56:18 阅读更多 →
LED芯片AEC-Q102认证中的温度测试

LED芯片AEC-Q102认证中的温度测试

引言在汽车产业飞速发展的当下,汽车电子系统的重要性愈发凸显。LED芯片作为汽车照明、显示和传感器等核心系统的关键元器件,其可靠性与品质直接关系到车辆的行驶安全和整体性能表现。AEC - Q102认证是由汽车电子委员会(Automotive Electronic…

2026/7/9 13:32:56 阅读更多 →
公司抢着掏钱让考的 PMP,到底藏着多少门道?

公司抢着掏钱让考的 PMP,到底藏着多少门道?

最近发现个特别有意思的现象,身边不少公司都开始主动推员工考 PMP 了,不仅报销培训费、考试费,有的还直接组织集体学习、统一报名。很多同学只看到考下来能加薪、跳槽加分,却没琢磨明白:企业为啥愿意花时间、砸钱&…

2026/7/9 1:32:31 阅读更多 →

最新新闻

如何高效捕获网页媒体资源?猫抓浏览器扩展的技术解密与实战指南

如何高效捕获网页媒体资源?猫抓浏览器扩展的技术解密与实战指南

如何高效捕获网页媒体资源?猫抓浏览器扩展的技术解密与实战指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容日益丰富的今…

2026/7/9 15:39:17 阅读更多 →
大学四年不换机!5款学生游戏本推荐首选华硕天选7Pro与ROG,学习娱乐一步到位

大学四年不换机!5款学生游戏本推荐首选华硕天选7Pro与ROG,学习娱乐一步到位

一、选购背景与需求目标人群:即将入学的准大一新生,需一台能陪伴大学四年(学习、娱乐、携带、宿舍、假期回家)的笔记本电脑。核心需求:机身便携、重量轻、便于携带往返教室/宿舍/家。长续航,满足教室等无电…

2026/7/9 15:37:16 阅读更多 →
UE5网络开发:Server、Client、NetMulticast三种RPC核心区别与实战应用

UE5网络开发:Server、Client、NetMulticast三种RPC核心区别与实战应用

1. 项目概述:为什么你的RPC用起来总是不对劲?在UE5的网络游戏开发里,RPC(远程过程调用)是构建多人互动体验的基石。但很多开发者,尤其是刚接触网络同步的朋友,常常会陷入一个误区:看…

2026/7/9 15:35:16 阅读更多 →
Transformer vs 13种经典模型:7万条新闻文本多分类实战,MLP竟以95%准确率胜出

Transformer vs 13种经典模型:7万条新闻文本多分类实战,MLP竟以95%准确率胜出

Transformer与13种经典模型在新闻文本多分类任务中的全面对比:为何MLP能以95%准确率胜出? 在自然语言处理领域,文本分类一直是基础而重要的任务。随着深度学习技术的发展,从简单的MLP到复杂的Transformer,各类模型层出…

2026/7/9 15:35:16 阅读更多 →
数字PIR传感器与PIC32微控制器的智能人体检测方案

数字PIR传感器与PIC32微控制器的智能人体检测方案

1. 项目概述与核心器件选型 在智能安防和自动化控制领域,精确的存在感应和运动检测一直是关键技术需求。本项目采用TPIS1S1385红外热释电传感器与PIC32MX795F512L微控制器组合方案,实现了高灵敏度、低功耗的人体检测系统。 TPIS1S1385是一款数字输出型热…

2026/7/9 15:35:16 阅读更多 →
Apex英雄运行问题全面解决方案:从反作弊修复到性能优化

Apex英雄运行问题全面解决方案:从反作弊修复到性能优化

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 Apex英雄作为一款热门的战术竞技游戏,在7月更新后不少玩家遇到了进不去游戏、掉帧、启动错误、反作弊未运行等问题。这些问…

2026/7/9 15:31:14 阅读更多 →

日新闻

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南

3大音乐平台逐字歌词完整解决方案:ESLyric-LyricsSource完全指南 【免费下载链接】ESLyric-LyricsSource Advanced lyrics source for ESLyric in foobar2000 项目地址: https://gitcode.com/gh_mirrors/es/ESLyric-LyricsSource 还在为Foobar2000找不到高质…

2026/7/9 0:01:04 阅读更多 →
ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍

ElegantBook封面定制揭秘:3个步骤打造专业级学术书籍 【免费下载链接】ElegantBook Elegant LaTeX Template for Books 项目地址: https://gitcode.com/gh_mirrors/el/ElegantBook 你是否曾经为学术书籍的封面设计而烦恼?想要一个既专业又美观的封…

2026/7/9 0:03:06 阅读更多 →
如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南

如何高效使用pyodbc:企业级数据库连接终极指南 【免费下载链接】pyodbc Python ODBC bridge 项目地址: https://gitcode.com/gh_mirrors/py/pyodbc 在当今数据驱动的商业环境中,企业级数据库连接已成为现代应用开发的核心需求。pyodbc作为一款强大…

2026/7/9 0:07:11 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/8 16:14:06 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/9 13:46:46 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/8 16:59:55 阅读更多 →

月新闻