В чем разница между функциями R prcomp и princomp?
70
Я сравнил ?prcompи ?princompнашел кое-что о анализе главных компонентов Q-режима и R-режима (PCA). Но, честно говоря, я этого не понимаю. Кто-нибудь может объяснить разницу и, возможно, даже объяснить, когда применять какие?
Разница между ними не имеет ничего общего с типом PCA, который они выполняют, а только с методом, который они используют. Как говорит страница справки для prcomp:
Расчет выполняется путем разложения по сингулярным значениям (центрированной и, возможно, масштабированной) матрицы данных, а не с использованием eigenковариационной матрицы. Как правило, это предпочтительный метод для численной точности.
Расчет выполняется с использованием eigenкорреляционной или ковариационной матрицы, как определено cor. Это сделано для совместимости с результатом S-PLUS. Предпочтительный метод расчета состоит в использовании svdна x, как это делается в prcomp«.
Таким образом, prcompэто предпочтительнее , хотя на практике вы вряд ли увидите большую разницу (например, если вы запустите примеры на страницах справки, вы должны получить идентичные результаты).
Обычно многомерный анализ (вычисление корреляции, извлечение latents и т.д.) делаются из столбцов данных , которые являются функцией или вопросами, - в то время как единицы выборки, строки, являются г espondents. Следовательно, этот путь называется R- анализом пути. Иногда, однако, вы можете сделать многомерный анализ responsents, а д ОПРОСЫ рассматриваются в качестве единиц выборки. Это был бы Q способ анализа.
Между этими двумя понятиями нет формальной разницы, поэтому вы можете управлять обоими с помощью одной и той же функции, а только транспонировать свои данные. Однако существуют различия в вопросах стандартизации и интерпретации результатов.
Это общий ответ: я не касаюсь конкретно функций R prcompи princompпотому что я не пользователь R и не знаю о возможных различиях между ними.
Полезная и конкретная документация от Грегори Б. Андерсона под названием « PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCAДала» дала больше информации по этой теме.
Следующие два абзаца были извлечены из введения:
В R есть два основных метода для выполнения PCA без каких-либо пропущенных значений: (1) спектральное разложение (R-режим [также известный как собственное разложение]) и (2) разложение по сингулярным значениям (Q-режим; R Development Core Team 2011). Оба эти метода могут быть выполнены с использованием функций eigen (R-mode) и svd (Q-mode) соответственно, или могут быть выполнены с использованием многих функций PCA, найденных в пакете stats и других дополнительных доступных пакетах. Метод анализа спектральной декомпозиции исследует ковариации и корреляции между переменными, в то время как метод декомпозиции сингулярных значений рассматривает ковариации и корреляции между выборками. Хотя оба метода могут быть легко выполнены в R, метод разложения по сингулярным значениям (т.е.
Этот документ посвящен сравнению различных методов для выполнения PCA в R и предоставляет соответствующие методы визуализации для проверки нормальности в статистическом пакете. Более конкретно, этот документ сравнивает шесть различных функций, созданных для PCA или используемых для них: eigen, princomp, svd, prcomp, PCA и pca. По всему документу необходимый R-код для выполнения этих функций встроен в текст с использованием шрифта Courier New и имеет цветовую кодировку с использованием метода, предоставленного в Tinn-R ( https://sourceforge.net/projects/tinn-r ). Кроме того, результаты функций сравниваются с использованием процедуры моделирования, чтобы увидеть, отличаются ли разные методы по собственным значениям, собственным векторам и оценкам, полученным из выходных данных.
Ответы лучше, когда они автономны, потому что ссылки, как правило, становятся неработающими (например, если страница перемещается или удаляется). Не могли бы вы попытаться расширить свой ответ?
Патрик Куломб
@PatrickCoulombe, это было сделано. Спасибо за ваше предложение. Я приму к сведению это в будущем.
Ответы:
Разница между ними не имеет ничего общего с типом PCA, который они выполняют, а только с методом, который они используют. Как говорит страница справки для
prcomp
:С другой стороны,
princomp
страница справки гласит:Таким образом,
prcomp
это предпочтительнее , хотя на практике вы вряд ли увидите большую разницу (например, если вы запустите примеры на страницах справки, вы должны получить идентичные результаты).источник
prcomp
, является предпочтительным методом.Обычно многомерный анализ (вычисление корреляции, извлечение latents и т.д.) делаются из столбцов данных , которые являются функцией или вопросами, - в то время как единицы выборки, строки, являются г espondents. Следовательно, этот путь называется R- анализом пути. Иногда, однако, вы можете сделать многомерный анализ responsents, а д ОПРОСЫ рассматриваются в качестве единиц выборки. Это был бы Q способ анализа.
Между этими двумя понятиями нет формальной разницы, поэтому вы можете управлять обоими с помощью одной и той же функции, а только транспонировать свои данные. Однако существуют различия в вопросах стандартизации и интерпретации результатов.
Это общий ответ: я не касаюсь конкретно функций R
prcomp
иprincomp
потому что я не пользователь R и не знаю о возможных различиях между ними.источник
Полезная и конкретная документация от Грегори Б. Андерсона под названием «
PRINCIPAL COMPONENT ANALYSIS IN R AN EXAMINATION OF THE DIFFERENT FUNCTIONS AND METHODS TO PERFORM PCA
Дала» дала больше информации по этой теме.Следующие два абзаца были извлечены из введения:
источник
prcomp
princomp
Ниже приведены результаты моего теста:
Тестовые данные:
commun probl_solv logical learn physical appearance 12 52 20 44 48 16 12 57 25 45 50 16 12 54 21 45 50 16 13 52 21 46 51 17 14 54 24 46 51 17 22 52 25 54 58 26 22 56 26 55 58 27 17 52 21 45 52 17 15 53 24 45 53 18 23 54 23 53 57 24 25 54 23 55 58 25
источник