Как мне получить значение R в квадрате для всей модели, сгенерированной веганской функцией envfit? - PullRequest
2 голосов
/ 07 ноября 2019

Я анализирую некоторые данные по микробиомам, используя неограниченную ординацию (PCA или NMDS) с последующей подгонкой вектора окружающей среды с помощью функции envfit в веганском пакете. Выходные данные envfit включают значение r2 для каждого вектора или фактора, включенного в модель envfit, но меня интересует общее количество вариаций, объясняемых всеми векторами / факторами, а не только автономными переменными. Я предполагаю, что не могу просто сложить значения 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, атрибуты (fit) $ r и Rsquare.Adj (fit), но все они возвращают NULL.

1 Ответ

0 голосов
/ 08 ноября 2019

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 для каждой переменной среды

...