【R语言】基本操作-相关性分析及散点图、矩阵热图等的画法

文摘   2024-12-19 07:56   山东  


大家好!欢迎关注小号:医学统计数据分析,今天我们来介绍一下常用统计学方法的R语言基本操作中,相关性分析及相关图的画法。



    相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。

    相关性不等于因果性,也不是简单的个性化,相关性所涵盖的范围和领域几乎覆盖了我们所见到的方方面面,相关性在不同的学科里面的定义也有很大的差异。




R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。






我们先下载R与Rstudio的安装包,先安装R,再安装RstudioRStudio是一款R语言的集成开发环境(IDE),R自带的环境操作起来可能不是方便,而Rstudio很好地解决了这个问题,RStudio只是辅助你使用R进行编辑的工具,因为它自身并不附带R程序。

R下载地址(官网):

https://cran.r-project.org/bin/windows/base/

Rstudio(官网):

https://rstudio.com/









打开RStudio之后,会出现上图所示的窗口,其中有四个独立的面板。RStudio界面分为左上角的源码编辑、脚本显示,左下角的代码执行、控制台,右上角的代码历史记录、数据对象列表,右下角的代码组织管理、包安装、更新、绘图。

我们以下图所示数据为例:








我们先整理一下操作空间:

rm(list=ls())#清空所有数据变量列表

install.packages() #安装包

library() #加载包

#加载所需包并加载数据

library(readxl)   #读取Excel包

data <- read_excel(C:/Users/LENOVO/Desktop/测试数据.xlsx)

我们直接plot(data)







我们用R自带的cor()函数,直接对指标1和指标2进行相关性分析,得到相关系数

cor <- cor(data$指标1, data$指标2)

cor

直接用plot()函数绘制指标1及指标2的散点图:

plot(data$指标1, data$指标2)












#直接用cor()函数对所有数据data生成相关系数矩阵

res <- cor(data)

res

#可以使用round()函数对相关系数进行保留两位小数的操作:

round(res, 2)












#我们可以使用corrplot()包对相关系数矩阵进行绘图,上半部分与下半部分是对称关系。









增加type = "upper",语句,可以仅保留上半部分,

调整tl.col = "red",语句,可以改变标签颜色








增加type = "lower",语句,可以仅保留下半部分,

调整tl.col = "blue",语句,可以改变标签颜色









上边的相关分析仅可得到相关系数,并不能得到P值,我们可以安装并加载Hmisc包进行P值的运算:

library(Hmisc)#加载包

res2 <- rcorr(as.matrix(data))

res2

也可以选择单独输出相关系数或P值:

res2$r

res2$P















通过sig.level = 0.05可以对corrplot()绘图的点进行选择,仅保留有显著相关性的数据对,insig = "blank"则规定无显著相关的数据对显示为空白。

corrplot(res2$r, type="upper",  p.mat = res2$P, sig.level = 0.05, insig = "blank")









通过colorRampPalette()包可以调用颜色版自定义颜色,接着使用heatmap()包可以根据规定的调色板绘制热图矩阵。

col<- colorRampPalette(c("blue", "white", "red"))(100)

heatmap(x = res, col = col, symm = TRUE)













医学统计数据分析分享交流SPSS、R语言、Python、ArcGis、Geoda、GraphPad、数据分析图表制作等心得。承接数据分析,论文修回,医学统计,空间分析,问卷分析业务。若有投稿和数据分析代做需求,可以直接联系我,谢谢!






医学统计数据分析
分享交流SPSS、R语言、Python、ArcGis、Geoda、GraphPad、数据分析图表制作等心得。承接数据分析,论文修回,医学统计,空间分析,问卷分析业务。若有投稿和数据分析代做需求,可以直接联系我,谢谢!
 最新文章