[R] Running "all possible subsets" of a GLM (binomial) model
    hadley wickham 
    h.wickham at gmail.com
       
    Mon Jul  7 19:04:02 CEST 2008
    
    
  
On Mon, Jul 7, 2008 at 10:18 AM, Eric Vander Wal <ejvander at lakeheadu.ca> wrote:
> I have spent a fair amount of time looking for a package that is automated
> to run glm (binomial) regression models with all possible subsets of my
> independent variables.  Something akin to Lumley's "leaps" package, but can
> be applied to glms, not just lms; or something similar to Stata's brute
> force "tryem" function?  If anyone can point me in the right direction I
> would really appreciate it.
Have a look at fitall in the meifly package:
fitall <- function(y, x, method=lm, ...) {
	data <- cbind(y=y, x)
	combs <- do.call(expand.grid, rep(list(c(FALSE, TRUE)), ncol(x)))[-1, ]
	vars <- apply(combs, 1, function(i) names(x)[i])
	form <- paste("y ~ ", lapply(vars, paste, collapse=" + "), sep = "")
	form <- lapply(form, as.formula)
	models <- lapply(form, function(f) eval(substitute(method(f,
data=data, ...), list(f=f, data=data, method=method))))
	names(models) <- 1:length(models)
	class(models) <- c("ensemble", class(models))
	models
}
That should get you started -  the meifly package also contains a few
functions for summarising and visualising these ensembles of models.
See http://had.co.nz/meifly/ for a little more detail, and a paper
using meifly for a simple case study.
Hadley
-- 
http://had.co.nz/
    
    
More information about the R-help
mailing list