【发布时间】:2020-03-03 15:44:36
【问题描述】:
我正在分析一些微生物组数据,方法是使用无约束排序(PCA 或 NMDS),然后使用 vegan 包中的 envfit 函数拟合环境向量。 envfit 的输出包括 envfit 模型中包含的每个向量或因子的 r2 值,但我对所有向量/因子解释的变化总量感兴趣,而不仅仅是独立变量。我认为我不能简单地将分配给每个环境变量的 R2 值相加,因为每个环境变量“解释”的微生物组变异可能存在重叠。但是,似乎没有任何方法可以访问模型的总 r2 值。
使用示例数据集,这是我迄今为止尝试过的:
library(vegan)
library(MASS)
data(varespec, varechem)
library(MASS)
ord <- metaMDS(varespec)
fit <- envfit(ord, varechem, perm = 999)
fit
这显示了每个环境变量的 r2,但是如何提取整个模型的 r2 值?
我尝试过运行 fit$r、attributes(fit)$r 和 Rsquare.Adj(fit),但这些都返回 NULL。
【问题讨论】:
-
嗨,你能不能总是在 Stack Overflow 上发布可重现的代码? 1. 您的
library呼叫丢失,2.cca()仅适用于数字列。干杯! -
谢谢!这是我的第一篇文章,所以只是学习绳索。我会做出改变。
-
我还更新了我的问题以包含一个更接近我自己的数据集,并使用 NMDS 而不是 CCA,产生的输出更类似于我的实际分析。
-
现在这是一个很好的问题,但我不知道 :)
-
您必须分别考虑每个环境变量。因为它们具有不同的比例,所以您无法计算 R^2,即 1 - SSE / SST。例如,试试这个 summary(lm(cbind(mpg,wt) ~.,data=mtcars))