flsa {flsa} | R Documentation |
Fused Lasso Signal Approximator
Description
These functions are the main interface functions for calculating FLSA solutions
Usage
flsa(y, lambda1=0, lambda2=NULL, connListObj = NULL, splitCheckSize=1e+09,
verbose=FALSE, thr = 1e-09, maxGrpNum=4*length(y))
flsaTopDown(y, lambda1=0, groups=1:length(y), lambda2=NULL)
flsaGetSolution(solObj, lambda1=0, lambda2=NULL, dim=NULL)
Arguments
y |
response variable; numeric |
lambda1 |
penalty parameter vector (non-negative) for the absolute values uf the coefficients; numeric |
lambda2 |
penalty parameter vector (non-negative) for the difference of certain coefficients; numeric |
groups |
Return solutions for which the given number of groups is present - solutions found exactly at the breakpoint |
connListObj |
an object specifying which differences are to be penalized by lambda2. If NULL, then the dimensionalty of y is being used. If y is a vector, the differences of neighbouring coefficients are penalized. If y is a matrix, differences of neighbouring coefficients in 2 dimensions are being penalized. For more information see |
splitCheckSize |
a parameter specifying from which size on, groups of variables are not being checked for breaking up; can be used to reduce computation time; may lead to inaccurate results |
solObj |
Solution object as returned by FLSA if lambda2=NULL |
dim |
dimensions how the result should be formatted for a specific lambda. Used to format the 2-dimensional FLSA as a matrix in the response. For this, just include the dimensions of |
verbose |
print status messages during fitting |
thr |
the error threshold used in the algorithm |
maxGrpNum |
if every step of the algorithm, a group with a higher number is generated; this limits the number of steps the algorithm can take |
Details
flsa
is the main function for calculate a flsa
fit. If lambda2=NULL, then it returns an object that encodes the whole solution path. Solutions for specific values of lambda1 and lambda2 can then be obtained by using flsaGetSolution
.
flsaTopDown
calculates the solution of the 1-dimensional FLSA, starting at large values of lambda2. If only solutions for large values of lambda2 are needed, this is more efficient.
Author(s)
Holger Hoefling
See Also
Examples
library(flsa)
# generate some artificial data, 1 and 2 dimensional
y <- rnorm(100)
y2Dim = matrix(rnorm(100), ncol=10)
### apply function flsa and get solution directly
lambda2= 0:10/10
res <- flsa(y, lambda2=lambda2)
res2Dim <- flsa(y2Dim, lambda2=lambda2)
### apply the function and get the solution later
resSolObj <- flsa(y, lambda2=NULL)
resSolObjTopDown <- flsaTopDown(y)
resSolObj2Dim <- flsa(y2Dim, lambda2=NULL)
res2 <- flsaGetSolution(resSolObj, lambda2=lambda2)
### here note that the solution object does not store that the input was 2 dimensional
### therefore, res2Dim does not give out the solution as a 2
### dimensional matrix (unlike the direct version above)
res2Dim2 <- flsaGetSolution(resSolObj2Dim, lambda2=lambda2)