[R] grplasso

Scott Raynaud scott.raynaud at yahoo.com
Tue Jan 10 20:40:06 CET 2012


I want to use the grplasso package on a data set where I want to fit a linear 
model.  My interest is in identifying significant beta coefficients.  The 
documentation is a bit cryptic so I'd appreciate some help.
 
I know this is a strategy for large numbers of variables but consider a simple 
case for pedagogical puposes.  Say I have two 3 category predictors (2 dummies 
each), a binary predictor and a continuous predictor with a continuous outcome:
 
y  x1  x2  x3  x4 x5 x6
rows of data here
......
......
 
Naturally, I want to select x1 and x2 as a group and x3 and x4 as another group.  
The documentation has a couple of examples but it's not clear how they translate 
to the current problem.  How do I specify my groups and run the lasso regression?
 
Looks like this is the grouping part:
 
index<-c(NA,)
 
but I'm not sure how to specify the df for the variables past the NA for the intercept.
 
Once that's defined the penalty can be specified:
 
lambda <- lambdamax(x, y = y, index = index, penscale = sqrt,
model = LogReg()) * 0.5^(0:5) 
In my case I'd use LinReg for the model.  
 
Then the model:
 
fit <- grplasso(x, y = y, index = index, lambda = lambda, model = LogReg(),
penscale = sqrt, control = grpl.control(update.hess = "lambda", trace = 0))
 
again using LinReg for the model.

This can be plotted against lambda, but when I do lasso regression 
in other software I end up with a plot of the coefficients against the 
tuning parameter with a cutpoint or a table and graph that tells me 
what to include in the model based on some selected criterion.  
It's not clear from the example if there's a cross-validation or some 
other procedure to determine what variables to include.  Plot(fit) 
produces a graph of coefficients against lambda but nothig to indicate 
what to include.  What is used in the package, if anything, to make that 
determination?



More information about the R-help mailing list