百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

相关性分析

bigegpt 2024-08-15 19:54 2 浏览

尔云间 一个专门做科研的团队

原创 小果 生信果


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

判断数据是否具有相关关系,最直观的方法就是绘制散点图



要判断多个数据的之间的关系,散点图的绘制就会显得比较繁琐,这时候要选择绘制散点矩阵



相关系数

相关系数衡量了两个变量的统一程度,范围是-1~1,‘1’代表完全正相关,‘-1’代表完全负相关。

比较常用的是Pearson‘皮尔逊’相关系数Spearman‘斯皮尔曼’相关系数

在R中,相关性分析的R包:

install.packages("corrplot")

网址:Visualize correlation matrix using correlogram - Easy Guides - Wiki - STHDA


下面小果将带大家用具体的例子来了解相关性的概念:

测试数据是ggplot2 包中自带的diamond 数据,每一行为一种钻石,每一列为钻石不同的属性,如carat (克拉), cut (切工), color (色泽), clarity (透明度) 等。

数据读进来后,怎么绘制呢?不要着急,小果将一步步带你学习。

首先绘制散点图,横轴是克拉数,纵轴是价格(正相关)

qplot(carat,price,data=dat)

绘制散点图,对x,y 值取log,可以看出钻石的克拉数和价格是呈现正相关的。

qplot(log(carat),log(price),data=dat)

颜色、大小、性状和其他属性的设置

qplot(carat,price,data=dat,colour=color)

# 后期应用ggplot() 函数后,可以更加自由的绘制各种组合图形

qplot(carat,price,data=dat,geom=c("point","smooth"))# 添加了一条拟合曲线


大家对相关性是不是有了一些初步的了解了呢?不要着急,下面小果将会带大家学习corrgram绘制相关性:

df <- read.csv("corrplot.csv", row.names = 1)
head(df)
par(bg = "#fdfdfd")
# 左下角
panel.raters <- function (x, y, corr = NULL, ...) {
  if (!is.null(corr))
    return()
  plot.xy(xy.coords(x, y), type = "p",
          pch = 20, #点形状
          cex = .5, #点大小
          ...)
  abline(lm(y ~ x), lwd = 2) #画拟合线
  box(col = "black", lwd = 2) #黑色粗边框
}
# 对角线
textPanel <- function (x = 0.5, y = 0.5, txt, cex, font) {
  text(x, y, txt, cex = cex, font = font)
  box(col = "black", lwd = 2)
}
# 右上角
panel.fill.cor <- function (x, y, corr = NULL, ...)
{
    # 计算相关系数
    corr <- round(cor(x, y, use = "pairwise", method = "pearson"),2) # 可以换成"kendall"或 "spearman"
    
    # 自定义背景颜色
    ncol <- 14
    col.regions <- colorRampPalette(c('darkslateblue', 'navy', 'white', 'firebrick3', 'red'))
    pal <- col.regions(ncol)
    col.ind <- as.numeric(cut(corr, breaks = seq(from = -1, to = 1, length.out = ncol + 1), include.lowest = TRUE))
    
    # 画背景
    par(new=TRUE)
    plot(0, type='n', xlim=c(-1,1), ylim=c(-1,1), axes=FALSE, asp=1)
    usr <- par("usr")
    rect(usr[1], usr[3], usr[2], usr[4], col = pal[col.ind],
        border = NA)
    
    # 写相关系数
    text(0, 0, labels = corr, cex = 2.5, col = ifelse(corr > 0, "black", "white"))
    box(col = "black") #黑色窄边框
}
# 画图并保存到pdf文件
pdf("corrgram.pdf",8,8)
pairs(df[1:5],
      gap = .5, #小图之间的空隙
      text.panel = textPanel, #对角线
      lower.panel = panel.raters, #左下角
      upper.panel = panel.fill.cor) #右上角


dev.off()


好了,今天的分享就到这里了,欢迎关注"生信果”,主要发表或收录生物信息学的教程,以及基于R的分析和可视化等内容,一起见证小白和大佬的成长。

推荐阅读

生信果 生信入门、R语言、生信图解读与绘制、软件操作、代码复现、生信硬核知识技能、服务器等原创内容

相关推荐

了解Linux目录,那你就了解了一半的Linux系统

大到公司或者社群再小到个人要利用Linux来开发产品的人实在是多如牛毛,每个人都用自己的标准来配置文件或者设置目录,那么未来的Linux则就是一团乱麻,也对管理造成许多麻烦。后来,就有所谓的FHS(F...

Linux命令,这些操作要注意!(linux命令?)

刚玩Linux的人总觉得自己在演黑客电影,直到手滑输错命令把公司服务器删库,这才发现命令行根本不是随便乱用的,而是“生死簿”。今天直接上干货,告诉你哪些命令用好了封神!喜欢的一键三连,谢谢观众老爷!!...

Linux 命令速查手册:这 30 个高频指令,拯救 90% 的运维小白!

在Linux系统的世界里,命令行是强大的武器。对于运维小白而言,掌握一些高频使用的Linux命令,能极大提升工作效率,轻松应对各种系统管理任务。今天,就为大家奉上精心整理的30个Linu...

linux必学的60个命令(linux必学的20个命令)

以下是Linux必学的20个基础命令:1.cd:切换目录2.ls:列出文件和目录3.mkdir:创建目录4.rm:删除文件或目录5.cp:复制文件或目录6.mv:移动/重命名文件或目录7....

提高工作效率的--Linux常用命令,能够决解95%以上的问题

点击上方关注,第一时间接受干货转发,点赞,收藏,不如一次关注评论区第一条注意查看回复:Linux命令获取linux常用命令大全pdf+Linux命令行大全pdf为什么要学习Linux命令?1、因为Li...

15 个实用 Linux 命令(linux命令用法及举例)

Linux命令行是系统管理员、开发者和技术爱好者的强大工具。掌握实用命令不仅能提高效率,还能解锁Linux系统的无限潜力,本文将深入介绍15个实用Linux命令。ls-列出目录内容l...

Linux 常用命令集合(linux常用命令全集)

系统信息arch显示机器的处理器架构(1)uname-m显示机器的处理器架构(2)uname-r显示正在使用的内核版本dmidecode-q显示硬件系统部件-(SMBIOS/DM...

Linux的常用命令就是记不住,怎么办?

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux常用文件操作命令(linux常用文件操作命令有哪些)

ls命令在Linux维护工作中,经常使用ls这个命令,这是最基本的命令,来写几条常用的ls命令。先来查看一下使用的ls版本#ls--versionls(GNUcoreutils)8.4...

Linux 常用命令(linux常用命令)

日志排查类操作命令查看日志cat/var/log/messages、tail-fxxx.log搜索关键词grep"error"xxx.log多条件过滤`grep-E&#...

简单粗暴收藏版:Linux常用命令大汇总

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部下午好,我的网工朋友在Linux系统中,命令行界面(CLI)是管理员和开发人员最常用的工具之一。通过命令行,用户可...

「Linux」linux常用基本命令(linux常用基本命令和用法)

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。总结送免费学习资料(包含视频、技术学习路线图谱、文档等)1、显示日期的指令:d...

Linux的常用命令就是记不住,怎么办?于是推出了这套教程

1.帮助命令1.1help命令#语法格式:命令--help#作用:查看某个命令的帮助信息#示例:#ls--help查看ls命令的帮助信息#netst...

Linux的30个常用命令汇总,运维大神必掌握技能!

以下是Linux系统中最常用的30个命令,精简版覆盖日常操作核心需求,适合快速掌握:一、文件/目录操作1.`ls`-列出目录内容`ls-l`(详细信息)|`ls-a`(显示隐藏文件)...

Linux/Unix 系统中非常常用的命令

Linux/Unix系统中非常常用的命令,它们是进行文件操作、文本处理、权限管理等任务的基础。下面是对这些命令的简要说明:**文件操作类:*****`ls`(list):**列出目录内容,显...