R、冗余分析(RDA)、ggplot2、置信椭圆

 在生态环境领域中(实际中,其他专业也用到),冗余分析(RDA)是我们常用的分析方法,分析目的为“解释变量”对“响应变量”的影响情况。类似RDA的方法,还有CCA。这里以RDA为例→数据处理、分析过后,我们需要对结果进行可视化,R语言ggplt2程序包无疑是可视化神器,然而,怎样利用ggplot2对RDA结果进行可视化,需要我们对RDA结果进行了解,提取需要展示的元素。许多论文中在排序分析的图中添加了置信椭圆,ggplot2自带函数目前支持每个分组样本量≥4时画椭圆,这里我们使用gglayer包的geom_ord_ellipse函数给样方添加置信椭圆(支持样本量≥3)。

 library(vegan)library(plyr)library(gglayer)library(ggplot2)library(ggrepel)
fc=read.csv("D:\\R\\factor.csv",header = T,row.names = 1)#读取解释变量数据
sp=read.csv("D:\\R\\sp.csv",header = T,row.names = 1)#读取响应变量数据
spp=decostand(sp,method = "hellinger")#对响应变量做转化
fcc=log10(fc)#对解释变量做转化
uu=rda(spp~.,fcc)#RDA分析
ii=summary(uu)  #查看分析结果
sp=as.data.frame(ii$species[,1:2])*2#可根据出图结果,对画图数据做一定的放大或缩小,下同
st=as.data.frame(ii$sites[,1:2])
yz=as.data.frame(ii$biplot[,1:2])
grp=as.data.frame(c(rep("a",3),rep("b",3),rep("c",4),rep("d",6)))#根据样方类型分组,“a”有3个样本,“b”有3个样本……,共16个。注意样本的顺序和个数!
colnames(grp)="group"
ggplot() +geom_point(data = st,aes(RDA1,RDA2,shape=grp$group,fill=grp$group),size=4)+scale_shape_manual(values = c(21:25))+geom_ord_ellipse(aes(st$RDA1,st$RDA2,color=grp$group,group=grp$group),###注意,是在这里添加椭圆ellipse_pro = 0.68,linetype=3,size=1)+###注意,是在这里添加椭圆geom_segment(data = sp,aes(x = 0, y = 0, xend = RDA1, yend = RDA2), arrow = arrow(angle=22.5,length = unit(0.35,"cm"),type = "closed"),linetype=1, size=0.6,colour = "red")+geom_text_repel(data = sp,aes(RDA1,RDA2,label=row.names(sp)))+geom_segment(data = yz,aes(x = 0, y = 0, xend = RDA1, yend = RDA2), arrow = arrow(angle=22.5,length = unit(0.35,"cm"),type = "closed"),linetype=1, size=0.6,colour = "blue")+geom_text_repel(data = yz,aes(RDA1,RDA2,label=row.names(yz)))+labs(x=paste("RDA 1 (", format(100 *ii$cont[[1]][2,1], digits=4), "%)", sep=""),y=paste("RDA 2 (", format(100 *ii$cont[[1]][2,2], digits=4), "%)", sep=""))+geom_hline(yintercept=0,linetype=3,size=1) + geom_vline(xintercept=0,linetype=3,size=1)+guides(shape=guide_legend(title=NULL),color=guide_legend(title=NULL),fill=guide_legend(title=NULL))+theme_bw()+theme(panel.grid=element_blank())

  RDA探索完毕,上面的图比较骚气,但,不能用,因为需要检验模型是否显著、解释变量是否存在共线性,在论文写作中应删掉某些图层,使图更加美观、更简洁。这里只是简单的举个例,在进行约束排序分析之前,我们先要检查数据,是符合RDA还是CCA,网上有很多例子,这里不再赘述。当RDA或者CCA不能很好的解决我们的问题时,我们需要结合其它分析方法,如gbm、RF能求出相对重要性等,也可利用SEM去探索。原则上,不同的数据需要用不同的方法探索,选择一种最理想的结果。
 刚接触R的朋友,可能会因为R的“难”入门而选择较容易的CANOCO软件,当然后者也是生态环境领域的数据分析神器,但是,当我们想要个性化分析、个性化出图时,目前后者无法满足,R,应是首选。实验设计、实验过程、数据处理及分析、绘图、写作等是科研的必然过程,为促进相互进步、资源共享,我们创建了学术交流QQ群:335774366。欢迎有兴趣的朋友加入→指导。
声明:以上内容仅为作者个人理解,有不对的地方,欢迎指正。

R、冗余分析(RDA)、ggplot2、置信椭圆相关推荐

  1. 冗余分析(RDA)中若包含生物学重复会怎样?

      一般微生物测序实验会包含三个生物学重复,然后获得有重复的OTU table和环境因子的数据.许多文献在对OTUs进行冗余分析时都包含了重复,包含重复与不包含重复会有何种不同?是否会影响我们对分析结 ...

  2. rda冗余分析步骤_分子生态网络分析(MENA)构建微生物网络示例

    分子生态网络分析(MENA)构建微生物网络示例续前文"微生物共发生网络",本篇继续简介分子生态网络分析(Molecular Ecological Network Analysis, ...

  3. rda冗余分析步骤_群落分析的典范对应分析(CCA)概述

    典范对应分析(CCA)与去趋势典范对应分析(DCCA)概述典范对应分析(canonical correspondence analysis,CCA)是单峰约束排序方法,是对应分析(CA)与多元回归的结 ...

  4. rda冗余分析步骤_FEMS Microbiol Ecol |微生物生态学中的多变量分析

    [论文题目]Multivariate analyses in microbial ecology [期刊名称]FEMS Microbiology Ecology, 2007, 62:142-160 [ ...

  5. rda分析怎么做_数量生态学笔记||冗余分析(RDA)

    上一节数量生态学笔记||冗余分析(RDA)概述中,我们回顾了RDA的计算过程,不管这个过程我们有没有理解透彻,我希望你能知道的是:RDA是响应变量矩阵与解释变量之间多元多重线性回归的拟合值矩阵的PCA ...

  6. rda分析怎么做_群落分析的冗余分析(RDA)概述

    约束排序之冗余分析(RDA)概述 前篇先后简介了主成分分析(PCA).对应分析(CA).主坐标分析(PCoA)以及非度量多维尺度分析(NMDS).这些排序方法均属于非约束排序,只涉及一个数据矩阵,并在 ...

  7. rda冗余分析步骤_数量生态学笔记||冗余分析(RDA)

    上一节数量生态学笔记||冗余分析(RDA)概述中,我们回顾了RDA的计算过程,不管这个过程我们有没有理解透彻,我希望你能知道的是:RDA是响应变量矩阵与解释变量之间多元多重线性回归的拟合值矩阵的PCA ...

  8. R包vegan的冗余分析(RDA)

    冗余分析(Redundancy analysis,RDA)是一种回归分析结合主成分分析的排序方法,也是多响应变量(multi-response)回归分析的拓展.在群落分析中常使用RDA,将物种多度的变 ...

  9. R语言绘图实战:RDA冗余分析

    #载入vegan包 library(vegan) #读取"样本-物种"文件 sp <- read.table(file=file.choose(),sep="\t& ...

  10. R语言|冗余分析(RDA)到底如何应用?如何在R语言中实现?

    冗余分析(RDA)排序分析应用的例子 冗余分析(The Redundant analysis,RDA),属于一种约束排序分析.与PCA.PCoA.CA及NMDS等非约束排序方法不同的是:RDA分析涉及 ...

最新文章

  1. 我的新浪微博,顺便总结下近况
  2. 删除所有的distribution chain再保存的后台执行逻辑
  3. 掌握基本的Java程序开发过程 题库 1213
  4. 51nod-1548:欧姆诺姆和糖果
  5. s1200 博图高速脉冲计数值没有变化_如何实现SIMATIC S7-1200的高速计数器(HSC)软件门控制?...
  6. android dialog一个按钮,7种形式的Android Dialog使用实例
  7. k8s的命令行管理工具
  8. 软件测试计算机硬件 64,《计算机系统与系统软件》用AIDA64测试上机报告
  9. 迅为IMX6ULL开发板点亮第一个led灯之led子系统的使用
  10. Java实现DOCX文件和DOC文件互转
  11. 局域网内打印机打印只能打印一页或是几页的解决办法
  12. LeetCode算法日记:340.至多包含K个不同字符的最长子串
  13. i2c信号的ACK与NACK
  14. SEDA源码解读(二)
  15. el-input实现尾部加字
  16. 【方法篇·壹】css开发技巧-全局样式设置和局部样式
  17. 关于手机内部存储,外部存储
  18. 清华北大教授联袂推荐的好书:《区块链:金融应用实践》
  19. 管理驾驶舱 or 领导驾驶舱
  20. 信息学奥赛一本通C++语言-----1097:画矩形

热门文章

  1. centos 7 拉黑IP
  2. 爬取msdn.itellyou.cn网站
  3. Serial Scope——基于QCustomPlot的串口虚拟示波器开发过程
  4. pause 和 title
  5. 移动终端浏览器初始设置apple-mobile-web-app-capable(转)
  6. 《Java解惑》系列——02字符谜题——谜题11:最后的笑声(字符、字符串连接操作)
  7. 【基金学习】小白基金学习记录-从入门到实践(一)
  8. dnf连不上服务器删什么文件,DNF:4.9更新“无法上游戏”,删1个文件才可登录,策划不争气!...
  9. 自己DIY word2010脚注和尾注没有的格式
  10. 【最小割】HDU 5294 Tricks Device