Learn R Programming

genlasso (version 1.2)

getDxx: Helper functions for constructing generalized lasso penalty matrices

Description

These are utility functions for creating penalty matrices for the fused lasso and trend filtering problems. Most users will not need to explicitly construct these as they are created internally by the fusedlasso or trendfilter functions. The sparse variants output sparse matrices, which should be used whenever possible because of a significant savings in both construction speed and memory usage.

The function getGraph is an inverse function for fused lasso problems, returning an igraph object (from the igraph package), the graph corresponding to the passed penalty matrix.

Usage

getD1d(n)
getD1dSparse(n)
getD2d(dim1, dim2)
getD2dSparse(dim1, dim2)
getDg(graph)
getDgSparse(graph)
getDtf(n, ord)
getDtfSparse(n, ord) 
getDtfPos(n, ord, pos)
getDtfPosSparse(n, ord, pos)
getGraph(D)

Arguments

n
for getD1d, getDtf, and getDtfPos, the number of points in the 1d sequence.
dim1, dim2
for getD2d, the number of rows and columns in the 2d grid, respectively.
graph
for getDg, an igraph object from the igraph package, upon which the penalty matrix should be based (the penalty matrix is the oriented incidence matrix of the graph, with arbitrary orientations assigned t
ord
for getDtf, and getDtfPos, the order of the polynomial. E.g., ord=0 is the 1d fused lasso and ord=1 is linear trend filtering. Hence the returned matrix is the discrete (ord+1)st derivative operator.
pos
for getDtfPos, a numeric vector giving the positions of points in the 1d sequence. Must have length n.
D
for getGraph, a fused lasso penalty matrix, the incidence matrix of an undirected graph, with arbitrary edge orientations.

Value

  • All functions except getGraph return a penalty matrix, either in standard R matrix format or as a sparse matrix of class dgCMatrix via the Matrix package. The function getGraph returns an igraph object from the igraph package.

See Also

fusedlasso, trendfilter

Examples

Run this code
getD1d(9)
getDtfSparse(10,2)

graph = getGraph(getD2dSparse(4,4))
plot(graph)

Run the code above in your browser using DataLab