[R] calculating drop1 R^2s

Michael Friendly friendly at yorku.ca
Thu Apr 2 23:39:08 CEST 2009


This is probably simple, but I just can't see it...

I want to calculate the R^2s for a series of linear models where each 
term is dropped in turn.  I can get the
RSS from drop1(), and the r.squared from summary() for a given model, 
but don't know how to use the
result of drop1() to get the r.squared for each model with one term dropped.

Working example:

library(vcd)         # for Baseball
library(car)         # for vif/recode
data(Baseball)

# sal87 appears as a factor because missing is coded as '.' rather than NA
Baseball$sal87 <- as.numeric(recode(Baseball$sal87, "'.'=NA"))
Baseball$logsal <- log(Baseball$sal87)

base.mod <- lm(logsal ~ years+atbat+hits+homeruns+runs+rbi+walks, 
data=Baseball)
vif(base.mod)
(drop.mod <- drop1(base.mod))

Single term deletions

Model:
logsal ~ years + atbat + hits + homeruns + runs + rbi + walks
         Df Sum of Sq      RSS      AIC
<none>                 124.612 -180.447
years     1     0.010  124.622 -182.426
atbat     1     0.570  125.182 -181.247
hits      1     0.256  124.869 -181.906
homeruns  1     0.001  124.613 -182.445
runs      1     0.691  125.303 -180.993
rbi       1     0.091  124.704 -182.254
walks     1     0.408  125.020 -181.588


-- 
Michael Friendly     Email: friendly AT yorku DOT ca 
Professor, Psychology Dept.
York University      Voice: 416 736-5115 x66249 Fax: 416 736-5814
4700 Keele Street    http://www.math.yorku.ca/SCS/friendly.html
Toronto, ONT  M3J 1P3 CANADA




More information about the R-help mailing list