Функции > Анализ данных > Анализ главных компонентов > Сведения о функциях для анализа главных компонентов
Сведения о функциях для анализа главных компонентов
В PTC Mathcad доступны несколько функций для выполнения анализа главных компонентов (PCA).
Nipals, Nipals2 - выполняет PCA.
scores, loadings, PCAeigenvals, PCAvariance - извлекает данные из выходных данных функций Nipals2 и Nipals .
Сведения об анализе главных компонентов
Довольно часто встречаются наборы данных, содержащие большое количество коррелированных или избыточных переменных. При этом не только снижается эффективность анализа данных, но и могут возникать численные проблемы (например, при обращении матрицы). Для таких случаев требуется метод сжатия данных с использованием меньшего числа ортогональных переменных. Для этой цели существует группа методов под общим названием "методы факторного анализа". Наиболее фундаментальным из таких методов является метод анализа главных компонентов (PCA), с помощью которого обеспечивается сжатие данных до уровня самых доминирующих факторов.
В методе PCA используется n-мерное пространство данных, в котором определяется новый набор ортогональных осей (т. е. новые переменные), которые оптимальным образом описывают дисперсию данных. Под оптимальностью новых переменных понимается следующее. Первая переменная описывает максимально возможное отклонение данных (т. е. максимальную дисперсию), вторая — максимальное значение оставшегося отклонения и т. д. Такие переменные называются главными компонентами набора данных.
В наборах данных, в которых исходные переменные являются взаимозависимыми или коррелированными, высшие главные компоненты близки к нулю (и обычно представляют собой просто шум) и могут быть отброшены. Базовые ортогональные (некоррелированные) переменные называются скрытыми переменными, а число переменных, необходимых для описания данных, называется рангом данных.
Сравнение функций NIPALS и SVD
Для многих наборов данных можно использовать функцию svd, чтобы рассчитывать количественные показатели и нагрузки, однако в общем случае это нежелательно по следующим причинам.
При использовании сингулярного разложения необходимо рассчитывать все количественные показатели несмотря на то, что высшие количественные показатели не требуются. Сингулярное разложение больших наборов данных с высокой избыточностью является неэффективным с точки зрения вычислений и может заканчиваться сбоем.
Для функции svd необходимо, чтобы число столбцов в матрице данных превышало число строк. Если число измерений больше числа переменных, возникают проблемы.
Алгоритм NIPALS (нелинейный итерационный метод с использованием частных наименьших квадратов) рассчитывает количественные показатели и нагрузки итерационно и не имеет таких проблем. Этот алгоритм численно устойчив и может работать с наборами данных любого размера. В нем вычисляется только требуемое число главных компонентов.
Было ли это полезно?