因子分析

看懂因子分析法需要哪些背景知识?

最近在看查尔斯·W·米勒的《因子分析:统计方法与应用问题》,发现很多东西,尤其是涉及一些专业术语的部分看不懂。我本身不是做数据分析的,然后我就是想问下…
关注者
47
被浏览
55,786

7 个回答

这个要看具体想要掌握到什么程度,如果只是应用层面,那比较容易,下面会附上SPSSAU有关因子分析的说明,读过之后也就能知道如果进行因子分析操作了。如果是想从原理方面掌握因子分析,还是建议找本专业书学习。

因子分析

因子分析(探索性因子分析)用于探索分析项(定量数据)应该分成几个因子(变量),比如20个量表题项应该分成几个方面较为合适。

因子分析中涉及的重要概念:

因子分析通常有三个步骤:第一步是判断是否适合进行因子分析;第二步是因子与题项对应关系判断;第三步是因子命名。

因子分析应用举例:

1、背景

当前有一份数据,共有12个量表题,希望将此12个量表题使用因子分析浓缩成几个维度,用于探索企业员工满意度的维度情况。研究人员在研究前预期分析项可分为4个维度(也可不事先假定),当然有可能个别项与因子对应关系并不合适,因此有可能对其进行删除处理。

2、操作步骤

将分析题项拖入选框中,点击进行“开始因子分析”(用户可主动设置因子个数)

SPSSAU因子分析界面

得到的分析结果如下:

第一步:首先判断是否适合进行因子分析

KMO和Bartlett检验结果
SPSSAU对结果进行智能分析

第二步:判断提取的因子个数

第三步:是因子与题项对应关系判断

因子与题项对应关系判断:假设预期为4个因子(变量),分析题项为12个;因子与题项交叉共得到48个数字,此数字称作”因子载荷系数”(因子载荷系数值表示分析项与因子之间的相关程度);针对每个因子(变量),对应12个”因子载荷系数”,针对每个分析项,则有4个”因子载荷系数值”(比如0.765,-0.066,0.093,0.075),选出3个数字绝对值大于0.4的那个值(0.765),如果其对应因子1,则说明此题项应该划分在因子1下面。

从上图中可以看出:前四项(休假制度、资金制度、工资水平、晋升制度)它们全部对应着因子1时,因子载荷系数值均高于0.4,说明此4项应该同属于一个维度。类似的,上司个人领导风格、上司管理水平、管理制度这三项对应因子2,“工作才能发挥”这一项对应的两个因子载荷系数均高于0.4此时要结合专业知识判断,该题项应该归属到哪一因子中。

案例中的数据已经经过删除题项处理,上表显示各题项与维度之间的对应关系较好,可以直接进行命名。如果因子与题项对应情况不好,处理可参考此文章: SPSS在线_SPSSAU_SPSS因子分析

第四步:对因子进行命名

本次研究员工满意量表共提取出4个因子,此4个因子对应的题项分别为4个、3个和2个,对4个因子分别进行命名,分别为福利待遇因子、管理及制度因子、员工自主性因子和工作性质因子。

其他说明

因子分析时还会输出一个表格叫“成分得分矩阵”,如果涉及到权重计算,此会使用此表格。

因子分析后通常还需要将因子综合,比如此例子得到4个因子,4个因子分别与题项之间有对应关系,通常会保存因子得分(问卷常使用 平均分)用于后续分析。

相关资料

SPSS在线_SPSSAU_SPSS因子分析

登陆 SPSSAU官网进行在线数据分析或查看更多分析方法操作说明:

编辑于 2019-04-18 15:34

因子分析主要有两种基本形式:探索性因子分析、验证性因子分析

1、这二者有什么区别呢?

探索性因子分析:因子分析是基于降维的思想,在尽可能不损失或者少损失原始数据信息的情况下,将错综复杂的众多变量聚合成少数几个独立的公共因子,这几个公共因子可以反映原来众多变量的主要信息,在减少变量个数的同时,又反映了变量之间的内在联系。在乎的是多个测试项是否能组成一个或多个理论变量,其理论变量是未知的。

验证性因子分析:用于测试一个因子与相对应的测度项之间的关系是否符合研究者所设计的理论关系的一种研究方法,可用于调查问卷的量表分析。

事前已知理论变量,强调多个测试项是否能否代表某个理论变量,例如检验购买频率、主观评估、消费比例是否真的可以反映忠诚度。也就是我们预先的理论架构是否是好的,题目设置是否是好的,收集到的数据能否体现想要的结果,实际上也就是一种效度检验。

通常因子分析有三种作用:一是用于因子降维,二是计算因子权重,三是计算加权计算因子汇总综合得分。

2、举个栗子

探索性因子分析:根据该地区2021年的人均GDP、人均可支配收入等多个指标,量化评估多个省市地区的经济发展水平排名或者各指标的权重。

验证性因子分析:研究者对顾客的忠诚度感兴趣,忠诚度可能用购买频率、主观评估、消费比例等多个测量变量来衡量,顾客的忠诚度就是因子。验证性因子分析就是要检验购买频率、主观评估、消费比例是否真的可以反映忠诚度。

3、因子分析重要指标解读

名称作用具体
KMO检验判断是否可以进行因子分析KMO值:
0.9上非常合适做因子分析0.7-0.9之间适合
0.6-0.7之间尚可
0.5-0.6之间表示差
0.5下应该放弃
Bartlett的检验判断是否可以进行因子分析p < 0.05,严格来说p < 0.01
若显著性小于0.05或0.01,拒绝原假设,则说明可以做因子分析
碎石图确定因子的数量
方差解释表格因子对于变量解释的贡献率可以理解为究竟需要多少因子才能把变量表达为100%
如果太低(如低于60%)则需要调整因子数据;
因子载荷系数分析每个主成分中隐变量的重要性
热力图分析每个主成分中隐变量的重要性
因子权重分析计算因子权重计算公式为:方差解释率/旋转后累积方差解释率
成份矩阵表各个成分的所包含的因子得分系数(主成分载荷)

4、因子分析法具体操作

首先,打开 SPSSPRO免费数据分析网站

然后,搜索因子分析,拖入变量数据

最后 ,系统自动分析结果(如图),可免费复制下载

SPSSPRO可免费做因子分析

5、使用因子分析法注意事项

  • 因子分析要求变量之间的共线性或相关关系比较强,否则不能通过 KMO 检验和 Bartlett 球形检验;
  • 因子分析是主成分的推广,相对于主成分分析,更倾向于描述原始变量之间的相关关系
  • 因子分析时通常需要综合自己的专业知识,以及软件结果进行综合判断,即使是特征根值小于 1,也一样可以提取主成分;
  • KMO 值为 null 不存在可能导致的原因为:

(1)样本量过少容易导致相关系数过高,一般希望分析样本量大于 5 倍分析项个数;
(2)各个分析项之间的相关关系过高或过低


相关推荐

编辑于 2022-07-15 11:02

同意前面知友,这个要看具体想要掌握到什么程度,他写了应用层面,我来说说理论方面吧。如果想从数学原理上看懂因子分析,背景知识大约需要三个:

1 最大似然估计的知识储备 2主成分分析的降维思想 3高斯混合模型的聚类算法。

以下是我写过的内容:

因子分析这种算法,其实在机器学习中的地位挺奇妙的,有的书把它摆在很重要的位置(和PCA并列)。有的知识体系又完全绕过不讲它。有人知道FA和PCA一样是无监督的降维算法。但其中具体怎么搞,连我在写到这的时候还搞不清(实话)。本文由高斯混合模型(GMM)的思路导入,对因子分析(FA)的内部原理进行详细阐述。因子分析在降维的同时可以进行聚类,可以看做是降维版的高斯混合模型,这是PCA所不具备的。实际上,因子分析的原理比PCA要难,因此我建议需要一定程度掌握PCA的小伙伴再来阅读本文的内容

而EM算法原理的复杂程度也较高,故本文暂时略去EM算法部分的内容。且限于篇幅,还将去掉一切不必要内容。

一、过多的特征

GMM中,样本数据的个数m远大于其特征数n(回归与分布拟合时最大似然估计的必要条件,除非m超过n某个合理的量,否则均值和协方差的最大似然估计可能会很差)。而当n太大或者m太小,导致m小于n的时候,使用多元高斯分布(Multivariate Gaussian Distribution)对分布进行最大似然估计时,协方差矩阵∑会是奇异阵。 多元高斯分布的参数估计公式如下:

分别是求均值和协方差的公式,样本m个,n维特征,∑是n*n协方差矩阵。当m<<n时,我们会发现∑是奇异阵(非满秩),也就是说∑的逆矩阵不存在,无法拟合多元高斯分布。如果我们仍然想用多元高斯分布来估计样本,那怎么办呢?此时需要做的就是降低维度,由n降到k(k小于m)。

多元高斯分布的概率密度函数,比一元高斯分布还要帅一些

二、协方差矩阵的限制

现在我们暂时不去管原始数据和它的奇异协方差阵。我们想象另一个数据集的协方差阵∑,它被限制了,被限制在必须是对角阵(即各特征间相互独立),此时只需要计算每个特征的方差即可,最后∑将只有对角线上的元素不为0(协方差元素全都是0)。在这个设定下,即可轻松计算最大似然估计值,此时对角协方差矩阵Σ满足

我们用二元高斯分布来理解多元高斯分布的特性。二元高斯分布在三维空间中像一个山丘,而在二维平面上的投影(康托尔图)是个椭圆。其中心点由μ决定,椭圆的形状由∑决定。如果∑变成对角阵,就意味着椭圆的两个中轴线都和坐标轴平行。

现在我们进一步,限制∑对角线上的元素都相等(Σ=σ2I)。反映到二维高斯分布平面图上就是椭圆将变成圆(二维空间是圆,在更高维的空间,是球体或超球体)。再做σ2的最大似然估计可以发现:


(这里还有疑问的小伙伴可以点击 cnblogs.com/shanlizi/p/)当我们要估计出完整的Σ时,我们需要m>=n+1才能保证在最大似然估计下得出的是非奇异的。然而在上面的任何一种假设限定条件下,只要m>=2,Σ都是非奇异的,都可以进行估计。

这样做的缺点也是显然易见的,我们认为特征间独立,这个假设很强。我们不得不另建立一套潜在的变量体系,这些变量称之为因子。这些因子就符合上面的限定——事实上因子的协方差矩阵为单位矩阵。于是我们需要探索因子与原变量x间的关联性。使用因子来表示原有数据。


三、边缘高斯分布:

在介绍FA之前,容我先离一下题。我们接下来讨论一些以后需要用到的高斯函数性质。具体来说,就是如何找到高斯分布的边缘分布(Marginals of Gaussians)。我们假设x由两个随机向量组成:


假设联合分布x服从多元高斯分布 x ∼ N(µ,Σ),其中x1为r维, x2为s维, x为r+s维. 那么x的均值和方差显然也可以拆分为:



当然,µ1为r维, µ2为s维, Σ11 为r×r矩阵, Σ12为 r×s矩阵, 等等。因为协方差矩阵的对称性,Σ12 = Σ21T。那么只知道联合分布x的情况下,如何求得的边缘分布呢?显然如下:


由此可见,多元高斯分布的边缘分布仍然是多元高斯分布。

四、因子分析模型
在因子分析模型中,我们就想上一章的思路一样,首先设立了一个(z,x)的联合概率分布,z在上,x在下,其中z就是因子分析中的因子,又称潜在随机变量,k维长度,服从多元标准高斯分布。如下:

整理一下上面的参数
(1)μ为x的均值,n维

(2)矩阵Λ为n*k的矩阵

(3)Ψ为n*n的对角矩阵,表示扰动的协方差

(4)k就是我们希望得到的降维后的维度,所以k<n

即,我们认为,每个数据点x(i)都由k维的多元高斯变量z(i)生成。然后,k维变量z(i)通过计算μ+Λz(i)映射到高维空间(n维)。最后,在μ+ΛZ(i)的基础上加上一个协方差为Ψ的扰动,从而生成x(i)。



其中ε和z都是独立变量。在我们定义好以后,x和z即拥有以下联合概率分布



我们先求均值μzx。因为z服从多元标准高斯分布,当然E(z)=0。E(x)=μ也很简单。

合并,得到

接下来求∑,根据前面边缘分布的知识,我们知道∑可以分为四个部分,其中

(1)∑zz=E[(z-E[z])(z-E[z])T],即∑的左上部分

(2)∑zx=E[(z-E[z])(x-E[x])T],即∑的右上部分

(3)∑xz=E[(x-E[x])(z-E[z])T],即∑的左下部分

(4)∑xx=E[(x-E[z])(x-E[z])T],即∑的右下部分

我们依次计算得出:

(1)∑zz=I

(2)∑zx=ΛT

(3)∑xz=(∑zx)T=Λ

(4)最后,最复杂的,∑xx=ΛΛT+Ψ


将目前所搜集到的全部线索拼凑起来,联合分布如下,当当当挡:



最终我们也得到了x的分布,x将服从均值μ,协方差ΛΛT+Ψ的多元高斯分布。有了x的分布公式,当我们得到一个训练集x时,我们得以写出三个参数的对数最大似然估计

看起来很复杂,其实就是把μ和ΛΛT+Ψ带入多元高斯的最大似然估计


五、因子分析的EM估计(略)

上一步得到的似然公式,还是没法直接最大化,需要使用EM算法(就和GMM一样)。本文省略了EM算法求最大似然估计部分的内容,这部分仍然略微复杂,只列出最终的结果。

这里的Φ还不是最终的Ψ,我们需要让Ψ获得Φ对角线上的元素,并舍弃其它部分,因为扰动变量ε为独立变量

六、因子分析原理的可视化理解

如果上面的内容各位小伙伴没有看明白,这一部分通过可视化图像的角度来理解FA。FA模型认为m个n维特征的训练样本(这里假设m=5,n=2,在此感谢JerryLead绘制的图形,我直接搬过来的 )



其产生过程如下:

1.首先在一个k维的空间中按照(多元)高斯分布生成m个k维向量z(k<m,k<n,z服从标准高斯分布,协方差为I),我们为了便于画图和理解,这里设k=1。



2. 然后存在一个旋转矩阵Λ将z(i)映射到n维空间中(记住n=2,即旋转到平面空间),结果即Λz(i)。因为z的均值是0,映射后Λz(i)的均值仍然是0。



3.加上x的均值μ(n维),即μ+Λz(i)。对应的意义是将变换后的

图像在空间中进行平移。

4.然而,样本点不可能这么规则,我们需要将上一步骤中生成的点做一些随机扰动ε,扰动ε服从均值0,协方差Ψ的高斯分布。加入扰动后的样品即模拟完成。

5、其中由于z和ε的均值都为0,因此μ也是原始样本点(黑色点)的均值。

由以上的直观分析,我们知道了因子分析其实就是认为高维样本点实际上是由低维样本点经过高斯分布、线性变换(旋转)、误差扰动生成的,因此高维数据可以使用低维来表示。

七、总结

跳出繁琐的数学公式,我们发现:因子分析和以高斯混合模型为代表的聚类分析以及PCA为代表的降维算法都有关系。FA就好似住在GMM和PCA之间的一位邻居。从GMM这边看,FA可以像GMM一样进行聚类,同时利用降维解决了GMM方法无法处理的n大于m导致的协方差矩阵奇异/不满秩情况。从PCA这边看,FA和PCA均可以有效降维,“因子”和“主成分”有相似性,但FA需要提前确定降维后的维度数k。最后用一句话概括,PCA是用原始特征线性组成主成分,而FA是以潜在的“因子”线性表示原始特征。(本文中大部分公式图片都取自吴恩达斯坦福大学CS229课程讲义)

数据分析服务找我

发布于 2019-10-27 14:33

正好看到一篇很好的因子分析入门指南,着重讲了探索性因子分析,见下:

tqmp.org/RegularArticle

编辑于 2017-05-03 10:14

多元统计分析,概率,Spss分析。我当时看论文看不懂后看的几本书。

具体书目:《多元统计分析与SPASS应用》 汪冬华 华东理工大学出版社

《应用多元统计分析》 李卫东 北京大学出版社

如果仅仅是使用因子分析解决一些实际问题的目的,比如说将指标进行聚合,而不是研究理论本身,只需要掌握方法即可。很多东西软件可以帮你搞定就可得到最终的结果。

发布于 2016-12-27 19:34

谢邀

手上的书提到过因子分析法的就这本

编辑于 2016-12-19 21:19

线性代数,概率论,高数,统计学

发布于 2020-11-18 13:22