Als: Difference between revisions

From Eigenvector Research Documentation Wiki
Jump to navigation Jump to search
imported>Neal
imported>Scott
Line 25: Line 25:
===Options===
===Options===


*     '''display''':  [ 'off' | {'on'} ]  governs level of display to command window.
====Display and Plotting====
* '''display''':  [ 'off' | {'on'} ]  governs level of display to command window.


* '''plots''':  [ 'none' | {'final'} ]  governs level of plotting.
* '''plots''':  [ 'none' | {'final'} ]  governs level of plotting.
====Non-Negativity Constraints====


*         '''ccon''':  [ 'none' | 'reset' | {'fastnnls'} ] non-negativity on contributions.  (fastnnls = true least-squares solution)
* '''ccon''':  [ 'none' | 'reset' | {'fastnnls'} ] non-negativity on contributions.  (fastnnls = true least-squares solution)


*         '''scon''':  [ 'none' | 'reset' | {'fastnnls'} ] non-negativity on spectra.    (fastnnls = true least-squares solution)
* '''cconind''':  [ ] For use with ccon='fastnnls' only; optionally indicates which factors or elements should be nonegatively controlled. Can be either a vector indicating which factors should be required to give non-negative concentration results or a logical matrix (same size as c) which indicates which elements should be non-negative. Default (empty) indicates that all elements and factors should be non-negative.
 
* '''scon''':  [ 'none' | 'reset' | {'fastnnls'} ] non-negativity on spectra.    (fastnnls = true least-squares solution)
 
* '''sconind''':  [  ] Same as cconind above except an indication of which factors or elements of s should be non-negatively controlled. If a logical matrix, must be the same size as s. Used only if scon='fastnnls'.
 
====Equality Constraints====


*          '''cc''':  [ ] contributions equality constraints, must be a matrix with ''M'' rows and up to ''K'' columns with NaN where equality constraints are not applied and real value of the constraint where they are applied. If fewer than ''K'' columns are supplied, the missing columns will be filled in as unconstrained,
*          '''cc''':  [ ] contributions equality constraints, must be a matrix with ''M'' rows and up to ''K'' columns with NaN where equality constraints are not applied and real value of the constraint where they are applied. If fewer than ''K'' columns are supplied, the missing columns will be filled in as unconstrained,
Line 41: Line 49:


*        '''scwts''':  [inf] weighting for spectral equality constraints (see ccwts) above.
*        '''scwts''':  [inf] weighting for spectral equality constraints (see ccwts) above.
====Convergence and Conditions====


*        '''sclc''':  [ ] contributions scale axis, vector with ''M'' elements otherwise 1:M is used.
*        '''sclc''':  [ ] contributions scale axis, vector with ''M'' elements otherwise 1:M is used.

Revision as of 10:37, 2 February 2009

Purpose

Alternating Least Squares computational engine for multivariate curve resolution (MCR).

Synopsis

[c,s] = als(x,c0,options);

Description

ALS decomposes a matrix X as CS such that X = CS + E where E is minimized in a least squares sense.

Inputs are the matrix to be decomposed (x) (M by N), and the initial guess (c0). If (c0) is size M by K, where K is the number of factors, then it is assumed to be the initial guess for C. If (c0) is size K by N then it is assumed to be the initial guess for S. If M = K then, (c0) is assumed to be the initial guess for C.

An optional input (options) is described below.

The outputs are the estimated matrices C, (c), (M by K) and S, (s), (K by N). For a typical decomposition, (c) is a matrix of contributions and (s) is a matrix of spectra. The function

[c,s] = als(x,c0)

will decompose (x) using an non-negatively constrained alternating least squares. To include other constraints, use the (options) input described below.

Note that if no non-zero equality constraints are imposed on a factor the spectra are normalized to unit length. This can lead to significant scaling differences between factors that have non-zero equality constraints and those that do not.

Options

Display and Plotting

  • display: [ 'off' | {'on'} ] governs level of display to command window.
  • plots: [ 'none' | {'final'} ] governs level of plotting.

Non-Negativity Constraints

  • ccon: [ 'none' | 'reset' | {'fastnnls'} ] non-negativity on contributions. (fastnnls = true least-squares solution)
  • cconind: [ ] For use with ccon='fastnnls' only; optionally indicates which factors or elements should be nonegatively controlled. Can be either a vector indicating which factors should be required to give non-negative concentration results or a logical matrix (same size as c) which indicates which elements should be non-negative. Default (empty) indicates that all elements and factors should be non-negative.
  • scon: [ 'none' | 'reset' | {'fastnnls'} ] non-negativity on spectra. (fastnnls = true least-squares solution)
  • sconind: [ ] Same as cconind above except an indication of which factors or elements of s should be non-negatively controlled. If a logical matrix, must be the same size as s. Used only if scon='fastnnls'.

Equality Constraints

  • cc: [ ] contributions equality constraints, must be a matrix with M rows and up to K columns with NaN where equality constraints are not applied and real value of the constraint where they are applied. If fewer than K columns are supplied, the missing columns will be filled in as unconstrained,
  • ccwts: [inf] a scalar value or a 1xK vector with elements corresponding to weightings on constraints (0, no constraint, 0<wt<inf imposes constraint "softly", and inf is hard constrained). If a scalar value is passed for (ccwts), that value is applied for all K factors.
Soft constraints are imposed by augmenting an additional column onto X and a weight of 1 weights a given equality constraint so that it has an equal influence as the average single variable in X. For additional information see P.J. Gemperline and E. Cash, “Advantages of Soft versus Hard Constraints in Self–Modeling Curve Resolution Problems. Alternating Least Squares with Penalty Functions”, Anal. Chem., 75(16), 4236–4243 (2003).
  • sc: [ ] spectra equality constraints, must be a matrix with N columns and up to K rows with NaN where equality contraints are not applied and real value of the constraint where they are applied. If fewer than K rows are supplied, the missing rows will be filled in as unconstrained.
  • scwts: [inf] weighting for spectral equality constraints (see ccwts) above.

Convergence and Conditions

  • sclc: [ ] contributions scale axis, vector with M elements otherwise 1:M is used.
  • scls: [ ] spectra scale axis, vector with N elements otherwise 1:N is used.
  • condition: [{'none'}| 'norm' ] type of conditioning to perform on S and C before each regression step. 'norm' uses conditioning which can help stabilize the regression when factors are significantly different in magnitude.
  • tolc: [ {1e-5} ] tolerance on non-negativity for contributions.
  • tols: [ {1e-5} ] tolerance on non-negativity for spectra.
  • ittol: [ {1e-8} ] convergence tolerance.
  • itmax: [ {100} ] maximum number of iterations.
  • timemax: [ {3600} ] maximum time for iterations.
  • rankfail: [ 'drop' |{'reset'}| 'random' | 'fail' ] how are rank deficiencies handled:
  • drop - drop deficient components from model,
  • reset - reset deficient components to initial guess,
  • random - replace deficient components with random vector,
  • fail - stop analysis, give error.

Examples

To decompose a matrix (x) without non-negativity constraints use:

options = als('options');
options.ccon = 'none';
options.scon = 'none';
[c,s] = als(x,c0,options);

The following shows an example of using soft-constraints on the second spectral component of a three-component solution assuming that the variable softs contains the spectrum to which component two should be constrained.

[m,n] = size(x);
options = als('options');
options.sc = NaN\*ones(3,n); %all 3 unconstrained
options.sc(2,:) = softs; %constrain component 2
options.scwts = 0.5; %consider as 1/2 of total signal in X
[c,s] = als(x,c0,options);

See Also

mcr, parafac, pca