R vegan RDA并非所有级别的约束都显示在triplot中

时间:2012-12-27 11:20:15

标签: r constraints rda vegan triplot

在我的RDA triplot中,我想显示'sites','species'及其约束,在我的例子中是Field和Trt。问题是并非所有级别的约束都显示在图中。每个因素分为两个级别。

我的RDA代码是:

Dummy.rda <- rda(species.rda ~ Field + Trt,RDA.env, scale=TRUE)

summary(Dummy.rda, scaling=3)  #Here I see only one level of each reported in:Biplot scores for constraining variables. However all levels appear in: Centroids for factor constraints

anova.cca(Dummy.rda, step=100, by='margin') # degrees of freedom are correct for both factors (df=1)

plot(Dummy.rda, scaling = 3) #This displays all levels of Field and Trt but only one of each has an arrow

plot(Dummy.rda, display = "species", xlim = xlims, ylim = ylims, 
       scaling = 3)
text(Dummy.rda, scaling = 3, display = "bp")  # I want to customize the RDA plot, but this 'text' only displays 1 level of each of Field and Trt.

1 个答案:

答案 0 :(得分:3)

缺少的级别是因为你试图将因子变量看作是连续的 - 严格来说它们不应该显示为双箭头箭头。无论如何,正如在使用虚拟变量的回归中一样,不能包括因子的一个级别,因为它线性地依赖于模型矩阵中剩余级别的虚拟变量。考虑这个例子:

require("vegan")
data(dune)
data(dune.env)

mod <- rda(dune ~ Management, data = dune.env)

> model.matrix(mod)
   ManagementHF ManagementNM ManagementSF
2             0            0            0
13            0            0            1
4             0            0            1
16            0            0            1
6             1            0            0
1             0            0            1
8             1            0            0
5             1            0            0
....<truncated>

您在model.matrix()的输出中看到的是进入圣职任务的变量。请注意,模型矩阵中有三个变量,但Management因子中有四个级别:

> with(dune.env, levels(Management))
[1] "BF" "HF" "NM" "SF"

R中的约定是使用因子的第一级作为参考级。在回归中,这将包含在拦截中,但我们没有RDA中的那一个。请注意,在model.matrix()输出的第一行中,所有值都是0;这表示该行位于BF管理组中。但由于只有三个变量适用于模型,我们只能通过三个双箭头箭头来表示它们 - 这就是数学运算的方式。

我们可以做的是绘制 centroids 组,这就是您引用的summary()输出中显示的内容以及可以使用scores()提取的内容:

> scores(mod, display = "cn")
                   RDA1       RDA2
ManagementBF -1.2321245  1.9945903
ManagementHF -1.1847246  0.7128810
ManagementNM  2.1149031  0.4258579
ManagementSF -0.5115703 -2.0172205
attr(,"const")
[1] 6.322924

因此,要将质心添加到现有的情节中,请执行以下操作:

text(mod, scaling = 3, display = "cn")

无论您做什么,都不能为参考组添加双标图箭头。

我希望这可以解释你所看到的行为吗?