本篇文章介绍基于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. 组策略 从入门到精通(二) 如何区别跨越WAN网的计算机对组策略的套用
  2. CDN网络究竟是怎么加速的?
  3. 设计模式—适配器模式
  4. 安装windows系统时遇到的大坑——鼠标键盘没反应
  5. 机器学习中的训练与损失 test and loss (训练loss不下降原因集合)
  6. mysql b 树 b树_MySQL B树和B+树的区别
  7. express-cli入门_使用Express.js入门
  8. 如何解决“本地编辑,更新时传入删除”消息
  9. linux实现标准设备输入输出,Linux的标准输入和输出
  10. 【算法】排序_基数排序
  11. RTI_DDS自定义插件开发 6 监听者
  12. QListView超简单的更新列表
  13. 深度图像确定目标距离_技术交流一种距离选通水下激光成像系统设计与实验研究...
  14. 【4G通讯模组相关】 TCPIP连接本地电脑测试 、内网穿透
  15. 计算机条件求和函数,在excel中怎样根据多个条件进行求和
  16. mysql计算同比和环比的区别_MySQL统计同比环比SQL
  17. 3.Regression(二)
  18. 厦大2021期中考试
  19. 微云虚拟化VOS操作系统
  20. 使用VueBarcode结合vueEasyPrint打印条形码标签

热门文章

  1. RN上使用react-native-video视频播放器插件
  2. 旋风加速安卓Android官网,旋风加速官网版最新版
  3. 没有任何机械基础,如何自学机械设计?
  4. 数据挖掘算法之Apriori算法应用实例
  5. 关于《ADS-B点迹数据质量控制散及基础预警算法和实现流程》
  6. 鹏城实验室支持建设的OpenI启智社区荣登2021“科创中国”开源创新榜
  7. revit模型怎么在手机上看_怎么在手机上查看建筑模型图??
  8. 通过PyMuPDF编写增值税发票多PDF文件合并工具
  9. win7用html做桌面,win7系统怎么制作主题桌面 win7系统制作主题桌面方法
  10. 设置指定ip访问mysql数据库