2014-05-07 9 views
28

Wiem, że użycie summary pomoże mi to zrobić ręcznie, jednak będę musiał wykalkulować ton wartości R-kwadratów. Dlatego potrzebuję komputera, aby go dla mnie wyodrębnić. Oto prosty przykład:Wyodrębnij wartość R-kwadratową z R w modelach liniowych

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

Jak mogę to zrobić?

Odpowiedz

49

R-squared, regulowana R-kwadrat, a wszystkie inne wartości można zobaczyć w podsumowaniu są dostępne od wewnątrz obiektu zbiorczego. Można zobaczyć wszystko za pomocą 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 

Aby uzyskać wartość R-kwadrat, typ summary(M.lm)$r.squared lub summary(M.lm)$adj.r.squared

+0

To tylko wydaje się działać, gdy istnieje jedna zmienna po lewej stronie. – John

+1

Zmienne podsumowujące powinny jednak nadal pojawiać się, gdy istnieją dwie zmienne lewostronne. Zobacz 'str (podsumowanie (lm (cena + karat ~ x + y + z, data = ggplot2 :: diamenty)))' – Andrew

7

Z jednym predyktorem można po prostu użyć cor(salarygov$MaxSalary ,salarygov$Score)^2. Alternatywnie, summary(M.lm)$r.squared.

0

To zależy, który z nich są zainteresowani:

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