Fastnnls sel
Jump to navigation
Jump to search
Purpose
Fast non-negative least squares with selective constraints.
Synopsis
- [b,xi] = fastnnls_sel(x,y,tol,b0,eqconst,xi,nnconst)
- [b,xi] = fastnnls_sel(x,y,tol,b0,eqconst,nnconst);
Description
FASTNNLS finds (b) that minimizes X*b-y in a constrained least squares sense. It is similar to b = X/y except that selected elements of (b) cannot contain negative values.
NOTE: This version is nearly identical to the standard fastnnls function except that it allows row-wise, or element-wise, control over non-negative and equality constraints.
Inputs
- x = MxK matrix of predictor variables.
- y = MxN vector or matrix of predicted variables. If (y) is a matrix, the result is the solution for each column of (y) calculated independently.
Optional Inputs
- tol = tolerance on the size of a regression coefficient that is considered zero. Not supplied or empty [ ] implies the default value [based on (x) and )eps)].
- b0 = KxN initial guess for the regression vector(s). Default or empty [ ] is interpreted as no known intial guess.
- eqconst = KxN equality constraints matrix. A value of NaN indicates no equality constraint for that element. Elements with finite values indicates an equality-constraint. If (eqconst) is empty [ ] then no equality constraints are imposed.
- xi = Cached inverses output by a previous run of FASTNNLS or FASTNNLS_SEL (see outputs). If (xi) is set to 0 (zero) caching is diabled. If (xi) is empty [ ] it serves as a placeholder in the input argument list.
- nnconst = KxN matrix or Kx1 vector used to indicate which elements of (b) are to be non-negatively constrained. If (nnconst) is Kx1 the function expands it to ==> repmat(nncont,1,N). Elements in (nnconst) with a value of 1 are non-negatively constrained. A value of 0 indicates a non-constrained value (i.e., negative values are allowed). If not supplied or empty [ ], the default is that all values are non-negatively constrained. If KxN (equal in size to b0), (nnconst) provides an element-by-element control of the non-negativity of (b). If Kx1 then (nnconst) provides control of the non-negativity of rows of (b).
Outputs
- b = KxN non-negatively constrained least squares solution.
- xi = cached inverses of x'x (unless caching was disabled).