同一数据集上的PCA和探索性因子分析:差异和相似性;因子模型与PCA


19

我想知道对同一数据集执行主成分分析(PCA)和探索性因素分析(EFA)是否合乎逻辑。我听说专业人士明确建议:

  1. 了解分析的目的是什么,并选择PCA或EFA进行数据分析;
  2. 完成一项分析后,无需执行另一项分析。

我理解两者之间的动机差异,但是我只是想知道在同时解释PCA和EFA提供的结果时是否有错误?


8
为什么不安全?如果您了解两者之间的动机差异,则应该处于以下两种位置之一:将它们视为互补,并愿意探索两者。对于您想做什么,说服力更强。似乎您想被告知有正确的事情要做,但是PCA与FA还是与FA的争论如此之久,以至于如果两位专家都同意,通常只是他们俩都与第三位专家不同意,但是对于原因。
Nick Cox

你在学什么?一些社会科学事物,例如幸福,还是客观数据,例如利率?
Aksakal

Answers:


20

两种模型- 主成分公共因子 -都是相似的简单线性回归模型,可以通过潜在变量预测观察到的变量。让我们拥有中心变量V1 V2 ... Vp,我们选择提取2个分量/因子FIFII。那么模型就是方程系统:

V1个=一种1个一世F一世+一种1个一世一世F一世一世+Ë1个

V2=a2IFI+a2IIFII+E2

...

Vp=

其中系数a是载荷,F是因子或分量,变量E是回归残差。在此,FA模型PCA模型的完全不同之处在于FA施加了以下要求:变量E1 E2 ... Ep(与F s 不相关的误差项)必须彼此不相关参见图片)。这些误差变量FA称为“唯一因素”;它们的方差是已知的(“唯一性”),但按大小写的值则不是。因此,因子得分F仅作为良好的近似值进行计算,并不精确。

(此公共因子分析模型的矩阵代数表示法在脚注1中。)1

在PCA中,来自预测不同变量的误差变量可以自由关联:没有施加任何误差变量。它们表示我们采用了遗漏的p-2尺寸的“浮渣” 。我们知道E的值,因此我们可以将组件分数F计算为精确值。

那就是PCA模型和FA模型之间的差异。

由于上述差异,FA能够解释成对的相关性(协方差)。PCA通常无法做到(除非提取的组件数= p);它只能解释多元方差2。因此,只要通过解释相关性的目的来定义“因子分析”术语,PCA 就不是因子分析。如果将“因子分析”更广泛地定义为提供或暗示可以解释的潜在“特征”的方法,则可以将PCA视为因子分析的一种特殊且最简单的形式2

有时 -在某些条件下的某些数据集中-PCA留下几乎不相关的E项。然后PCA可以解释相关性,变得像FA。具有许多变量的数据集并不少见。这使一些观察者断言,随着数据的增长,PCA结果变得接近FA结果。我不认为这是规则,但趋势确实可能是。无论如何,考虑到它们的理论差异,最好有意识地选择该方法。如果您想将变量减少到潜在值,FA将是一个更现实的模型,您将把这些潜在值视为变量背后的真实潜在特征并使它们相互关联。

但是,如果您还有另一个目标-在降低维度的同时尽可能保持数据云的各个点之间的距离-PCA比FA更好。(但是,迭代多维缩放(MDS)程序会更好。PCA 等于非迭代度量MDS。)如果您再也不关心距离,并且只对保留尽可能多的数据总体差异感兴趣尽可能少地选择-PCA是最佳选择。


因子分析数据模型: V = ˚F ' + é ð Û 其中, V是分析的数据(列居中或标准化的), ˚F是常见的因子值(未知真实的,而不是因子分)与单元方差, A是公共因子负载的矩阵(模式矩阵), E是唯一因子值(未知), u是唯一因子负载的向量,等于唯一性的平方根( u 2)。一部分1个V=F一种+Ëd一世一种GüVn cases x p variablesFn x m一种p x mËn x püpü2可以只标记为“é”为简单起见,因为它是在式打开的答案。Ëd一世一种Gü

该模型的主要假设:

  • E变量(分别为公共因子和唯一因子)的均值和单位方差为零; 通常将 E假定为多元正态,但通常情况下 F不必为多元正态(如果都假定为多元正态,那么 V也是如此);FEEFV
  • 变量彼此不相关,并且与 F变量不相关。EF

从公共因子分析模型得出,m个公共因子(m<p变量)的负荷 A(也表示为 A m ))应密切再现变量 Σ之间观察到的协方差(或相关性)。因此,如果因子是正交的,则基本因子定理指出:2 AA(m)Σ

Σ听,说: Σ +ðÚ2Σ^=AAΣΣ^+diag(u2)

其中Σ是协方差再现(或相关性)与在其对角线上共同方差(“共同度”)的基质; 向量u 2是唯一方差(“唯一性”),即方差减去社区。非对角线差异()是由于这些因素是生成数据的理论模型,因此,它比建立在其上的观测数据更简单。观察到的和再现的协方差(或相关性)之间差异的主要原因可能是:(1)因子数量m在统计上不是最优的;(2)偏相关(这些是Σ^u2p(p-1)/2不属于共同因素的因素)(3)社区的评估价值不高,其初始价值不高;(4)关系不是线性的,采用线性模型是有问题的;(5)提取方法产生的模型“亚型”对于数据不是最佳的(请参阅有关不同的提取方法)。换句话说,某些FA数据假设未得到完全满足。

对于普通PCA,当m = p(使用所有分量)时,它会根据载荷精确地再现协方差,并且如果m < p(仅保留少量第一分量),则通常无法做到。PCA的因子定理是:

Σ=AA(p)=AA(m)+AA(pm)

因此,负载和掉落的A p - m 负载都是公用性和唯一性的混合体,并且两者都不能单独帮助恢复协方差。越接近p,更好的PCA恢复协方差,作为一项规则,但小(这往往是我们感兴趣的)没有帮助。这与FA不同,FA 旨在以很小的最佳因子数恢复协方差。如果A A ' p - m 接近对角线,则PCA变为FA,其中AA(m)A(pm)AA(pm)恢复所有协方差。正如我已经提到的,PCA偶尔会发生这种情况。但是PCA缺乏强制这种对角化的算法能力。它是由FA算法完成的。A(m)

FA,而不是PCA,是一个数据生成模型:它假定为生成协方差的“真实”值的“真实”公因数(通常是未知数,因此请尝试在一定范围内尝试m)。观察到的协方差是“真实”的协方差+小随机噪声。(由于执行对角线化,使成为所有协方差的唯一恢复者,因此上述噪声可能很小且是随机的。)试图将比最佳量更多的因子拟合到过度拟合尝试中,而不一定是有效的过度拟合尝试。A(m)

两个FA和PCA旨在最大化,但对于PCA它是唯一的目标; 对于FA来说,这是随之而来的目标,另一个是消除独特性。该轨迹是PCA中特征值的总和。FA中的某些提取方法以最大化痕量为代价增加了更多的伴随目标,因此它并不重要。trace(AA(m))

总结两种方法之间的明显差异。FA旨在(直接或间接)最小化A A '的各个对应非对角元素之间的差异。一个成功的FA模型是为协方差留下很小类似随机变量的误差模型(正常或均匀值约为0,没有异常值/肥胖尾部)。PCA 最大化ř 一个Ç ë ',其等于ř 一个Ç ë '(和ΣAAtrace(AA)trace(AA)等于主分量的协方差矩阵,该矩阵是对角的矩阵)。因此,PCA并不对所有个体协方差都“忙”着:它根本不能,只是数据正交旋转的一种形式。AA

由于最大化迹-方差解释由部件- PCA 占协方差,因为协方差是共享的方差。从这个意义上讲,PCA是变量的整个协方差矩阵的“低秩近似” 。从观测的角度来看,这种近似是观测的欧几里得距离矩阵的近似(这就是为什么PCA是度量MDS,称为“主坐标分析”)。这一事实不应使我们脱离PCA不建模的现实协方差矩阵(每个协方差),它是由极少的活着的潜在特征生成的,可以想象成对我们的变量而言是超验的;即使它很好,PCA近似仍然是固有的:这是数据的简化。


如果您想查看在PCA和FA中完成的分步计算,请进行注释和比较,请在此处查看


这是一个很好的答案。
Subhash C. Davar 2014年

2
+1为我带来了查看PCA的全新视角。现在,据我所知,PCA和FA都可以解释观察到的变量的方差,并且由于FA规定每个变量的误差项不应该相关,而PCA则不作这样的规定,因此FA可以捕获其中的所有协方差。观察变量,但PCA无法做到这一点,因为在PCA中,误差项还可能包含观察变量的某些协方差,除非我们使用所有PC来代表观察变量,对吗?
鳄梨

1
究竟。PCA不仅可以低估协方差值(您可能会想到),还可以高估它。简而言之,a1 * a2 <> Cov12,这是PCA的正常行为。对于FA,这可能是次优解决方案的标志(例如,提取的因子数量错误)。
ttnphns

@ttnphns:+1,但我很困惑。我对PCA非常熟悉,但是对FA知之甚少。我的理解是在PCA的协方差矩阵分解为和在FA为Σ = w ^ w ^ + Ψ与对角线Ψ,即PCA假定各向同性噪声协方差和FA ---对角线之一。这就是Bishop的教科书以及我遇到的有关概率PCA(PPCA)的所有治疗方法中所说的方式。至关重要的是,在两种情况下,噪声协方差都是对角线的,即噪声项不相关。我该如何与您在这里写的内容相吻合?Σ=WW+σ2IΣ=WW+ΨΨ
变形虫说恢复莫妮卡2014年

@ amoeba,非对角元素在理论上由W W W =载荷)恢复,但从理论上讲,它们在普通PCA中不被恢复(因此Ψ不是对角线,而是正方形)。 PCA)。我没有学习PPCA,抱歉(可以下载Bishop的书吗?)。什么是σ 2在你的符号?并请定义“各向同性”。ΣWWWΨσ2
ttnphns

6

我在以下主题中提供了PCA和FA之间异同的我自己的描述:是否有充分的理由使用PCA代替EFA?另外,PCA可以代替因子分析吗?

请注意,我的帐户与@ttnphns的帐户有所不同(如上面他的回答所示)。我的主要主张是PCA和FA并没有人们通常认为的那么不同。当变量数量很少时,它们的确可以有很大的不同,但是一旦变量数量超过十几个,它们往往会产生非常相似的结果。有关数学细节和蒙特卡洛模拟,请参见链接线程中的[long!]答案。有关我的论点的更为简洁的版本,请参见此处: PCA和FA在哪些条件下会产生相似的结果?

在这里,我想明确回答您的主要问题:对同一数据集执行PCA和FA是否有问题我对此的回答是:不。

运行PCA或FA时,您无需检验任何假设。两者都是探索性技术,可用于更好地理解数据。那么,为什么不使用两种不同的工具探索数据呢?实际上,让我们开始吧!

示例:葡萄酒数据集

n=178p=13 variables. See my answer here: What are the differences between Factor Analysis and Principal Component Analysis? for mode details, but briefly -- I ran both PCA and FA analysis and made 2D biplots for both of them. One can easily see that the difference is minimal:

PCA and FA analysis of the wine dataset


If the results turn out to be very similar, then you can decide to stick with only one approach。当然。多少相似呢?If the results turn out to be very different, then maybe it tells you something about your data那是完全神秘而深奥的。
ttnphns

嗯,很抱歉,如果不清楚。我的意思是,如果有很多变量,并且PCA与FA产生的负载有很大不同,它可以告诉我们一些信息。也许,族群非常低(即,相关矩阵以对角线为主,非对角线元素较小)。这可能是一个有趣的观察。如果我出于某种原因使用PCA和FA分析了相同的数据集并获得了截然不同的结果,我将对其进行进一步调查。是否有意义?
变形虫说莫妮卡(

@ttnphns: I made an update with a worked-out example for one particular dataset. I hope you will enjoy it! See also my linked (new) answer. It's the first time I made a FA biplot, and our earlier conversations helped me a lot for that.
amoeba says Reinstate Monica
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.