2014-05-07 53 views
28

我知道使用summary將幫助我手動完成此操作,但是,我將不得不計算大量的R平方值。因此,我需要電腦爲我解壓。這裏有一個簡單的例子:在線性模型中用R提取R平方值

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

我該怎麼做?

回答

49

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 

要獲得R平方值,類型summary(M.lm)$r.squaredsummary(M.lm)$adj.r.squared

+0

這似乎只在工作的時候有一個左邊的變量。 – John

+1

儘管有兩個左側變量,但彙總變量仍應全部出現。參見'str(彙總(lm(價格+克拉〜x + y + z,數據= ggplot2 ::菱形)))' – Andrew

7

使用一個預測器,您可以簡單地使用cor(salarygov$MaxSalary ,salarygov$Score)^2。或者,summary(M.lm)$r.squared

0

這取決於你是哪一個興趣:

# adjusted R² 
summary(M.lm)$adj.r.squared 
# R² 
summary(M.lm)$r.squared