Метод главных компонент, 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

Дата: 11 апреля 2012



 

Добавить комментарий

Имя

E-mail

Комментарий

Контрольный вопрос:
Сколько будет: 2*2-6