Since regression modeling is often more “art” than science, I often find myself testing many iterations of a regression structure. What are some efficient ways to summarize the information from these multiple model runs in an attempt to find the “best” model? One approach I’ve used is to put all the models into a list and run

`summary()`

across that list, but I imagine there are more efficient ways to compare?Sample code & models:

`ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14) trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69) group <- gl(2,10,20, labels=c("Ctl","Trt")) weight <- c(ctl, trt) lm1 <- lm(weight ~ group) lm2 <- lm(weight ~ group - 1) lm3 <- lm(log(weight) ~ group - 1) #Draw comparisions between models 1 - 3? models <- list(lm1, lm2, lm3) lapply(models, summary)`

**Answer**

http://svn.cluelessresearch.com/tables2graphs/longley.png

Or, if you must, use tables:

The apsrtable package or the `mtable`

function in the memisc package.

Using `mtable`

```
mtable123 <- mtable("Model 1"=lm1,"Model 2"=lm2,"Model 3"=lm3,
summary.stats=c("sigma","R-squared","F","p","N"))
> mtable123
Calls:
Model 1: lm(formula = weight ~ group)
Model 2: lm(formula = weight ~ group - 1)
Model 3: lm(formula = log(weight) ~ group - 1)
=============================================
Model 1 Model 2 Model 3
---------------------------------------------
(Intercept) 5.032***
(0.220)
group: Trt/Ctl -0.371
(0.311)
group: Ctl 5.032*** 1.610***
(0.220) (0.045)
group: Trt 4.661*** 1.527***
(0.220) (0.045)
---------------------------------------------
sigma 0.696 0.696 0.143
R-squared 0.073 0.982 0.993
F 1.419 485.051 1200.388
p 0.249 0.000 0.000
N 20 20 20
=============================================
```

**Attribution***Source : Link , Question Author : Chase , Answer Author : Eduardo Leoni*