返回顶部
首页 > 资讯 > 后端开发 > Python >相关性分析和热图绘制
  • 788
分享到

相关性分析和热图绘制

算法python开发语言 2023-10-20 20:10:20 788人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

一、什么是相关性分析? 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。在组学测序(如转录组)中需设置多个生物学重复,而对多个生物学

一、什么是相关性分析?

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

常见的相关性分析方法有三种:皮尔森(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

--结束END--

本文标题: 相关性分析和热图绘制

本文链接: https://lsjlt.com/news/433206.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 相关性分析和热图绘制
    一、什么是相关性分析? 相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。在组学测序(如转录组)中需设置多个生物学重复,而对多个生物学...
    99+
    2023-10-20
    算法 python 开发语言
  • 【python】python绘制相关性热力图
    1.介绍   热力图(heatmap),又称相关系数图,根据热力图中不同方块颜色对应的相关系数的大小,可以判断出变量之间相关性的大小。热力图通过对色块着色来显示数据的统计图表。绘图时,需指定颜色映射的...
    99+
    2023-10-08
    python 开发语言
  • 相关性分析、相关系数矩阵热力图
    相关性         相关性分析是研究两组变量之间是否具有线性相关关系,所以做相关性分析的前提是假设变量之间存在线性相关性,得到的结果也是描述变量间的线性相关程度。除此之外,相关性分析方法还会有其他的假设条件。而灰色关联度分析首先对数据量...
    99+
    2023-09-04
    python 数据分析
  • python绘制相关系数热力图
    python绘制相关系数热力图 一.数据说明和需要安装的库二.准备绘图三.设置配色,画出多幅图全部代码: 本文讲述如何利用python绘制如上的相关系数热力图 一.数据说明和需要安装...
    99+
    2023-09-05
    python pandas 开发语言
  • Pearson相关性分析& plot绘图(相关性系数柱状图、绘制非空值数量柱状图)
    Pearson相关性分析 & plot绘图(相关性系数柱状图、绘制非空值数量柱状图) 1.Pearson相关性分析 Pearson相关性分析是一种用于检测两个变量之间线性关系强度的统计方法,其结果介于...
    99+
    2023-09-29
    python numpy 机器学习
  • R语言绘制corrplot相关热图分析美化示例及详细图解
    目录介绍1.加载包2.加载数据3.绘图4.个性化设置聚类方法5.个性化添加矩阵6.颜色设置介绍 R corrplot包 提供了一个在相关矩阵上的可视化探索工具,该工具支持自动变量重新...
    99+
    2024-04-02
  • python进行相关性分析并绘制散点图详解
    目录 需要用到的库数据读取总结近期,有小伙伴问我关于怎么使用python进行散点图的绘制,这个东西很简单,但是怎么讲相关性的值标注在图形上略显麻烦,因此,在这里记录一下,将...
    99+
    2024-04-02
  • 相关性分析热力图(Python&Matlab代码实现)
    目录 1 热力图 1.1 简介 1.2 语法  2 算例1(Python代码实现) 2.1 算例 2.2 Python代码 2.3 运行结果  3 算例2(Python代码实现) 4 算例3(Python代码实现) 4.1 算例 4.2 P...
    99+
    2023-09-02
    python 开发语言 相关性分析 matlab
  • R语言两组变量特征相关关系热图绘制画法
    目录准备数据简单热图只对列进行聚类将相关系数显示在图上在图上加上显著性标记准备数据 两组变量的数据可以像下面这样处理,分别保存在两个csv文件中。 > # 导入数据及数据预处理...
    99+
    2024-04-02
  • R语言corrplot相关热图美化实例分析
    这篇文章主要介绍“R语言corrplot相关热图美化实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“R语言corrplot相关热图美化实例分析”文章能帮助大家解决问题。介绍R corrplot...
    99+
    2023-07-02
  • Mssql和Mysql的相关安全性分析(转)
    Mssql和Mysql的相关安全性分析(转)[@more@]  数据库是电子商务、金融以及ERP系统的基础,通常都保存着重要的商业伙伴和客户信息。大多数企业、组织以及政府部门的电子数据都保存在各种数据库中,...
    99+
    2024-04-02
  • 使用SPSS进行相关性分析的相关步骤
    ...
    99+
    2016-11-12
    使用SPSS进行相关性分析的相关步骤
  • python可视化分析绘制散点图和边界气泡图
    目录一、绘制散点图二、绘制边界气泡图一、绘制散点图 实现功能: python绘制散点图,展现两个变量间的关系,当数据包含多组时,使用不同颜色和形状区分。 实现代码: import n...
    99+
    2024-04-02
  • Python数据分析Matplotlib 柱状图绘制
    前言: 柱状图是一种使用矩形柱来表示数据分布的图表,可以横向排列,也可以纵向排列,它的高度或长度和他们所代表的值成正比关系。 Matplotlib 提供了bar()方法绘制柱状图, ...
    99+
    2024-04-02
  • Python数据分析之 Matplotlib 饼图绘制
    前言: 饼状图是用来呈现一个数据系列中各项的大小与各项占项总和的百分比,Matplotlib 提供了plt.pie()方法绘制柱状图,语法格式如下: plt.pie(x, explo...
    99+
    2024-04-02
  • 怎样用Python进行相关性分析
    今天就跟大家聊聊有关怎样用Python进行相关性分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.相关和因果是一回事吗相关性不等于因果。用x1和x2作为两个变量进行解释,相关意味...
    99+
    2023-06-16
  • R语言绘制折线图实例分析
    折线图是通过在它们之间绘制线段来连接一系列点的图。 这些点在它们的坐标(通常是x坐标)值之一中排序。 折线图通常用于识别数据中的趋势。 R语言中的plot()函数用于创建折线图。 语...
    99+
    2024-04-02
  • R语言绘制散点图实例分析
    散点图显示在笛卡尔平面中绘制的许多点。 每个点表示两个变量的值。 在水平轴上选择一个变量,在垂直轴上选择另一个变量。 使用plot()函数创建简单散点图。 语法 在R语言中创建散点图...
    99+
    2024-04-02
  • Python数据分析之 Matplotlib 散点图绘制
    前言: 散点图,又称散点分布图,是使用多个坐标点的分布反映数据点分布规律、数据关联关系的图表,Matplotlib 中可以通过以下方式绘制散点图: 使用plt.plot方法: 在上篇...
    99+
    2024-04-02
  • Python数据分析之 Matplotlib 折线图绘制
    目录一、Matplotlib 绘图简单示例二、折线图绘制一、Matplotlib 绘图 在数据分析中,数据可视化也非常重要,通过直观的展示过程、结果数据,可以帮助我们清晰的理解数据,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作