相关性分析和热图绘制

这篇具有很好参考价值的文章主要介绍了相关性分析和热图绘制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、什么是相关性分析?

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

常见的相关性分析方法有三种:皮尔森(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,表明两个变量间不是线性相关。

计算公式为:

相关热图怎么分析,教程,算法,python,开发语言

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

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

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

其计算公式为:

相关热图怎么分析,教程,算法,python,开发语言

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

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

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

二、代码

1    数据准备

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

相关热图怎么分析,教程,算法,python,开发语言

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)

相关热图怎么分析,教程,算法,python,开发语言

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

相关热图怎么分析,教程,算法,python,开发语言

3   相关性热图绘制

3.1 ggcorrplot包绘制热图

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

相关热图怎么分析,教程,算法,python,开发语言

图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)。)

相关热图怎么分析,教程,算法,python,开发语言

图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参数才有效。)

相关热图怎么分析,教程,算法,python,开发语言

图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"(无)之一。         )

相关热图怎么分析,教程,算法,python,开发语言

图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)。

相关热图怎么分析,教程,算法,python,开发语言

图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)。

相关热图怎么分析,教程,算法,python,开发语言

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

树谷资料库资源大全(2月9日更新)文章来源地址https://www.toymoban.com/news/detail-693354.html

到了这里,关于相关性分析和热图绘制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【hive】相关性函数进行相关性分析

    在Hive SQL中,使用类似的相关性函数进行相关性分析。常见的相关性函数包括CORR、COVAR_POP、COVAR_SAMP、STDDEV_POP、STDDEV_SAMP等。 举个例子,假设有一个表格sales,其中包含两列数据 sales_amt 和 advertising_amt ,我们可以使用CORR函数来计算这两列数据的相关性: 这将返回一个值,表示

    2024年02月21日
    浏览(21)
  • 表达矩阵任意两个基因相关性分析 批量相关性分析 tcga geo 矩阵中相关性强的基因对 基因相关性 ecm matrisome与gpx3

    使用场景 1.已经确定研究的基因,但是想探索他潜在的功能,可以通过跟这个基因表达最相关的基因来反推他的功能,这种方法在英语中称为 guilt of association,协同犯罪 。 2.我们的注释方法依赖于TCGA大样本,既然他可以注释基因,那么任何跟肿瘤相关的基因都可以被注释,

    2024年02月01日
    浏览(32)
  • GEE(4):计算两个变量(影像)之间的相关性并绘制散点图

    最近使用Google Earth Engine(GEE)分析了一下高程和NDVI的相关性,并绘制二者的散点图,计算其决定系数。 计算时主要用到了GEE中的 图表 ui.Chart.image.byRegion() ,将研究区域内的高程和NDVI的散点图先绘制出来,再添加趋势线,计算决定系数,就可以知道二者之间的相关性有多高

    2024年02月16日
    浏览(19)
  • 常见的相关性分析

    方差分析和相关性分析都是描述特征之间的关系的统计方法,但它们关注的方面略有不同。 方差分析主要用于研究一个或多个自变量对因变量的影响,即研究因素之间的差异性。通过比较不同组之间的方差,可以确定哪些因素对结果变量的影响比较重要,以及不同组之间的显

    2024年02月11日
    浏览(22)
  • 数学建模:相关性分析

    🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 Pearson Spearman Kendall tua-b t检验(t-test)临界值表-t检验表.xls T检验代码: myTtest005.m 相关性分析及SPSS软件操作.pdf

    2024年02月09日
    浏览(21)
  • Python进行数据相关性分析实战

    平时在做数据分析的时候,会要对特征进行相关性分析,分析某些特征之间是否存在相关性。本文将通过一个实例来对数据进行相关性分析与展示。 本次分析的是企业合作研发模式效果分析,企业的合作研发大致分为 企企合作、企学合作、企研合作、企学研合作,也就是企

    2024年02月10日
    浏览(20)
  • 数学建模-相关性分析(Matlab)

     注意:代码文件仅供参考,一定不要直接用于自己的数模论文中 国赛对于论文的查重要求非常严格,代码雷同也算作抄袭 如何修改代码避免查重的方法:https://www.bilibili.com/video/av59423231   //清风数学建模 连续数据、正态分布、线性关系三者同时满足优先用。 一般处理这种

    2024年02月07日
    浏览(25)
  • spss数据分析--相关性分析与酷炫图

    相关性分析与酷炫图 今天就来说说R语言怎么进行相关性分析。 首先,安装两个R包,其中“corrplot”包就能画出好多酷炫的相关性矩阵图。“pheatmap”包是用来画热力图的。   我们调用R里自带的数据集,今天调用的这个是关于汽车道路测试的各项指标数据,名叫mtcars。这个数

    2024年02月13日
    浏览(26)
  • Pearson correlation皮尔逊相关性分析

    在参数检验的相关性分析方法主要是皮尔逊相关(Pearson correlation)。既然是参数检验方法,肯定是有一些前提条件。皮尔逊相关的前提是必须满足以下几个条件: 变量是连续变量; 比较的两个变量必须来源于同一个总体; 没有异常值; 两个变量都符合正态分布。 正态分布

    2024年02月15日
    浏览(23)
  • 【数学建模】清风数模正课5 相关性分析

    相关性分析的关键是计算相关系数,在本节课中将会介绍两种常用的相关系数: 皮尔逊相关系数 (Pearson)和 斯皮尔曼相关系数 (Spearman)。 它们可以用来衡量两个变量间相关性的大小,对于不同类型的数据,我们要用不同的相关系数进行计算分析。 统计学概念 在学习这两

    2024年02月11日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包