2014-05-07 14 views
28

Tôi biết rằng việc sử dụng summary sẽ giúp tôi thực hiện việc này theo cách thủ công, tuy nhiên, tôi sẽ phải tính toán tấn các giá trị R bình phương. Vì vậy, tôi cần máy tính để trích xuất nó cho tôi. Dưới đây là ví dụ đơn giản:Trích xuất giá trị R-square với R trong các mô hình tuyến tính

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

Tôi làm cách nào để làm điều đó?

Trả lời

49

R-squared, điều chỉnh R-squared, và tất cả các giá trị khác mà bạn nhìn thấy trong phần tóm tắt có thể truy cập từ bên trong đối tượng tóm tắt. Bạn có thể thấy tất cả mọi thứ bằng cách sử dụng 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 

Để có được giá trị R-squared, gõ summary(M.lm)$r.squared hoặc summary(M.lm)$adj.r.squared

+0

này dường như chỉ làm việc khi có một biến phía bên tay trái. – John

+1

Các biến tóm tắt sẽ vẫn xuất hiện khi có hai biến bên trái. Xem 'str (tóm tắt (lm (giá + carat ~ x + y + z, dữ liệu = ggplot2 :: kim cương)))' – Andrew

7

Với một người dự đoán bạn chỉ có thể sử dụng cor(salarygov$MaxSalary ,salarygov$Score)^2. Hoặc, summary(M.lm)$r.squared.

0

Nó phụ thuộc cái nào bạn quan tâm:

# adjusted R² 
summary(M.lm)$adj.r.squared 
# R² 
summary(M.lm)$r.squared 
Các vấn đề liên quan