Partial Least-Squares and Discriminant Analysis
Patial Least-Squares (PLS) is a widely used technique in various areas. This package provides a function to perform the PLS regression using the Nonlinear Iterative Partial Least-Squares (NIPALS) algorithm. It consists of a tutorial function to explain the NIPALS algorithm and the way to perform discriminant analysis using the PLS function.
The difference between the total least squares regression and partial least squares regression can be explained as follows:
For given independent data X and dependent data Y, to fit a model
Y = X*B + E
the total least squares regression solves the problem to minimize the error in least squares sense:
J = E'*E
Instead of directly fitting a model between X and Y, the PLS decomposes X and Y into low-dimensional space (so called laten variable space) first:
X = T*P' + E0, and
Y = U*Q' + F0
where P and Q are orthogonal matrices, i.e. P'*P=I, Q'*Q=I, T and U has the same number of columns, a, which is much less than the number of columns of X. Then, a least squares regression is performed between T and U:
U = T*B + F1
At the end, the overall regression model is
Y = X*(P*B*Q') + F
i.e. the overall regression coefficient is P*B*Q'.
The reason to perform PLS instead of total LS regression is that the data sets X and Y may contain random noises, which should be excluded from regression. Decomposing X and Y into laten space can ensure the regression is performed based on most reliable variation.
Cite As
Yi Cao (2025). Partial Least-Squares and Discriminant Analysis (https://www.mathworks.com/matlabcentral/fileexchange/18760-partial-least-squares-and-discriminant-analysis), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
html/
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.0 | update description |