首页 > 解决方案 > 使用 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 个。有人可以向我解释一下将一个因素作为条件因素是什么意思,它真的等同于随机效应吗?

感谢任何能提供帮助的人 !

标签: rveganrda

解决方案


这意味着当您第一次拥有 时,某些术语~ factor1 + factor2别名factor3的。“别名”的意思与同义词大致相同。也就是说,当您知道 的值时factor3,您也知道factor1或的值factor2。这些不会将任何新信息添加到您已经拥有的模型中factor3。您还收到一条消息,称某些术语有别名。

要查看哪些术语有别名,请使用您的结果对象RDA

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

推荐阅读