首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RDA RDA并不是所有的约束级别都显示在triplot中。

RDA RDA并不是所有的约束级别都显示在triplot中。
EN

Stack Overflow用户
提问于 2012-12-27 11:20:14
回答 1查看 3.6K关注 0票数 3

在我的RDA三角图中,我想展示“站点”、“物种”和它们的约束条件,在我的例子中,它们是Field和Trt。问题是,并不是所有级别的约束都显示在绘图中。每个因素有两个层次。

我的RDA代码是:

代码语言:javascript
复制
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.
EN

回答 1

Stack Overflow用户

发布于 2013-05-10 16:10:17

缺少的级别是因为您试图将因素变量视为连续变量,严格地说,它们不应该显示为双图箭头。不管怎么说,就像在对虚拟变量的回归中一样,由于模型矩阵中的其余水平与虚拟变量呈线性依赖,所以不能包含因子的一个级别。考虑一下这个例子:

代码语言:javascript
复制
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因子中有四个级别:

代码语言:javascript
复制
> with(dune.env, levels(Management))
[1] "BF" "HF" "NM" "SF"

R中的惯例是使用因子的第一级作为参考级别。在一个回归,这将包括在拦截,但我们没有其中一个在RDA。注意,在model.matrix()输出的第一行中,所有值都是0;这表明该行位于BF管理组中。但是,由于只有三个变量进入了模型本身,我们只能用三个双图箭头来表示它们--这就是数学的工作方式。

我们所能做的是绘制组质心图,这就是您所引用的summary()输出中所显示的,并且可以使用scores()提取该输出。

代码语言:javascript
复制
> 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

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

代码语言:javascript
复制
text(mod, scaling = 3, display = "cn")

无论您做什么,都不能为引用组添加一个双图箭头。

我希望这能解释你所看到的行为?

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14053834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档