如何访问 vegan 函数 envfit 生成的整个模型的 R 平方值?

How do I access the R squared value for the entire model generated by vegan function envfit?

我正在分析一些微生物组数据,方法是使用无约束排序(PCA 或 NMDS),然后使用 vegan 包中的 envfit 函数拟合环境向量。 envfit 的输出包括 envfit 模型中包含的每个向量或因子的 r2 值,但我感兴趣的是所有 vectors/factors 解释的总变异量,而不仅仅是独立变量。我想我不能简单地将分配给每个环境变量的 R2 值相加,因为每个环境变量的微生物组变异 "explained" 可能存在重叠。但是,似乎没有任何方法可以访问模型的总 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),但这些都是 return NULL。

R 平方 = 解释的变异 / 总变异,或 r^2 = 1 - SSE/SST。对于两个不同的响应,残差将处于不同的尺度,因此为两个响应计算组合 R^2 没有意义。

比如在经典lm中,它们是分开计算的:

> summary(lm(cbind(mpg,wt) ~.,data=mtcars))
Response mpg :

Call:
lm(formula = mpg ~ cyl + disp + hp + drat + qsec + vs + am + 
    gear + carb, data = mtcars)

Residuals:
    Min      1Q  Median      3Q     Max 
-4.6453 -1.2655 -0.4199  1.6320  5.0843 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)  
(Intercept) 15.57062   19.81294   0.786   0.4403  
cyl          0.11982    1.10348   0.109   0.9145  
disp        -0.01361    0.01212  -1.122   0.2738  
hp          -0.01122    0.02246  -0.500   0.6223  
drat         1.32726    1.71312   0.775   0.4467  
qsec         0.09428    0.66944   0.141   0.8893  
vs           0.66770    2.22845   0.300   0.7673  
am           2.90074    2.17590   1.333   0.1961  
gear         1.18650    1.56061   0.760   0.4552  
carb        -1.32912    0.63321  -2.099   0.0475 *
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 2.816 on 22 degrees of freedom
Multiple R-squared:  0.845, Adjusted R-squared:  0.7816 
F-statistic: 13.33 on 9 and 22 DF,  p-value: 5.228e-07


Response wt :

Call:
lm(formula = wt ~ cyl + disp + hp + drat + qsec + vs + am + gear + 
    carb, data = mtcars)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.40769 -0.18831  0.00012  0.15204  0.50382 

Coefficients:
             Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.879401   2.098183  -0.419 0.679189    
cyl         -0.062246   0.116858  -0.533 0.599603    
disp         0.007252   0.001284   5.649 1.11e-05 ***
hp          -0.002763   0.002378  -1.162 0.257792    
drat        -0.145385   0.181419  -0.801 0.431483    
qsec         0.195613   0.070893   2.759 0.011445 *  
vs          -0.094189   0.235992  -0.399 0.693653    
am          -0.102418   0.230427  -0.444 0.661045    
gear        -0.142945   0.165268  -0.865 0.396411    
carb         0.304068   0.067056   4.535 0.000163 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 0.2983 on 22 degrees of freedom
Multiple R-squared:  0.9341,    Adjusted R-squared:  0.9071 
F-statistic: 34.63 on 9 and 22 DF,  p-value: 5.944e-11

对于此示例,您必须为每个环境变量计算每个 R^2