Я сравнил ?prcompи ?princompнашел кое-что о анализе главных компонентов Q-режима и R-режима (PCA). Но, честно говоря, я этого не понимаю. Кто-нибудь может объяснить разницу и, возможно, даже объяснить, когда применять какие?
Я сравнил ?prcompи ?princompнашел кое-что о анализе главных компонентов Q-режима и R-режима (PCA). Но, честно говоря, я этого не понимаю. Кто-нибудь может объяснить разницу и, возможно, даже объяснить, когда применять какие?
Ответы:
Разница между ними не имеет ничего общего с типом PCA, который они выполняют, а только с методом, который они используют. Как говорит страница справки для prcomp:
Расчет выполняется путем разложения по сингулярным значениям (центрированной и, возможно, масштабированной) матрицы данных, а не с использованием
eigenковариационной матрицы. Как правило, это предпочтительный метод для численной точности.
С другой стороны, princomp страница справки гласит:
Расчет выполняется с использованием
eigenкорреляционной или ковариационной матрицы, как определеноcor. Это сделано для совместимости с результатом S-PLUS. Предпочтительный метод расчета состоит в использованииsvdнаx, как это делается вprcomp«.
Таким образом, 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 ). Кроме того, результаты функций сравниваются с использованием процедуры моделирования, чтобы увидеть, отличаются ли разные методы по собственным значениям, собственным векторам и оценкам, полученным из выходных данных.
Ниже приведены результаты моего теста:
> job<-read.table("./job_perf.txt", header=TRUE, sep="")
> pc.cr<-prcomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr1<-princomp(job, scale=TRUE, cor=TRUE, scores=TRUE)
> pc.cr$scale
commun probl_solv logical learn physical appearance
5.039841 1.689540 2.000000 4.655398 3.770700 4.526689
> pc.cr1$scale
commun probl_solv logical learn physical appearance
4.805300 1.610913 1.906925 4.438747 3.595222 4.316028
Тестовые данные:
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