R: Select an value of lambda along a grpreg path

select.grpreg {grpreg} | R Documentation

## Select an value of lambda along a grpreg path

### Description

Selects a point along the regularization path of a fitted grpreg object according to the AIC, BIC, or GCV criteria.

### Usage

    select(obj,...)
    ## S3 method for class 'grpreg'
    select(obj, criterion=c("BIC", "AIC", "GCV", "AICc",
    "EBIC"), df.method=c("default","active"), smooth=FALSE, ...)

### Arguments

`obj` | A fitted grpreg object.
`criterion` | The criterion by which to select the regularization parameter. One of `"AIC"`, `"BIC"`, `"GCV"`, `"AICc"`, or `"EBIC"`; default is `"BIC"`.
`df.method` | How should effective model parameters be calculated? One of: `"active"`, which counts the number of nonzero coefficients; or `"default"`, which uses the calculated `df` returned by `grpreg`. Default is `"default"`.
`smooth` | Applies a smoother to the information criteria before selecting the optimal value.
`...` | For S3 method compatibility.

### Details

The criteria are defined as follows, where L is the log likelihood, df is the degrees of freedom, and n is the sample size:

AIC = 2*L + 2*df

BIC = 2*L + log(n)*df

GCV= 2*L/((1-df/n)^2)

AICc = AIC + 2*df*(df+1)/(n-df-1)

EBIC = BIC + 2*log(p choose df)

### Value

A list containing:

`lambda` | The selected value of the regularization parameter, `lambda`.
`beta` | The vector of coefficients at the chosen value of `lambda`.
`df` | The effective number of model parameters at the chosen value of `lambda`.
`IC` | A vector of the calculated model selection criteria for each point on the regularization path.

### Author(s)

Patrick Breheny <patrick-breheny@uiowa.edu>

### See Also

`grpreg`

### Examples

    data(Birthwt)
    X <- Birthwt$X
    y <- Birthwt$bwt
    group <- Birthwt$group
    fit <- grpreg(X, y, group, penalty="grLasso")
    select(fit)
    select(fit,crit="AIC",df="active")
    plot(fit)
    abline(v=select(fit)$lambda)
    par(mfrow=c(1,3))
    l <- fit$lambda
    xlim <- rev(range(l))
    plot(l, select(fit)$IC, xlim=xlim, pch=19, type="o", ylab="BIC")
    plot(l, select(fit,"AIC")$IC, xlim=xlim, pch=19, type="o",ylab="AIC")
    plot(l, select(fit,"GCV")$IC, xlim=xlim, pch=19, type="o",ylab="GCV")

[Package grpreg version 3.0-2 Index]