在线性模型中用R提取R平方值

Zan*_*der 36 r lm

我知道使用summary将帮助我手动执行此操作,但是,我将不得不计算大量的R平方值.因此,我需要计算机为我提取它.这是一个简单的例子:

library(alr3)
M.lm=lm(MaxSalary~Score,data=salarygov)
#Here you will see the R square value
summary(M.lm)
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

And*_*rew 66

可以在摘要对象中访问R平方,调整后的R平方以及您在摘要中看到的所有其他值.您可以使用以下方式str(summary(M.lm))查看所

> str(summary(M.lm))  # Truncated output...
List of 11
 $ call         : language lm(formula = MaxSalary ~ Score, data = salarygov)
 $ terms        :Classes 'terms', 'formula' length 3 MaxSalary ~ Score
 ...
 $ residuals    : Named num [1:495] -232.3 -132.6 37.9 114.3 232.3 ...
 $ coefficients : num [1:2, 1:4] 295.274 5.76 62.012 0.123 4.762 ...
 $ aliased      : Named logi [1:2] FALSE FALSE
 $ sigma        : num 507
 $ df           : int [1:3] 2 493 2
 $ r.squared    : num 0.817
 $ adj.r.squared: num 0.816
 $ fstatistic   : Named num [1:3] 2194 1 493
 $ cov.unscaled : num [1:2, 1:2] 1.50e-02 -2.76e-05 -2.76e-05 5.88e-08
Run Code Online (Sandbox Code Playgroud)

要获得R平方值,请键入summary(M.lm)$r.squaredsummary(M.lm)$adj.r.squared

  • 但是,当有两个左侧变量时,汇总变量仍应全部出现。参见`str(summary(lm(price + carat ~ x + y + z, data=ggplot2::diamonds)))` (2认同)

Rol*_*and 7

使用一个预测器,您可以简单地使用cor(salarygov$MaxSalary ,salarygov$Score)^2.或者,summary(M.lm)$r.squared.


dro*_*opy 5

这取决于您对哪一个感兴趣:

 # adjusted R²
 summary(M.lm)$adj.r.squared
 # R²
 summary(M.lm)$r.squared
Run Code Online (Sandbox Code Playgroud)