В этом посте мы покажем PCA, выполненный с использованием спектрального разложения (собственного анализа) ковариационной матрицы, а также с факторизацией SVD. Мы сделаем это с помощью языка R.

R

R — это свободный язык программирования (он же полный по Тьюрингу) и статистическая среда. У него есть ряд особенностей, поскольку он наследует многие идеи из LISP и потому, что он был разработан в сообществе статистики с упором на тех, кто плохо знаком с программированием и использует его как пакет без графического интерфейса.

PCA через спектральное разложение

Ниже приведена наша собственная функция, созданная с помощью матричных функций, избегающая многих удобных функций, предоставляемых R.

Проверка вывода

Мы можем подтвердить правильность вывода, сравнив его со встроенной функцией prcomp(). Мы будем использовать пример hello world из статистики, данные радужной оболочки в качестве нашей матрицы данных и решим не масштабировать, чтобы соответствовать настройке по умолчанию в функции prcomp().

СВД Факторизация

Проверка вывода

Используя, как и прежде, встроенную функцию prcomp(), мы видим, что SVD в центрированной матрице данных извлекает те же компоненты и дисперсии компонентов, что и prcomp().