coef.genlasso: Extract cefficients from a genlasso object

View source: R/coef.genlasso.R

coef.genlassoR Documentation

Extract cefficients from a genlasso object

Description

This function extracts coefficients from a generalized lasso solution path object, for any set of tuning parameter values along the path. It can return dual coefficients. The requested coefficients can also be parametrized by degrees of freedom value instead of tuning parameter value.

Usage

## S3 method for class 'genlasso'
coef(object, lambda, nlam, df, 
     type = c("primal", "dual", "both"), ...)

Arguments

object

an object of class "genlasso", or an object which inherits this class (i.e., "fusedlasso", "trendfilter").

lambda

a numeric vector of tuning parameter values at which coefficients should be calculated. The user can choose to specify one of lambda, nlam, or df; if none are specified, then coefficients are returned at every knot in the solution path.

nlam

an integer indicating a number of tuning parameters values at which coefficients should be calculated. The tuning parameter values are then chosen to be equally spaced on the log scale over the first half of the solution path (this is if the full solution path has been computed; if only a partial path has been computed, the tuning parameter values are spaced over the entirety of the computed path).

df

an integer vector of degrees of freedom values at which coefficients should be calculated. In the case that a single degrees of freedom value appears multiple times throughout the solution path, the least regularized solution (corresponding to the smallest value of lambda) is chosen. If a degrees of freedom value does not appear at all in the solution path, this function chooses the solution whose degrees of freedom is largest, subject to being less than or equal to the specified value.

type

a character string, one of "primal", "dual", or "both", indicating whether primal coefficients, dual coefficients, or both, should be returned. Default is "primal", which corresponds to the solution of the original problem.

...

additional arguments passed to coef.

Value

Returns a list with the following components:

beta

if the type is "primal" or "both", a matrix containing the primal coefficients, each column corresponding to a value of lambda.

u

if the type is "dual" or "both", a matrix containing the dual coefficients, each column corresponding to a value of lambda.

lambda

a numeric vector containing the sequence of tuning parameter values, corresponding to the columns of beta and u.

df

an integer vector containing the sequence of degrees of freedom values corresponding to the columns of beta and u.

See Also

genlasso, predict.genlasso, plot.genlasso

Examples

# Constant trend filtering (the 1d fused lasso)
set.seed(0)
n = 20
beta0 = rep(sample(1:10,5),each=n/5)
y = beta0 + rnorm(n,sd=0.5)
a = fusedlasso1d(y)

# Get the coefficients that use 3, 4, and 5 degrees
# of freedom 
coef(a,df=3:5)

glmgen/genlasso documentation built on Jan. 2, 2023, 7:01 a.m.