Als sit
Jump to navigation
Jump to search
Purpose
ALS_SIT Alternating least squares with shift invariant tri-linearity
Synopsis
- model = als_sit(x,ncomp); % identifies model with default options (calibration step)
- model = als_sit(x,ncomp,options); % identifies model (calibration step)
- options = als_sit('options'); % returns a default options structure
- pred = als_sit(xnew,model); % find scores for new samples given old model
- als_sit demo
Description
ALS_SIT employs an MCR-like model to employ a tri-linearity constraint to factors that may shift (e.g., GC/LC elution profiles). See:
- Schneide, P.-A., Bro, R., Gallagher, N., "Shift-invariant tri-linearity (SIT) - A new model for resolving untargeted GC-MS data," J Chemom (2023).
- Schneide, P.-A., Bro, R., Gallagher, N., "Soft shift-invariant tri-linearity: modelling shifts and shape changes in gas-chromatography coupled mass spectrometry," [in progress] (2023).
It can also be use for non-shifting profiles:
- Tauler, R., Marques, I., Casassas, E., J Chemom, 12(1), 55–75 (1998),
The convention for ALS_SIT is that samples are in the last mode and the shifting profiles are in the first mode. E.g. if the samples for input (x) are in Mode 1, and the shifting mode is Mode 2, the call to ALS_SIT is
- model = als_sit(permute(x,[2,3,1]),ncomp);
Inputs
- x = multi-way array to be decomposed
- If X is a IxJxK array (all K slabs have similar size) then this is similar to an input for PARAFAC.
- If the K slabs have different size then X is input as a cell array e.g., X{1} = X1; X{2} = X2; (note the curly brackets). Mode 1 of the X{k} can shift and/or have different dimensions [i.e., size(X{k},1)] can vary, but Mode dimension [size(X{k},2] is the same for all X{k}, k=1,...,K.
- ncomp = the number of components to estimate
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
Options
Display and Plotting
- display: [ 'off' | {'on'} ] governs level of display to command window.
- plots: [ 'none' | {'final'} ] governs level of plotting.
- waitbar: [ 'off' | 'on' | {'auto'} ] governs use of waitbar,
Convergence and Conditions
- normorder: [ {2} ] order of normalization applied to spectra (required to assure convergence). Typical settings are:
- 1 = normalize to unit area (1-norm)
- 2 = normalize to unit length (2-norm) {default}
- inf = normalize to unit maximum (inf-norm)
- This normalization is only applied to non-equality constrained components as these are the ones with a multiplicative ambiguity.
- condition: [{'none'}| 'norm' ] type of conditioning to perform on S and C before each regression step. 'norm' conditions each spectrum or contribution to its own norm. Conditioning can help stabilize the regression whenfactors 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,
Examples
To decompose a matrix (x) without non-negativity constraints use:
- options = als('options');
- options.ccon = 'none';
- options.scon = 'none';