“基于Vegan 软件包的生态学数据排序分析
赖江山 米湘成
(中国科学院植物研究所植被与环境变化国家重点实验室,北京 100093)
摘要:群落学数据一般是多维数据,例如物种属性或环境因子的属性。多元统计分析是群落生态学常用的分析方法,排序(ordination)是多元统计最常用的方法之一。CANOCO是广泛使用的排序软件,但缺点是商业软件价格不菲,版本更新速度也很慢。近年来,R语言以其灵活、开放、易于掌握、免费等诸多优点,在生态学和生物多样性研究领域迅速赢得广大研究人员的青睐。R语言中的外在软件包“Vegan”是专门用于群落生态学分析的工具。Vegan能够提供所有基本的排序方法,同时具有生成精美排序图的功能,版本更新很快。我们认为Vegan包完全可以取代CANOCO,成为今后排序分析的首选统计工具。本文首先简述排序的原理和类型,然后介绍Vegan的基本信息和下载安装过程,最后以古田山24公顷样地内随机抽取40个20m×20m的样方为例,展示Vegan包内各种常用排序方法(PCA,RDA,CA和CCA)和排序图生成过程,希望能为R的初学者尽快熟悉并利用Vegan包进行排序分析提供参考。
> setwd("/winxp_disk2/shenzy/R/Vegan")
> gtsdata=read.table("gtsdata.txt", header=T)
> gtsenv=read.table("gtsenv.txt", header=T)
> install.packages("vegan")
Installing package(s) into ‘/home/shenzy/R/x86_64-pc-linux-gnu-library/2.15’
(as ‘lib’ is unspecified)
试开URL’http://cran.csiro.au/src/contrib/vegan_2.0-4.tar.gz'
Content type 'application/x-gzip' length 1576584 bytes (1.5 Mb)
打开了URL
==================================================
downloaded 1.5 Mb
* installing *source* package ‘vegan’ ...
** 成功将‘vegan’程序包解包并MD5和检查
** libs
gfortran -fpic -O3 -pipe -g -c cepin.f -o cepin.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c data2hill.c -o data2hill.o
gfortran -fpic -O3 -pipe -g -c decorana.f -o decorana.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c goffactor.c -o goffactor.o
gfortran -fpic -O3 -pipe -g -c monoMDS.f -o monoMDS.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c nestedness.c -o nestedness.o
gfortran -fpic -O3 -pipe -g -c ordering.f -o ordering.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c pnpoly.c -o pnpoly.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c stepacross.c -o stepacross.o
gcc -std=gnu99 -I/usr/share/R/include -DNDEBUG -fpic -O3 -pipe -g -c vegdist.c -o vegdist.o
gcc -std=gnu99 -shared -o vegan.so cepin.o data2hill.o decorana.o goffactor.o monoMDS.o nestedness.o ordering.o pnpoly.o stepacross.o vegdist.o -lgfortran -lm -lquadmath -L/usr/lib/R/lib -lR
安装至 /home/shenzy/R/x86_64-pc-linux-gnu-library/2.15/vegan/libs
** R
** data
** inst
** preparing package for lazy loading
** help
*** installing help indices
** building package indices
** installing vignettes
‘decision-vegan.Rnw’
‘diversity-vegan.Rnw’ using ‘UTF-8’
‘intro-vegan.Rnw’ using ‘UTF-8’
** testing if installed package can be loaded
* DONE (vegan)
The downloaded source packages are in
‘/tmp/RtmpmtXtEK/downloaded_packages’
> library(vegan)
载入需要的程辑包:permute
载入程辑包:‘permute’
The following object(s) are masked from ‘package:gtools’:
permute
This is vegan 2.0-4
> decorana(gtsdata)
Call:
decorana(veg = gtsdata)
Detrended correspondence analysis with 26 segments.
Rescaling of axes with 4 iterations.
DCA1 DCA2 DCA3 DCA4
Eigenvalues 0.3939 0.2239 0.09555 0.06226
Decorana values 0.5025 0.1756 0.06712 0.03877
Axis lengths 3.2595 2.5130 1.21445 1.00854
> gts.pca=rda(gtsdata)
> gts.pca
Call: rda(X = gtsdata)
Inertia Rank
Total 352.1
Unconstrained 352.1 22
Inertia is variance
Eigenvalues for unconstrained axes:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
111.779 73.580 54.607 32.959 26.481 18.063 12.763 7.637
(Showed only 8 of all 22 unconstrained eigenvalues)
Note: 通过以上命令选择排序模型(线性模型PCA、RDA或单峰模型CA、CCA),因为Axis lengths 等同于CANOCO中的DCA分析,
DCA排序数值最大max>4选单峰,<3 选线性模型, 3<max<4 则都二者都行,这里3.2595属于此情况!总的特征根为352.1,即物种分布
的总变化量。PCA排序为每个抽所能解释的方差变化量。对于第一抽而言,111.779/352.1=31.7% 为其物种分布的解释量。
> plot(gts.pca)
>biplot(gts.pca)
因以上重叠现象严重,原因是物种分布差异打,分布不均匀的物种占据了大部分排序空间,可对物种数据进行单位方差标准化。通过scale参数实现,如下:
> gts.pca=rda(gtsdata, scale=T) > biplot(gts.pca,scaling=3)
Note:scaling=1 关注物种间关系
scaling=2 关注样方之间关系 scaling=3 关注样方与物种之间关系
> biplot(gts.pca,display="sp")
> biplot(gts.pca,display="si")
> biplot(gts.pca,display="sp", choices=c(1,3))
CA分析:
> gts.ca=cca(gtsdata)
> gts.ca
Call: cca(X = gtsdata)
Inertia Rank
Total 1.424
Unconstrained 1.424 21
Inertia is mean squared contingency coefficient
Eigenvalues for unconstrained axes:
CA1 CA2 CA3 CA4 CA5 CA6 CA7 CA8
0.50253 0.26564 0.14023 0.10502 0.09127 0.05540 0.05063 0.04204
(Showed only 8 of all 21 unconstrained eigenvalues)
> plot(gts.ca,scaling=3)
从CA解读即:如某一个物种靠近某个样方,表明该物种可能对样方位置起很大作用。从图可以看出20号样方与短柄饱(QUESER)很近。同时19与20号样方距离近,表明物种组结构特征也近!而只有少数样方出现的物种,如CASCAR,通常在排序空间边缘,表明只偶然发生。该列对应样方数值都很小或0!对在排序中心的物种,可能在取样区域是其最优分布。对应该列(CASERY)数值较大而多!
RDA分析(多个矩阵分析):
> gts.rda=rda(gtsdata,gtsenv)
> gts.rda
Call: rda(X = gtsdata, Y = gtsenv)
Inertia Proportion Rank
Total 352.0917 1.0000
Constrained 137.4026 0.3902 8
Unconstrained 214.6891 0.6098 22
Inertia is variance
Eigenvalues for constrained axes:
RDA1 RDA2 RDA3 RDA4 RDA5 RDA6 RDA7 RDA8
56.3864 42.7769 17.8270 13.5066 2.5020 2.1217 1.6616 0.6203
Eigenvalues for unconstrained axes:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
72.287 54.891 26.618 17.959 12.730 9.918 5.659 5.349
(Showed only 8 of all 22 unconstrained eigenvalues)
plot(gts.rda,display=c("sp","bp","si"),scaling=3)

在RDA排序中,箭头连线长度代表某个
环境因子与群落分布和种类分布间相关 程度的大小,越长相关性越大。 箭头连线和排序抽的夹角代表某个环境因子 与排序抽的相关性大小,越小相关性越大!
> gts.prda=rda(gtsdata,gtsenv[,1:4], gtsenv[,5:8])
> gts.prda
Call: rda(X = gtsdata, Y = gtsenv[, 1:4], Z = gtsenv[, 5:8])
Inertia Proportion Rank
Total 352.0917 1.0000
Conditional 95.0318 0.2699 4
Constrained 42.3708 0.1203 4
Unconstrained 214.6891 0.6098 22
Inertia is variance
Eigenvalues for constrained axes:
RDA1 RDA2 RDA3 RDA4
27.522 9.087 3.442 2.320
Eigenvalues for unconstrained axes:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
72.287 54.891 26.618 17.959 12.730 9.918 5.659 5.349
(Showed only 8 of all 22 unconstrained eigenvalues)
Note: gtsenv[,1:4]表示环境矩阵只取前4列,即地形因子。Constrained为42.37除以
352.09=12.03%,表示地形因子单独所能解释的特征根占总特征根的百分比。Y,Z调换下,
可得土壤因子单独的解释量,2者总共的解释量前面已经算出,即为39.02%。所以2组环境
变量共同的解释量为39.02%-15.53%-12.03%=11.46%!
CCA分析类似
>gts.cca=cca(gtsdata,gtsenv)






Recent Comments