本篇文章介绍基于R语言的相关性分析、相关系数的显著性检验及可视化,该教程为个人笔记,大家也可参考学习,不足之处也欢迎大家批评指正!

相关性分析用于评估两个或多个变量之间的关联,能通过定量指标描述变量之间的强弱、直接或间接联系。相关系数是对变量之间的相关程度的定量描述,相关系数值介于-1~1之间,越接近0相关性越低,越接近-1或1相关性越高;正负号表明相关方向,正号为正相关、负号为负相关。当数据呈正态分布时,才可以使用相关性分析。可以使用Shapiro-Wilk test进行检查数据是否满足正态分布。

该案例中示例数据包含多样性(diversity)、生物量(biomass)、产量(yield)和种植密度(density)四个指标(单位请自动忽略,数据仅作为示例使用)。

一、常见的变量间相关系数


1、Pearson相关系数:Pearson相关系数是用于表示相关性大小的最常用指标,适用于两个正态分布的连续变量。

2、Spearman等级相关系数:又称为秩相关系数,利用两变量的秩次大小来进行分析,属于非参数统计方法。适用于不满足Pearson相关系数正态分布要求的连续变量,也可以用于有序分类变量的之间的相关性测量。

3、Kendall's Tau相关系数:Kendall's Tau相关系数是一种非参数检验。适用于两个有序分类变量。

4、偏相关:当要进行相关性分析的两个变量其取值受到其他变量影响时,可以利用偏相关分析对其他变量进行控制,在控制其他变量基础之上进行这两个变量之间相关性分析。适用于考虑第三方影响的两个变量之间的相关性分析。

二、R语言的实现

1、Pearson、Kendall、Spearman相关

##读入数据df##查看数据df

##正态分布检验shapiro.test(df$diversity)shapiro.test(df$biomass)shapiro.test(df$yield)shapiro.test(df$density)

结果符合正态分布

##计算列与列之间的协方差cov(df)

##计算列与列之间的相关系数,默认的方法为pearsoncor(df)

##计算列与列之间的pearson、kendall、spearman相关系数cor(df, method = "pearson")cor(df, method = "kendall")cor(df, method = "spearman")

2、偏相关

偏相关是指在控制一个或多个定量变量时,另外两个定量变量之间的相互关系。

##使用ggm包的pcor()函数library(ggm)##控制yield(第三列)时,计算diversity(第一列)和biomass(第二列)的偏相关系数##前两个数值表示要计算相关系数的变量,其余的数值为条件变量(即要排除影响的变量)pcor(c(1,2,3), cov(df))

3、相关系数的显著性检验

##相关性的显著性检验(pearson、kendall、spearman相关系数)##计算好相关矩阵后,对其进行显著性检验,可以使用cor.test()函数和psych包的corr.test()函数##cor.test()函数检验p值(只能检验一种相关关系)##计算第一列和第二列直接的相关性,方法使用pearsoncor.test(df[,1],df[,2], method = "pearson")

##psych包的corr.test()函数可以检验相关系数矩阵library("psych")cor##查看相关系数rcor$r##查看相关系数的显著性检验结果pcor$p

4、可视化

4.1 corrplot包

##使用 corrplot() 函数实现可视化library(corrplot)##默认图corrplot(cor$r, p.mat = cor$p, insig = 'label_sig', sig.level = c(.001, .01, .05), pch.cex = 1.5)

*** p<0.001; ** p<0.01; * p<0.05, the same below.

##作图并加上显著性(上半部分)corrplot(cor$r, p.mat = cor$p,tl.col = "black",method = "circle",type = "upper",tl.pos = "d",         insig = 'label_sig', sig.level = c(.001, .01, .05))##加上下半部分corrplot(cor$r,add=TRUE, type="lower", method="number",order="AOE",diag=FALSE,tl.pos="n", cl.pos="n")

##设置颜色,颠倒系统默认的颜色color"#053061",                           "#FFFFFF","#FDDBC7","#F4A582","#D6604D","#B2182B","#67001F"))

###颠倒系统默认的颜色(红蓝色互换位置)corrplot(cor$r, p.mat = cor$p,tl.col = "black",method = "circle",type = "upper",tl.pos = "d",col = color(9),         insig = 'label_sig', sig.level = c(.001, .01, .05), pch.cex = 1.5)corrplot(cor$r,add=TRUE, type="lower", method="number",order="AOE",diag=FALSE,tl.pos="n", cl.pos="n", col = color(9))

4.2 PerformanceAnalytice包

#加载PerformanceAnalytics包library(PerformanceAnalytics)chart.Correlation(cor$r)

图解:

对角线上显示的是分布图,左下部显示的是具有拟合线的双变量散点图,右上部显示的是相关系数以及显著性水平。

两个包做出来的图显著性不一致,额... 有点懵;后续还需进一步研究,但是一般情况下多用corrplot包作图。

参考文献:Kabacoff, R. (2015). R in Action: Data Analysis and Graphics with R: Manning Publications Co.

R计算两列数据的相关系数_【R语言】相关性分析、相关系数的显著性检验及可视化...相关推荐

  1. R计算两列数据的相关系数_相关系数简介及R计算

    变量间Pearson.Spearman.Kendall.Polychoric.Tetrachoric.Polyserial.Biserial相关系数简介及R计算对于给定数据集中,变量之间的关联程度以及 ...

  2. R计算两列数据的相关系数_数据相关性分析 correlation - R实现

    相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度.相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析. 有时候多组数据需要分析其关联性(是否有正向 ...

  3. R计算两列数据的相关系数_数据特征分析·相关性分析

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

  4. R计算两列数据的相关系数_Python+pandas计算数据相关系数(person、Kendall、spearman)...

    pandas中DataFrame对象corr()方法的用法,该方法用来计算DataFrame对象中所有列之间的相关系数(包括pearson相关系数.Kendall Tau相关系数和spearman秩相 ...

  5. R计算两列数据的相关系数_R可视化基础(7)——相关amp;相关关系可视化

    相关性分析是我们探索和分析数据时经常使用的方法,本文以R语言的角度介绍一下常用的相关分析及其可视化的实现方法.本文数据准备 本文使用CGGA数据库中 mRNAseq_325 数据(325个样本-243 ...

  6. R计算两列数据的相关系数_使用R语言中的corrplot来绘制相关系数矩阵热图

    R语言也是目前常用的数据分析编程语言之一,目前经过使用者.科学家们的开发,其功能也比较强大.本文就使用R语言中的corrplot来绘制相关系数矩阵热图进行介绍. 下面以波士顿Boston的房价数据为例 ...

  7. mysql数据库计算两列数据的和_在sql中对两列数据进行运算作为新的列操作

    如下所示: select a1,a2,a1+a2 a,a1*a2 b,a1*1.0/a2 c from bb_sb 把a表的a1,a2列相加作为新列a,把a1,a2相乘作为新列b,注意: 相除的时候得 ...

  8. python计算两组数据的协方差_(python3)数据分析之Pandas:汇总、统计、相关系数和协方差...

    pandas对象中拥有一组常用的数学和统计方法,跟NumPy数组相比,它们是基于没有缺失数据的加上构建的. In [71]: df = DataFrame([[1.4,np.nan],[7.1,-4. ...

  9. java计算两列数据差_DAX计算列基于其他表中的两列

    我需要编写一个DAX语句,从概念/逻辑的角度来看有点复杂 - 所以这可能很难解释 . 我有两张 table . 在第一个表(如下所示)上,我有一个数值列表(工资) . 对于每个值,我都有相应的日期范围 ...

  10. python两列数据生成邻接矩阵_用python实现邻接矩阵转换为邻接表,python语言实现...

    graph = {'A': ['B', 'C'], 'B': ['C', 'D'], 'C': ['D'], 'D': ['C','G','H'], 'E': ['F'], 'F': ['C']} # ...

最新文章

  1. MindSpore循环神经网络
  2. Linux下使用ping出现destination is unreachable的问题可能性
  3. Ubuntu make menuconfig与make xconfig
  4. Java之品优购课程讲义_day20(5)
  5. javafx_JavaFX 2 GameTutorial第2部分
  6. 前端学习(1258):then参数中的函数返回值
  7. 请不要再使用判断进行参数校验了
  8. CentOS下rpm命令详解
  9. Spring Boot源码分析
  10. 访问 Confluence 6 的计划任务配置
  11. cad批量打印_CAD批量打印插件的安装与使用方法
  12. dotnetbar 控件使用总结(一)
  13. Linux ——IP配置修改
  14. java学习技术栈总结
  15. 【计算机网络】物理层 : 编码 ( 数字数据 编码 数字信号 | 非归零编码 | 归零编码 | 反向不归零编码 | 曼彻斯特编码 | 差分曼彻斯特编码 | 4B/5B 编码 )
  16. 图解IFRS9 金融工具(8)减值准备规则比较
  17. Web Workers详解
  18. 人工智能作业 - A*算法程序求解八数码
  19. C1认证学习十四、十五(算法常识、HTML Head 头)
  20. win7电脑开不了机,CPU风扇转一下,停一下

热门文章

  1. 一些开源的IOS项目(wifi扫描 条形码扫描 tcp/ip 等等)
  2. 小鲸云隔空充电设备如何解决你的手机充电烦恼?
  3. w ndows10备份,Win10备份工具哪个最好?轻松备份会让你知道
  4. 2022阿里巴巴全球数学竞赛 第4题 虎虎生威(盲盒问题、集卡问题)解决思路
  5. 【环球产品探寻 4】Wolftech News拥有一流用户体验的媒体工作流系统 - 挪威
  6. 管理运筹学教程_期末复习_总结笔记
  7. red hat linux系统下载安装
  8. 计算机主板 也叫系统版,电脑主板是什么
  9. applet java_在浏览器中运行java applet
  10. 2017年北京共享单车数据(订单数据)