R软件包vegan教程 6.2 分类的图示和解释

标签:
r软件vegan软件包生态学聚类制图和解释 |
6.2 分类图及其解释(Display and interpretation of classes)
执行系统聚类分析,可以从众多角度检查其结果:极端情况是每个点代表一类,或者所有点属于同一类。通常我们打算像特定分类数目的非层次系统那样,检查特定水平上的聚类结果。通过在一些聚合水平上“修剪”(聚类)树,使聚类扁平,从而得到期望的分类数。
由 R 中的函数 rect.hclust 实现“修剪”可视化,函数 cuttree 生成一个指定分类数的分类向量。
> plot(cluc)
> rect.hclust(cluc, 3)
> grp <- cutree(cluc, 3)
http://s16/bmiddle/b5c8908cgd0ca826645df&6906.2
> boxplot(A1 ~ grp, data=dune.env, notch = TRUE)
http://s11/bmiddle/b5c8908cgd0ca8ce9eeca&6906.2
分类向量可以当作任意其他因子变量使用。检查群落分类好坏的天然方法是看看用它预测没有在聚类中使用的外部环境变量的表现。Dune 数据中唯一的连续变量是 Al 层的厚度:[The only continuous variable in the Dune data is the thickness of the A1 horizon]
想要的话,我们可以采用涉及因子的全部正规的统计方法检验聚类的“显著性”,例如函数 lm 或者 aov。分类也可用于同外部因子变量的比较。但是 vegan 没有提供有关工具。或许最好看看 labdsv 软件包和相关教程。
聚类结果可以用排序图显示。vegan 中所有关于因子的常用函数都管用:ordihul,ordispider,还有 ordiellipse 。这里只给出第一个函数(即 ordihul )的用法举例:
> ord <- cca(dune)
> plot(ord, display = "sites")
> ordihull(ord, grp, lty = 2, col = "red")
http://s2/bmiddle/b5c8908cgd0ca92d2d371&6906.2
据说有时候排序中的 overlaying classification
可用于相互校验:如果类簇在排序图中看起来明显,分析可能是足够的。但是,分类可以重叠,而且分析仍然出色。可能需要 3
个或者更多的轴显示多元变量分类结构。另外,排序和分类可以使用不同的标准。在我们的例子里,CA 使用加权卡方标准,聚类使用
Bray—Curtis 距离,二者差别很大。函数 ordirgl 及其支持函数 orglspider 使用动态 3D
图检查分类。在一个序列中,vegan 软件包有函数 ordicluster 叠加 hclust
树:
http://s10/bmiddle/b5c8908cgd0ca9a195ee9&6906.2
该函数像原始聚类系统图一样合并点和类点中心。
Single linkage clustering 是与排序图配合使用最常见的一种方法,它是一种特殊的聚类算法,因为它总是从点到点的进行合并——只有最近的点才能被识别,用不着关于聚类成员的其他信息。但是,系统树图隐藏了一些信息——只显示类与类的聚合信息,不显示那些被连在一起的具体的点。“树”连接起来的独立的点被称为最小生成树(minimum spanning tree, MST)。在图论中,“tree”是连接起来的、没有回路的图,“生成树”(spanning tree)是连接所有点的树,MST是连接距离最短的生成树。vegan 中的函数 spantree 可以找到MST,它有一个 lines 函数,用于把“树”叠加到排序(图)上:
http://s4/bmiddle/b5c8908cg7b47763bdab3&6906.2
在距离指数中,distance =1 表示两个样地毫无相同之处。函数 spantree 认为这些最大差异为丢失的数据( missing data ),这些数据不会用于建“树”。如果由于 missing data 使所有点都不能被连接,结果就会得到无连接的生成树。图论中称之为“森林”( forest )。有时候反过来用 MST 检查排序——如果树是线性的,排序可能就是 ok 的。弯曲的树表示弧形或者马蹄形,凌乱的树表示糟糕的排序结果,或者需要更高的维度。但是,结果却不容易解释。