使用纯素软件包对冗余分析(RDA)中的约束排序有困难的理解

时间:2019-06-04 10:44:09

标签: r vegan rda

根据评论者的建议,我正在使用冗余分析(RDA)分析功能性状数据。这是我第一次使用此方法,因此在理解其实用性方面遇到一些麻烦。

我的数据具有以下结构:

# Generate a dataset of 7 traits for 27 individuals
traits_test <- as.data.frame(matrix(data = 0, ncol = 7, nrow = 27))
colnames(traits_test) <- paste(array("trait_", dim = 7), c(1:7), sep = "")
for(i in 1:7) traits_test[,i] <- runif(27, 0, 1)

# Generate a dataframe with 3 factors
factor1 <- as.factor(c("A", "A", "A", "A", "A","B", "B", "B", "B", "A", 
                       "A", "A", "A", "A", "B","B", "B", "B", "A", "A", 
                       "A", "A", "A", "B","B", "B", "B"))
factor2 <- as.factor(c(array("C", dim = 9), array("D", dim = 18)))
factor3 <- as.factor(c(array("E", dim = 9), array("F", dim = 9), array("G", dim = 9)))
varexp <- cbind.data.frame(factor1, factor2, factor3)

我的研究的第一步是使用以下混合模型分析每个特征:

trait_x ~ factor1 + factor2 + (1|factor3)

第二步是使用带有RDA的多元方法。由于我不知道如何在RDA中包括随机效应,因此我使用以下模型将第三个因子编码为正常因子(得出了令人满意的结果):

# Analysis conducted with the vegan package
library(vegan)

# RDA analysis
RDA <- rda(traits_test ~ factor1 + factor2 + factor3, data = varexp)

但是,审阅者建议我将第三个因子编码为以下模型的协变量:

RDA <- rda(traits_test ~ factor1 + factor2 + Condition(factor3), data = varexp)

我不明白的是,在最后一个模型中,我在输出中只有1个RDA轴,而不是初始模型中的3个。有人可以向我确切解释将一个因素包括为“条件”是什么意思,这真的等同于随机效应吗?

感谢任何可以提供帮助的人!

1 个答案:

答案 0 :(得分:0)

这意味着~ factor1 + factor2的某些术语在您初次使用factor3时已被别名 。 “别名”的含义与同义词几乎相同。也就是说,当您知道factor3的值时,您也知道factor1factor2的值。这些不会为您已有factor3的模型添加任何新信息。您还会收到一条消息,说某些术语已被别名。

要查看哪些术语被别名,请向结果对象RDA发出

alias(RDA) # long display
alias(RDA, names = TRUE) # give only the names of aliased terms