在某些学科中,没有任何理由就系统地使用PCA(主要成分分析),而PCA和EFA(探索性因素分析)被视为同义词。
因此,我最近使用PCA分析了量表验证研究的结果(7点Likert量表中的21个项目,假设由3个因子组成,每个7个项目),而审阅者问我为什么选择PCA而不是EFA。我读到了这两种技术之间的差异,在您的大多数回答中,似乎EFA都优于PCA。
您是否有充分的理由说明为什么PCA会是更好的选择?它可以提供什么好处?在我看来,为什么它是一个明智的选择?
在某些学科中,没有任何理由就系统地使用PCA(主要成分分析),而PCA和EFA(探索性因素分析)被视为同义词。
因此,我最近使用PCA分析了量表验证研究的结果(7点Likert量表中的21个项目,假设由3个因子组成,每个7个项目),而审阅者问我为什么选择PCA而不是EFA。我读到了这两种技术之间的差异,在您的大多数回答中,似乎EFA都优于PCA。
您是否有充分的理由说明为什么PCA会是更好的选择?它可以提供什么好处?在我看来,为什么它是一个明智的选择?
Answers:
免责声明:@ttnphns对PCA和FA都非常了解,我尊重他的观点,并从他关于该主题的许多出色答案中学到了很多东西。但是,我倾向于不同意他在这里的答复,以及与简历有关此主题的其他(众多)帖子,不仅是他的观点,也是不同意的。或者更确切地说,我认为它们的适用性有限。
我认为PCA和FA之间的差异被高估了。
像这样看:两种方法都尝试提供给定协方差(或相关)矩阵的低秩近似。“低等级”表示仅使用了有限(低)数量的潜在因子或主要成分。如果数据的协方差矩阵为C,则模型为:
这里是一个有列的矩阵(其中通常选择为一个小数,),表示主成分或因子,是一个单位矩阵,是一个对角线矩阵。每种方法都可以表述为:找到(及其余),以最小化左右手之间的差异的范数。 ķ ķ ķ < Ñ ķ 我 Ψ w ^
PPCA代表概率PCA,如果您不知道那是什么,那么现在就无关紧要了。我想提一下它,因为它恰好适合PCA和FA,具有中等的模型复杂性。这也使人们认为PCA和FA之间的巨大差异:尽管它是一个概率模型(与FA完全一样),但实际上却几乎等同于PCA(跨越相同的子空间)。
最重要的是,请注意,这些模型仅在处理对角线的方式上有所不同。随着维数增加,对角线变得越来越不重要(因为对角线上只有元素,对角线之外只有元素)。结果,对于大的,PCA和FA之间通常根本没有太大的差异,这种观察很少受到重视。对于很小的它们的确可以相差很大。 n n n (n − 1 )/ 2 = O(n 2)n n
现在回答您的主要问题,为什么某些学科的人们似乎更喜欢PCA。我想这可以归结为一个事实,即它在数学上比FA容易得多(根据上述公式,这并不明显,因此您必须在这里相信我):
PCA以及PPCA(仅稍有不同)都具有分析解决方案,而FA则没有。因此,FA需要在数值上拟合,存在各种算法,给出可能的答案以及在不同的假设下进行操作等。在某些情况下,某些算法可能会卡住(例如,参见“ Heywood案例”)。对于PCA,您执行本征分解,然后完成;FA更加混乱。
从技术上讲,PCA只是旋转变量,这就是为什么人们可以将其称为仅仅是转换,就像@NickCox在上面的评论中所做的那样。
PCA解决方案不依赖于:您可以找到前三台PC(k = 3),而其中的前两台将与最初设置k = 2时发现的PC 相同。对于FA而言并非如此:k = 2的解不一定包含在k = 3的解内。这是违反直觉和令人困惑的。
当然,FA比PCA更灵活(毕竟,它具有更多参数),并且通常更有用。我并不反对这一点。我感到在反对,是要求他们在概念上与PCA约为“描述数据”和FA是关于“寻找潜在变数”很大的不同。我只是一点也不认为这是真的。
要评论上面提到的以及链接的答案中的某些特定要点:
“在PCA中,要提取/保留的维数从根本上是主观的,而在EFA中,维数是固定的,通常必须检查几个解决方案” –好的,解决方案的选择仍然是主观的,所以我不在这里看到任何概念上的差异。在这两种情况下,(主观或客观地)选择来优化模型拟合与模型复杂度之间的权衡。
“ FA能够解释成对的相关性(协方差)。PCA通常无法做到这一点” -并非如此,随着增长,它们都更好地解释了相关性。
有时会由于使用PCA和FA的学科中的不同做法而引起额外的混乱(但不会出现在@ttnphns的答案中!)。例如,一种常见的做法是旋转FA中的因子以提高解释性。在PCA之后很少这样做,但是原则上没有什么可以阻止它。因此,人们常常倾向于认为FA给您带来了“可解释的”东西,而PCA却没有给您,但这通常是一种幻想。
最后,让我再次强调,对于很小的,PCA和FA之间的差异确实很大,也许支持FA的某些主张是在考虑小的n的情况下完成的。举一个极端的例子,对于n = 2,单个因素总能很好地解释这种相关性,但是一台PC可能做得不好。
从评论的数量中可以看出,我所说的是有争议的。冒充更多评论部分的风险,这里有一些有关“模型”的评论(请参阅@ttnphns和@gung的评论)。@ttnphns不喜欢我使用[协方差矩阵的] “模型”一词来指代上面的近似值;这是术语的问题,但他所谓的“模型”是概率/生成模型中的数据:
请注意,PCA并非概率模型,因此无法以这种方式制定。
PPCA和FA之间的差别是在噪声项:PPCA呈现相同的噪声方差为每个变量,而FA假定不同的方差Ψ 我我(“独特性”)。这种微小的差异会产生重要的后果。两种模型都可以使用一般期望最大化算法进行拟合。对于FA没有解析解是已知的,但是对于一个PPCA可以通过分析推导出EM将收敛到(两者溶液σ 2和w ^)。事实证明,W P P C A具有相同方向的列,但长度小于标准PCA加载W P C A(我省略了确切的公式)。因此,我将PPCA视为“几乎” PCA:在两种情况下,都跨越相同的“主要子空间”。
证明(Tipping and Bishop 1999)有点技术性。直观的原因,为什么均匀噪声方差导致了一个更简单的解决方案是,有相同的特征向量作为Ç为任意值σ 2,但这不是真实Ç - Ψ。
所以是的,@ gung和@ttnphns是正确的,因为FA是基于生成模型,而PCA不是,但是我认为重要的是要补充一点,PPCA也基于生成模型,但“几乎”等同于PCA 。然后,它似乎不再显得如此重要。
PCA具有两种等效公式:例如,第一台PC是(a)最大化投影方差的PC,以及(b)提供最小重建误差的PCA。更抽象地,使用Eckart-Young定理可以看到方差最大化与重构误差最小化之间的等价关系。
如果是数据矩阵(与观测为行,变量为列,并假定列居中)和它的SVD分解是X = û 小号V ⊤,则公知的是列V是散射的特征向量矩阵(或协方差矩阵,如果由观测值的数目除以)C ^ = X ⊤ X = V 小号 2 V ⊤和因此它们的轴线最大化方差(即主轴)。但是根据Eckart-Young定理,前k个 PC提供了对X的最佳k近似值:
前 PC不仅提供的最佳秩近似,而且还提供协方差矩阵的最佳近似。实际上,,最后一个等式提供了的SVD分解(因为是正交的和是对角线)。因此,Eckert-Young定理告诉我们,的最佳秩近似值由。可以注意到ķ X C ^ C ^ = X ⊤ X = V 小号 2 V ⊤ ç V 小号 2 ķ ç ç ķ = V ķ 小号2 ķ V ⊤ ķ W¯¯ = V 小号Ç ķ = V ķ 小号2 ķ V ⊤ ķ = (V 小号)ķ(V 小号)⊤ ķ = w ^是PCA负载,因此
底线是 如开头所述。
@ttnphns令我感到鼓舞,以数字方式证明了我的观点,即随着维数的增长,PCA解决方案接近FA解决方案。来了
我生成了 ×随机相关矩阵,其中包含一些强的非对角线相关性。然后我把左上方块该矩阵的与的变量进行调查的维度的效果。对于每个,我使用分量/因子进行PCA和FA ,对于每个我计算了非对角线重构误差(请注意,由于,FA 完美地重构了Ñ × Ñ Ç Ñ = 25 ,50 ,... 200 Ñ ķ = 1 ... 5 ķ Σ 我≠ Ĵ [ Ç - w ^ w ^ ⊤ ] 2 我Ĵ ç Ψ Ñ ķ 1
在右侧,不同的线对应于不同值,并且表示在水平轴上。请注意,随着增加,比率(对于所有)接近,这意味着PCA和FA产生大约相同的载荷,PCA FA。在相对较小的情况下(例如,当,PCA的性能[预期]较差,但是对于小,差异并不那么大,甚至对于该比率也低于。Ñ Ñ ķ 1 ≈ Ñ Ñ = 25 ķ ķ = 5 1.2
当因子的数量与变量的数量可比时,该比率可能变大。在上面给出的和的示例中,FA实现了重构误差,而PCA则没有,即比例是无限的。但是回到最初的问题,当且,PCA在解释的非对角部分时只会适度输给FA 。n n = 2 k = 1 0 n = 21 k = 3 C
有关应用于实际数据集(葡萄酒数据集)的PCA和FA的图示示例,请在此处查看我的答案:
如您所说,您熟悉相关的答案;看也:So, as long as "Factor analysis..."
+一对夫妇最后的段落; 和底部列表在这里。简而言之,PCA主要是一种数据缩减技术,而FA是潜在特征建模技术。有时它们碰巧会产生相似的结果。但是在您的情况下-因为您可能想像真实实体一样构造/验证潜在特征,所以使用FA会更诚实,并且您不希望PCA希望它们的结果收敛。另一方面,每当您要汇总/简化数据时(例如,进行后续分析),您都希望使用PCA,因为它不会对数据施加任何强模型(可能不相关)。
需要重申的其他方式,PCA赋予您的尺寸可以对应于一些主观有意义的结构,如果你愿意,而全民教育带来那些甚至是实际产生的隐性特征数据,它的目的是找到这些功能。在FA中,对维度(因数)的解释尚在等待中-不管是否可以将含义附加到潜在变量,它都“存在”(FA是必不可少的),否则应从模型中删除它或获取更多数据以支持它。在PCA中,尺寸的含义是可选的。
再说一遍:当提取m
因子(从错误中分离出因子)时,这几个因子(几乎)解释了变量之间的所有相关性,因此无论如何变量都不会留有空间通过错误进行相关。因此,只要将“因素”定义为生成/绑定相关数据的潜在特征,您就有充分的线索来解释这一现象-造成相关性的原因。在PCA中(提取组件就像“因素”一样),变量之间的误差(可能)仍然相关。因此,您不能声称自己已经提取了足够干净,详尽的东西来进行这种解释。
您可能需要阅读我在当前讨论中的其他更长的答案,以获取有关PCA是否可以替代 FA的一些理论和模拟实验细节。请注意该线程上@amoeba给出的出色答案。
Upd:在反对该问题的@amoeba中,反对该问题的人介绍了一种PPCA技术(不为人所知),它位于PCA和FA之间。这自然引发了PCA和FA沿一条线而不是相反的逻辑。这种有价值的方法扩大了人们的理论视野。但是它可以掩盖FA具有几个因素来重构(解释)所有成对协方差的重要的实际差异,而PCA无法成功完成(并且偶尔会这样做-这是因为它恰好模仿了FA)。
在我的回答中(这里是我的第二个,是我的另一个),我将尝试在图片中显示PCA不能很好地恢复协方差(而它可以恢复-最大化-最佳方差)。
正如我在PCA或因子分析中的许多答案中一样,我将转向主题空间中变量的矢量表示。在这种情况下,它只是一个显示变量及其组件加载的加载图。因此,我们得到和X 2的变量(我们只有两个数据集),˚F他们的第一个主成分,具有负载一个1和一个2。变量之间的角度也被标记。变量以中心为中心,因此它们的平方长度h 2 1和h 2 2是它们各自的方差。
和X 2之间的协方差是-它是它们的标量乘积-h 1 h 2 c o s ϕ(顺便说一下,这个余弦是相关值)。当然,PCA的载荷通过分量F的方差a 2 1 + a 2 2捕获了总体方差h 2 1 + h 2 2的最大可能值。
现在,协方差,其中克1是可变的投影X 1上变量X 2(其为第一的回归预测由所述第二投影)。因此,协方差的大小可以通过下面矩形的面积(边为g 1和h 2)来表示。
10x6
y=x
y=x
因此,即使在PCA本身的领域中,高级主成分(据我们所知也可以近似总体方差,甚至整个协方差矩阵)也不一定可以近似非对角协方差。因此,需要对它们进行更好的优化;而且我们知道因素分析是可以提供的一种(或多种)技术。
n=200
对于具有2个因素的数据,分析提取了2个因素,也提取了1个因素和3个因素(正确数量的因素方案的“低估”和“高估”)。对于具有6个因素的数据,分析同样会提取6个因素以及4个以及8个因素。
研究的目的是FA与PCA的协方差/相关性恢复质量。因此,获得了非对角元素的残差。我记录了复制元素和总体矩阵元素之间的残差,以及前者和分析后的样本矩阵元素之间的残差。第一种类型的残差在概念上更有趣。
在对样本协方差和样本相关矩阵进行分析后获得的结果存在一定差异,但所有主要发现似乎都相似。因此,我仅讨论(显示结果)“相关模式”分析。
下图针对各种数量的因子和不同的k绘制了PCA中产生的均方非对角残差与FA中相同产生量的比率。这类似于@amoeba在“更新3”中显示的内容。图中的线表示50个模拟的平均趋势(我省略了在它们上显示st。误差线的信息)。
(注意:结果只是关于随机样本相关矩阵的因式分解,而不是因其为父母的人口矩阵的因式分解:将PCA与FA比较它们对人口矩阵的解释程度是很愚蠢的-FA将永远获胜,如果提取了正确数量的因子,其残差将几乎为零,因此该比率将趋于无穷大。)
评论这些情节:
对于每个模拟实验(通过PCA或FA分解)来自种群矩阵的50个随机样本矩阵,将获得每个非对角相关元素的残差分布“种群相关性减去(通过分解)样本的相关性”。分布遵循清晰的模式,下面是典型分布的示例。PCA分解后的结果为蓝色左侧,FA分解后的结果为绿色右侧。
主要发现是
当提取的因子数量与真实的因子数量不匹配时,也可以看到相似的图片:仅残差方差有所变化。
上面显示的灰色背景分布与总体中存在清晰(简单)因子结构的实验有关。当在分散人口因素结构的情况下进行所有分析时,发现PCA的偏差不仅随着k的增加而消失,而且随着m(因素数)的增加而消失。请查看按比例缩小的黄色背景附件到“ 6因子,k = 4”列:PCA结果几乎没有从0偏移(该偏移在m = 2时仍然存在,未在图片中显示) )。
认为描述的发现很重要,因此我决定更深入地检查那些残差分布,并将残差的散点图(Y轴)相对于元素(人口相关性)值(X轴)作图。这些散点图各自组合了所有许多(50)模拟/分析的结果。LOESS拟合线(使用50%局部点,Epanechnikov内核)突出显示。第一组图是针对总体中尖锐因子结构的情况(因此,相关值的三峰性是显而易见的):
评论:
下面的第二组图是针对人口中扩散因子结构的情况:
我们再次观察到PCA的偏见。但是,与尖锐的因子结构情况相反,偏差随着因子数量的增加而减弱:在6个种群因子的情况下,即使仅在k等于4的情况下,PCA的黄土线也离水平线不太远。这就是“黄色直方图”。
两组散点图上一个有趣的现象是PCA的黄土线呈S形弯曲。尽管它的程度不同且通常很弱,但该曲率显示了由我(我检查)随机构造的其他人口因素结构(载荷)。如果遵循S形,则PCA在从0反弹时(尤其是在小k下)开始迅速使相关性扭曲,但从约0.30或.40的某个值开始稳定。我现在不会因为这种行为的可能原因而推测,至少我相信“正弦曲线”源于相关的三角学性质。
仅在考虑了残留量“种群减去繁殖样本”之后,尖锐因素结构对PCA总体适应能力的影响才是显而易见的。因此,人们可能会错过在模拟研究环境之外识别它的机会-在样本观察研究中,我们无法获得这些重要残差。
与因子分析不同,PCA是(零个)总体相关性(或协方差)的零值的(正)有偏估计量。但是,PCA的偏倚随着变量数量/预期因子数量的比率增加而降低。随着人口中因素数量的增加,偏见也减少了,但是在存在尖锐的因素结构的情况下,后一种趋势受到了阻碍。
我要指出的是,在考虑残差“样本减去复制样本”后,也可以发现PCA拟合偏差和尖锐结构对其的影响;我只是省略了显示这样的结果,因为它们似乎并没有增加新的印象。
最后,我非常尝试性的广泛建议可能是避免使用PCA而不是FA进行典型(即,预期人口中有10个或更少的因素)因素分析,除非您的变量比这些因素多10倍以上。因素越少,所需的比率就越严格。我将进一步在地方足协的使用PCA不建议在所有每当有完善的,尖锐的因素结构数据进行分析-比如当因子分析是为了验证为正在开发或已经推出心理测试或问卷铰接式结构/秤。PCA可以用作心理测量仪器项目的初始,初步选择的工具。
研究的局限性。1)我只使用了因子提取的PAF方法。2)样本大小固定(200)。3)在对样本矩阵进行采样时假设正常人口。4)对于尖锐的结构,对每个因子建模了相等数量的变量。5)构建人口因子负荷我从大致均匀的分布(对于尖锐的结构-三峰,即3件均匀)中借用了它们。6)当然,在任何时候,此即时检查都可能有疏忽。
考虑以下图片(如果您首先需要学习如何理解它们,请阅读此答案):
m
p
p
p-m
p
m=1
p=2
(这实际上是对@ttnphns的第二个答案的评论。)
关于PC和FA假定误差的协方差再现的不同类型,我只是简单地打印出了两个过程中发生的方差的载荷/分量。 ; 仅作为示例,我采用了2个变量。
我们假设两个项目是一个共同因素和特定项目因素的构造。这是factor-loadingsmatrix:
L_fa:
f1 f2 f3
X1: 0.894 0.447 .
X1: 0.894 . 0.447
由此的相关矩阵是
C:
X1 X2
X1: 1.000 0.800
X2: 0.800 1.000
如果我们查看loadings-matrix L_fa并像往常一样在FA中将其解释为f2和f3是错误项/特定于项目的错误,我们将在没有该错误的情况下重现C,从而得到
C1_Fa
X1 X2
X1: 0.800 0.800
X2: 0.800 0.800
因此,我们完美地复制了非对角元素,即协方差(对角线减小了)
如果我们看一下pca解(可以通过简单的旋转来完成),我们将从同一个相关矩阵中得到两个因子:
L_pca :
f1 f2
X1: 0.949 -0.316
X2: 0.949 0.316
假设第二个因素为误差,我们得到协方差的再现矩阵
C1_PC :
X1 X2
X1: 0.900 0.900
X2: 0.900 0.900
我们高估了真实的相关性。这是因为我们忽略了第二个因子= error中的校正负偏协方差。请注意,PPCA与第一个示例相同。
随着更多的项目,这不再是那么明显,而是固有的效果。因此,还有MinRes提取(或-rotation?)的概念,我也看到过诸如最大行列式提取和...
我理解“最小残差”(“ MinRes”)-旋转的概念是对早期CFA计算方法的一种赞同方法,以实现相关矩阵非对角元素的最佳再现。我在80年代/ 90年代中学到了这一点,并且没有跟随因子分析的发展(近年来的深入研究),因此“ MinRes”可能过时了。
要将其与PCA解进行比较:当将因子视为欧几里德空间中的轴并且载荷是该向量空间中项目的坐标时,可以考虑通过旋转因子来找到pc解。
然后,对于一对轴说x,y,计算出x轴和y轴的载荷的平方和。
从中可以找到一个旋转角度,我们应该旋转该旋转角度,以得到旋转轴上的平方和在x°上最大,在y°轴上最小(小圆圈表示旋转轴) 。
对所有成对的轴(只有x轴总是向左,y轴总是向右(所以对于4个因子,我们只有6对旋转)执行此操作),然后重复整个过程以获得稳定的结果实现了所谓的“雅可比方法”来寻找主成分解:它将找到第一个轴,以便收集最大可能的载荷平方和(“ SSqL”)(这也意味着“方差” “)在当前相关配置中的一个轴上。
据我了解,“ MinRes ”应该关注部分相关性而不是SSqL。因此,它不会求和载荷的平方(如Jacobi-pc-rotation中所做的那样),而是求和每个因子的载荷的叉积-除了每个载荷的“叉积”(=平方)之外项目本身。
在计算出x轴和y轴的准则后,它会按照与迭代雅各比旋转相同的方式进行。
由于旋转准则在数值上不同于最大SSqL准则,因此结果/旋转位置应与PCA解决方案不同。如果收敛,则应该在第一个因子中在一个轴上提供最大可能的部分相关性,在下一个因子中提供下一个最大相关性,依此类推。这个想法似乎是,然后假设如此多的轴/因数,使得剩余/残余的部分协方差变得微不足道。
(请注意,这只是我的解释方式,我没有看到该过程被明确地写出(或暂时不记得);在mathworld上的描述似乎用诸如变形虫的答案之类的公式来表达它)并且是可能更权威。刚刚在R-project文档中找到了另一个参考,并且在Gorsuch关于因子分析的书(第116页,也可以通过google-books获得)中找到了一个很好的参考)
我认为,“ PCA”和“ FA”的概念与“探索性”,“确认性”或“推论性”概念的维度不同。因此,两种数学/统计方法中的每一种都可以与三种方法之一一起应用。
例如,为什么有一个假设是荒谬的,我的数据具有一般因素,而且还有一组主要成分的结构(因为我对电子仪器的实验几乎给我提供了无错误的数据),然后我检验了这个假设,后续因素的特征值是否以75%的比率出现?这就是确认框架中的PCA。
另一方面,在我们的研究团队中,我们通过大量工作创建了一个用于测量学生之间暴力行为并假设3种主要行为(身体攻击,抑郁,当局/父母寻求帮助)并提出相关问题的项目电池,这似乎很荒谬。在那个电池中……然后“探究地”算出我们有多少个因素……而不是看,我们的秤的好坏包含三个可识别的因素(除了可以忽略的特定项目,甚至可能是虚假相关的误差)。然后,当我确认了我们的电池确实符合预期目的时,我们可以检验以下假设:在年幼的儿童类别中,表示“按单位搜索帮助”的因素的负担较高比大学生 嗯,再次确认...
探索性的?我从1960年的一项微生物学研究中采取了一系列措施,他们没有太多理论,但是对他们可以管理的一切进行了采样,因为他们的研究领域还很年轻,我重新探索了主要因素结构,例如(假设) ,由于所用显微镜的光学精度(我刚刚了解到的ppca-ansatz),所有误差的数量都相同。然后,我使用FA的统计模型(随后使用数学模型),但在这种情况下以探索性方式使用。
至少这是我对术语的理解。
也许我在这里完全走错了路,但我不认为这是错的。