我的编程空间,编程开发者的网络收藏夹
学习永远不晚

相关性分析和热图绘制

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

相关性分析和热图绘制

一、什么是相关性分析?

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。在组学测序(如转录组)中需设置多个生物学重复,而对多个生物学重复的相关性分析,可从中判断生物学重复数据是否可以用于接下来的分析。如有出现生物学重复不一致的情况,可去除变异数据,预防某一重复数据不可用,进而影响数据的分析结果。

常见的相关性分析方法有三种:皮尔森(pearson)相关系数、斯皮尔曼(spearman)相关系数和肯德尔(kendall)相关系数。

表1 相关性关系

极弱相关或无相关

弱相关

中等程度相关

强相关

极强相关

0.0-0.2

0.2-0.4

0.4-0.6

0.6-0.8

0.8-1.0

1   皮尔森相关系数(Pearson)

皮尔森相关系数(Pearson),也称为线性相关系数,积差相关系数,1890年由英国统计学家卡尔•皮尔逊提出。是用来反映两个变量线性相关程度的统计量,适用于满足正态分布的数据。相关系数用r表示,其中n为样本量,分别为两个变量的观测值和均值。r描述的是两个变量间线性相关强弱的程度。r的绝对值越大表明相关性越强。r的取值在-1与+1之间,若r>0,表明两个变量是正相关,即一个变量的值越大,另一个变量的值也会越大;若r<0,表明两个变量是负相关,即一个变量的值越大另一个变量的值反而会越小。r 的绝对值越大表明相关性越强,要注意的是这里并不存在因果关系。若r=0,表明两个变量间不是线性相关。

计算公式为:

其中n为样本容量,xi和yi为两变量的样本值。

2    斯皮尔曼相关性系数(spearman)

斯皮尔曼相关性系数(spearman),又称斯皮尔曼秩相关系数,是利用两变量的秩次大小作线性相关分析,而不是根据数据的实际值计算,适用于有序数据和不满足正态分布假设的等间隔数据,与Pearson相关系数相比属于非参数统计方法,具有更广的适用范围。经常用希腊字母ρ表示。

其计算公式为:

其中di表示每对观察值(x,y)的秩之差,n为观察对的个数。

3   肯德尔相关性系数(Kendall)

肯德尔相关系数(Kendall),是一种秩相关系数。是对两个有序变量或两个秩变量之间相关程度测量,属于非参数统计。

二、代码

1    数据准备

数据输入格式(csv格式):

2 R包加载及数据导入

#下载包#install.packages("corrplot")install.packages("ggcorrplot")install.packages("psych")install.packages("vcd")#加载包#library(corrplot)library(ggplot2)library(ggcorrplot)library(vcd)library(psych)library(ggrepel)#数据导入#data<-read.table(file='C:/Rdata/jc/相关性热图数据.csv',row.names= 1,header=TRUE,sep=',')dim(data)data<-as.matrix(data) #利用as.matrix()将所需数据集转换为matrix格式,才可在corrplot中跑data=data.frame(scale(data))#数据标准化head(data)

#相关性计算data<-cor(data,method="spearman") #pearson,spearman和kendallround(data, 2)#保留两位小数

3   相关性热图绘制

3.1 ggcorrplot包绘制热图

#相关性热图绘制#ggcorrplot(data, method="circle") #圆圈大小变化

图1 相关性基础热图

#调整与美化#ggcorrplot(data, method = "circle", #"square", "circle"相比corrplot少了很多种,只有方形和圆形,默认方形。           type ="upper" , #full完全(默认),lower下三角,upper上三角           ggtheme = ggplot2::theme_minimal,           title = "",           show.legend = TRUE,  #是否显示图例。           legend.title = "Corr", #指定图例标题。           show.diag =T ,    #FALSE显示中间           colors = c("blue", "white", "red"), #需要长度为3的颜色向量,同时指定low,mid和high处的颜色。           outline.color = "gray", #指定方形或圆形的边线颜色。           hc.order = FALSE,  #是否按hclust(层次聚类顺序)排列。           hc.method = "complete", #相当于corrplot中的hclust.method, 指定方法一样,详情见?hclust。           lab =T , #是否添加相关系数。FALSE           lab_col = "black", #指定相关系数的颜色,只有当lab=TRUE时有效。           lab_size = 4, #指定相关系数大小,只有当lab=TRUE时有效。           p.mat = NULL,  #p.mat= p_mat,insig= "pch", pch.col= "red", pch.cex= 4,           sig.level = 0.05,           insig = c("pch", "blank"),           tl.cex = 12, #指定变量文本的大小,           tl.col = "black", #指定变量文本的颜色,           tl.srt = 45, #指定变量文本的旋转角度。           digits = 2 #指定相关系数的显示小数位数(默认2)。)

图2 调整与美化后的热图

3.2 corrplot包绘制相关性热图

3.2.1 corrplot包基础热图及解释

#corrplot包绘图#corrplot(data)corrplot(data, method="circle", #square方形,ellipse, 椭圆形,number数值,shade阴影,color颜色,pie饼图         title = "pearson",   #指定标题         type="full",  #full完全(默认),lower下三角,upper上三角         #col=c("#FF6666", "white", "#0066CC"), #指定图形展示的颜色,默认以均匀的颜色展示。支持grDevices包中的调色板,也支持RColorBrewer包中调色板。         outline = T,  #是否添加圆形、方形或椭圆形的外边框,默认为FALSE。         diag = TRUE,  #是否展示对角线上的结果,默认为TRUE         mar = c(0,0,0,0), #设置图形的四边间距。数字分别对应(bottom, left, top, right)。         bg="white", #指定背景颜色         add = FALSE, #表示是否添加到已经存在的plot中。默认FALSE生成新plot。         is.corr = TRUE, #是否为相关系数绘图,默认为TRUE,FALSE则可将其它数字矩阵进行可视化。         addgrid.col = "darkgray", #设置网格线颜色,当指定method参数为color或shade时, 默认的网格线颜色为白色,其它method则默认为灰色,也可以自定义颜色。         addCoef.col = NULL, #设置相关系数值的颜色,只有当method不是number时才有效         addCoefasPercent = FALSE, #是否将相关系数转化为百分比形式,以节省空间,默认为FALSE。         order = "original", #指定相关系数排序的方法, 可以是original原始顺序,AOE特征向量角序,FPC第一主成分顺序,hclust层次聚类顺序,alphabet字母顺序。         hclust.method = "complete", # 指定hclust中细分的方法,只有当指定order参数为hclust时有效。有7种可选:complete,ward,single,average,mcquitty,median,centroid。         addrect = NULL, #是否添加矩形框,只有当指定order参数为hclust时有效, 默认不添加, 用整数指定即可添加。         rect.col = "black", #指定矩形框的颜色。         rect.lwd = 2, #指定矩形框的线宽。         tl.pos = NULL,  #指定文本标签(变量名称)相对绘图区域的位置,为"lt"(左侧和顶部),"ld"(左侧和对角线),"td"(顶部和对角线),"d"(对角线),"n"(无);当type="full"时默认"lt"。当type="lower"时默认"ld"。当type="upper"时默认"td"。         tl.cex = 1,  #设置文本标签的大小         tl.col = "black", #设置文本标签的颜色。         cl.pos = NULL #设置图例位置,为"r"(右边),"b"(底部),"n"(无)之一。当type="full"/"upper"时,默认"r"; 当type="lower"时,默认"b"。         #addshade = c("negative", "positive", "all"), # 表示给增加阴影,只有当method="shade"时有效。#为"negative"(对负相关系数增加阴影135度);"positive"(对正相关系数增加阴影45度);"all"(对所有相关系数增加阴影)。         #shade.lwd = 1,  #指定阴影线宽。         #shade.col = "white",  #指定阴影线的颜色。         #p.mat= res1$p,sig.level= 0.01,insig= "pch", pch.col= "blue", pch.cex= 3,#只有指定矩阵的P值,sig.level,pch等参数才有效。只有当insig = "pch"时,pch.col和pch.cex参数才有效。)

图3 corrplot包绘图

3.2.2 corrplot包图形与数值混合

#显示数字与图形混合corrplot(data, method="circle", #square方形,ellipse, 椭圆形,number数值,shade阴影,color颜色,pie饼图         title = "pearson",   #指定标题         type="full", #full完全(默认),lower下三角,upper上三角         #col=c("#FF6666", "white", "#0066CC"), #指定图形展示的颜色,默认以均匀的颜色展示。支持grDevices包中的调色板,也支持RColorBrewer包中调色板。         outline = F,  #是否添加圆形、方形或椭圆形的外边框,默认为FALSE。         diag = TRUE,  #是否展示对角线上的结果,默认为TRUE         mar = c(0,0,0,0), #设置图形的四边间距。数字分别对应(bottom, left, top, right)。         bg="white", #指定背景颜色         add = FALSE, #表示是否添加到已经存在的plot中。默认FALSE生成新plot。         is.corr = TRUE, #是否为相关系数绘图,默认为TRUE,FALSE则可将其它数字矩阵进行可视化。         addgrid.col = "darkgray", #设置网格线颜色,当指定method参数为color或shade时, 默认的网格线颜色为白色,其它method则默认为灰色,也可以自定义颜色。         addCoef.col = NULL, #设置相关系数值的颜色,只有当method不是number时才有效         addCoefasPercent = FALSE, #是否将相关系数转化为百分比形式,以节省空间,默认为FALSE。         order = "original", #指定相关系数排序的方法, 可以是original原始顺序,AOE特征向量角序,FPC第一主成分顺序,hclust层次聚类顺序,alphabet字母顺序。         hclust.method = "complete", # 指定hclust中细分的方法,只有当指定order参数为hclust时有效。有7种可选:complete,ward,single,average,mcquitty,median,centroid。         addrect = NULL, #是否添加矩形框,只有当指定order参数为hclust时有效, 默认不添加, 用整数指定即可添加。         rect.col = "black", #指定矩形框的颜色。         rect.lwd = 2, #指定矩形框的线宽。         tl.pos = NULL,  #指定文本标签(变量名称)相对绘图区域的位置,为"lt"(左侧和顶部),"ld"(左侧和对角线),"td"(顶部和对角线),"d"(对角线),"n"(无);当type="full"时默认"lt"。当type="lower"时默认"ld"。当type="upper"时默认"td"。         tl.cex = 1,  #设置文本标签的大小         tl.col = "black", #设置文本标签的颜色。         cl.pos = NULL #设置图例位置,为"r"(右边),"b"(底部),"n"(无)之一。当type="full"/"upper"时,默认"r"; 当type="lower"时,默认"b"。         #addshade = c("negative", "positive", "all"), # 表示给增加阴影,只有当method="shade"时有效。#为"negative"(对负相关系数增加阴影135度);"positive"(对正相关系数增加阴影45度);"all"(对所有相关系数增加阴影)。         #shade.lwd = 1,  #指定阴影线宽。         #shade.col = "white",  #指定阴影线的颜色。         #p.mat= res1$p,sig.level= 0.01,insig= "pch", pch.col= "blue", pch.cex= 3,#只有指定矩阵的P值,sig.level,pch等参数才有效。只有当insig = "pch"时,pch.col和pch.cex参数才有效。)
corrplot(data, title = "",                 method = "number", #square方形,ellipse, 椭圆形,number数值,shade阴影,color颜色,pie饼图                outline = F, #是否添加圆形、方形或椭圆形的外边框,默认为FALSE。         add = TRUE, #表示是否添加到已经存在的plot中。默认FALSE生成新plot。         type = "lower", #full完全(默认),lower下三角,upper上三角                order="original",         col="black", #指定图形展示的颜色,默认以均匀的颜色展示。支持grDevices包中的调色板,也支持RColorBrewer包中调色板。         diag=FALSE, #是否展示对角线上的结果,默认为TRUE         tl.pos="n",  #指定文本标签(变量名称)相对绘图区域的位置,为"lt"(左侧和顶部),"ld"(左侧和对角线),"td"(顶部和对角线),"d"(对角线),"n"(无)         cl.pos=NULL #设置图例位置,为"r"(右边),"b"(底部),"n"(无)之一。         )

图4 gcorrplot包数值与图形混合绘图

​​​​​​​

#椭圆加数值#corrplot(data, method = "ellipse", order = "original",                  addCoef.col = "black",#设置相关系数值的颜色,只有当method不是number时才有效         type="full", #full完全(默认),lower下三角,upper上三角         title = "椭圆与黑色系数值",         add = FALSE, #表示是否添加到已经存在的plot中。默认FALSE生成新plot。         diag = TRUE, #是否展示对角线上的结果,默认为TRUE         tl.cex = 1,  #设置文本标签的大小         tl.col = "black", #设置文本标签的颜色。         cl.pos = NULL, #设置图例位置,为"r"(右边),"b"(底部),"n"(无)之一。当type="full"/"upper"时,默认"r"; 当type="lower"时,默认"b"。         mar = c(1,1,1,1)) #设置图形的四边间距。数字分别对应(bottom, left, top, right)。

图5 椭圆加全部数值

#百分比表示#corrplot(data, method = "ellipse", order = "original",                  addCoef.col = "black",#设置相关系数值的颜色,只有当method不是number时才有效         addCoefasPercent = TRUE, #是否将相关系数转化为百分比形式,以节省空间,默认为FALSE。         type="full", #full完全(默认),lower下三角,upper上三角         title = "椭圆与黑色百分比",         add = FALSE, #表示是否添加到已经存在的plot中。默认FALSE生成新plot。         diag = TRUE, #是否展示对角线上的结果,默认为TRUE         tl.cex = 1,  #设置文本标签的大小         tl.col = "black", #设置文本标签的颜色。         cl.pos = NULL, #设置图例位置,为"r"(右边),"b"(底部),"n"(无)之一。当type="full"/"upper"时,默认"r"; 当type="lower"时,默认"b"。         mar = c(1,1,1,1)) #设置图形的四边间距。数字分别对应(bottom, left, top, right)。

本文来源:在打小豆豆的小潘学长

树谷资料库资源大全(2月9日更新)

来源地址:https://blog.csdn.net/hu397313168/article/details/129744054

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

相关性分析和热图绘制

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

R语言corrplot相关热图美化实例分析

这篇文章主要介绍“R语言corrplot相关热图美化实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言corrplot相关热图美化实例分析”文章能帮助大家解决问题。介绍R corrplot
2023-07-02

怎么使用python可视化分析绘制散点图和边界气泡图

这篇文章主要介绍“怎么使用python可视化分析绘制散点图和边界气泡图”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用python可视化分析绘制散点图和边界气泡图”文章能帮助大家解决问题。一、
2023-07-02

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤

股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤,需要具体代码示例随着互联网和科技的快速发展,股票交易已经成为许多投资者的重要途径之一。而股票分析是投资者决策的重要一环,其中蜡烛图被广泛应用于技术分析中。学习如何使用PHP和JS绘制蜡烛图
股票分析必备工具:学习PHP和JS绘制蜡烛图的步骤
2023-12-17

优化网页性能的关键:深入分析回流和重绘技术的选取

提升网页性能的关键:回流和重绘的技术选型分析随着互联网的普及和发展,网页性能成为了用户关注的重要指标之一。一个优秀的网页应该能够快速地加载,同时流畅地交互。而要实现这样的目标,回流和重绘技术的选型就显得尤为重要。回流和重绘是浏览器渲染网
优化网页性能的关键:深入分析回流和重绘技术的选取
2024-01-26

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录