赖江山的博客分享 http://blog.sciencenet.cn/u/laijiangshan 生态、统计与R语言

博文

在非约束排序图中被动加入环境因子

已有 9199 次阅读 2017-1-6 06:53 |系统分类:科研笔记

有的时候,想着排序图上同时尽量展示最大的物种矩阵的变化量(variation),同时又想展示环境因子(解释变量)。这个时候,先对物种矩阵进行非约束排序,做出排序图后,再被动加入环境因子变量。这个做法跟约束排序(RDA或CCA)还是有本质区别的时候。RDA和CCA中,排序图上的物种或样方的排序已经结合的环境信息(即是先跟环境因子进行回归的拟合值的排序),换句话说,RDA和CCA中的排序轴已经是环境因子的线性组合。而被动加入环境因子的非约束排序的排序轴跟当前所测环境因子没有瓜葛,此时排序轴代表一个虚拟的环境梯度,被动加入环境因子的目的在于考察这个虚拟的环境梯度跟当前所测的环境变量之间的关系。如何在R里面实现这个被动加入环境因子的过程,可以用vegan包里envfit函数,这个函数实际就是一个的线性回归函数,就是将非约束排序后样方再跟前几轴的坐标跟环境因子做回归,这个时候环境因子是作为响应变量(y),而样方坐标是作为解释变量进行线性回归。当然,你也可以用ordisurf函数进行环境因子与排序轴的非线性回归(实际是做趋势面)。

什么情况下要用这种非约束的排序后被动加入环境因子,当环境变量解释量非常小的时候,这个时候用这种模式是不错的选择。


以下是R代码,供参考!

library(vegan)

data(varechem)

data(varespec)

vare.mds<- metaMDS(varespec)

ef <- envfit(vare.mds, varechem, permu = 999)

ef

plot(vare.mds, display = "sites")

plot(ef, p.max = 0.1)


ef <- envfit(vare.mds ~ Al + Ca, varechem)

plot(vare.mds, display = "sites")

plot(ef)

tmp <- with(varechem, ordisurf(vare.mds, Al, add = TRUE))

with(varechem, ordisurf(vare.mds, Ca, add = TRUE, col = "green4"))




https://blog.sciencenet.cn/blog-267448-1025741.html

上一篇:如何选择好的距离指数?
下一篇:混合效应模型和广义线性模型计算R方的函数sem.model.fits
收藏 IP: 222.129.49.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-19 04:55

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部