Метод главных компонент, PCA, алгоритм NIPALS
Метод главных компонент (МГК, в англоязычной литературе - principal component analysis, PCA) - один из наиболее распространенных методов факторного анализа. Суть метода состоит в декомпозиции матрицы данных X и представлении ее в виде произведения двух матриц: T (матрица счетов, scores) и P (матрица нагрузок, loadings):
X=TPT (1)
что, по сути, является переходом к новым переменным.
Одно из важнейших свойств такого преобразования - ортогональность новых переменных:
PPT = I, TTT = I
(где I - единичная матрица), это значительно упрощает дальнейшие операции с матрицами и позволяет ранжировать новые переменные в соответствии с их значимостью. Как правило, работают только со значимыми переменными ("главными компонентами"), а незначимые переменные (соответствующие случайным погрешностям) исключаются из дальнейшего рассмотрения - это позволяет сжать данные и значительно снизить погрешность расчетов.
Наиболее распространенным алгоритмом для вычислений по методу главных компонент является алгоритм NIPALS (Nonlinear Iterative Partial Least Squares), подробно описанный в работе [1]
Здесь Вы можете скачать программу, реализующую метод главных компонент (алгоритм NIPALS) в среде MATLAB.
Установка:
Скачав архив nipals.zip, распакуйте его в рабочую папку MATLAB (обычно это C:MATLABwork). Программа совместима со всеми версиями MATLAB.
Синтаксис:
[P,T]=nipals(X<, PCs>);
здесь P - матрица нагрузок, T - матрица счетов, X - матрица данных (число столбцов равно числу сигналов детектора (длин волн), число строк равно числу образцов), PCs - число главных компонент, необязательный параметр. Если число главных компонент не задано, программа принимает его равным числу столбцов матрицы данных.
Примечание:
Матрица данных должна быть предварительно центрирована, т.е. из каждого столбца вычитается его среднее значение. Это нужно для того, чтобы избежать свободного члена в выражении (1) и упростить расчеты.
[1] Introduction to multivariate calibration in analytical chemistry, Richard G. Brereton, Analyst, 2000, 125, 2125–2154