R函数prcomp和princomp有什么区别?


69

我比较?prcomp?princomp发现了有关Q模式和R模式主成分分析(PCA)的知识。但说实话–我不明白。谁能解释其中的区别,甚至可以解释何时申请?


4
哦,这真令人沮丧。:)
RomanLuštrik2011年

2
是关于R中的prcomp和princomp函数之间的差异还是“ Q模式”与“ R模式PCA”之间的差异的问题?两者无关。
布雷特

有一阵子了。但是我一有空就会检查一下。IIRC我实际上有一些不同...
hans0l0

Answers:


50

它们之间的区别与它们执行的PCA类型无关,而与它们使用的方法无关。作为帮助页prcomp说:

该计算是通过对(居中的和可能缩放的)数据矩阵进行奇异值分解来完成的,而不是通过使用eigen协方差矩阵来完成的。通常,这是数值精度的首选方法。

另一方面,princomp 帮助页面显示

使用eigen由确定的相关或协方差矩阵完成计算cor。这样做是为了与S-PLUS结果兼容。一种首选的计算方法是使用svdon x,就像在中所做的那样prcomp。”

因此,尽管在实践中您不太可能看到很大的差异(例如,如果在帮助页面上运行示例,您应该会得到相同的结果)prcomp是首选



1
另外,请参见为什么通过数据的SVD对数据进行PCA?讨论为什么通过实施的数据矩阵上的SVD prcomp是首选方法。
amoeba 2015年

22

一般多变量分析(计算的相关性,提取latents等),其是特征或问题数据列的完成, -而样品单元,的行中,是- [R espondents。因此,这种方式称为R方式分析。但有时,你可能想要做responsents的多变量分析,而q uestions作为样本单位处理。那就是Q方式分析。

两者之间没有形式上的区别,因此您可以使用相同的功能来管理两者,而只需转置数据即可。但是,在标准化和结果解释方面存在差异。

这是一个普遍的答复:我没有专门涉及R函数prcompprincomp因为我不是R用户,也不知道它们之间可能存在的差异。


5

来自Gregory B. Anderson的有用且特定的文档,标题为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)。这两种方法都可以分别使用本征函数(R-mode)和svd(Q-mode)进行长时执行,或者可以使用stats程序包和其他附加可用程序包中的许多PCA函数来执行。分析的频谱分解方法检查变量之间的协方差和相关性,而奇异值分解方法则检查样本之间的协方差和相关性。尽管两种方法都可以在R中轻松执行,但是奇异值分解方法(即

本文档重点在于比较在R中执行PCA的不同方法,并提供适当的可视化技术来检查统计数据包中的正态性。更具体地说,本文档比较了为PCA创建或可用于PCA的六个不同功能:本征,princomp,svd,prcomp,PCA和pca。在整个文档中,使用Courier New字体将执行这些功能的基本R代码嵌入文本中,并使用Tinn-R(https://sourceforge.net/projects/tinn-r)中提供的技术对代码进行颜色编码。此外,使用仿真过程比较函数的结果,以查看不同方法在特征值,特征向量和输出中提供的分数方面是否不同。


2
独立连接时,答案会更好,因为链接往往会断开(例如,页面移动或删除)。您介意尝试扩大答案吗?
Patrick Coulombe 2014年

@PatrickCoulombe,已完成。感谢您的建议。以后我会注意到这一点。
pengchy

1

prcompn1princompn

以下是我的测试结果:

> 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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.