因子分析在 SPSS 中的操作过程及结果解读
笔者在做该项研究时在网络上查阅了大量资料,都写得比较专业,所以该篇文章将因子分析从前到后做一个通俗易懂的解释,全文并不涉及非常晦涩的公式原理。
一. 因子分析是什么:
1. 因子分析:
因子分析模型中,假定每个原始变量由两部分组成:共同因子和唯一因子。共同因子是各个原始变量所共有的因子,解释变量之间的相关关系。唯一因子顾名思义是每个原始变量所特有的因子,表示该变量不能被共同因子解释的部分。
(帮助解读:举个例子,现在一个 excel 表有 10 个变量,因子分析可以将这 10 个变量通过某种算法变为 3 个,4 个,5 个等等因子,而每个因子都能表达一种涵义,从而达到了降维的效果,方便接下来的数据分析)
2. 因子分析与主成分分析的区别:
主成分分析是试图寻找原有变量的一个线性组合。这个线性组合方差越大,那么该组合所携带的信息就越多。也就是说,主成分分析就是将原始数据的主要成分放大。
因子分析,它是假设原有变量的背后存在着一个个隐藏的因子,这个因子可以可以包括原有变量中的一个或者几个,因子分析并不是原有变量的线性组合。
(帮助解读:主成分分析降维凸显变量中起主导作用的变量,因子分析寻找变量背后可以概括变量特征的因子)
--------------------------- 算法及原理就不介绍了,比较秃头 -----------------------------
二. 因子分析怎么做(在 spss 中):
1. 数据准备:
下图数据是一份某城市的空气质量数据,一共 6 个变量,分别是:二氧化硫、二氧化氮、可吸入颗粒物、一氧化碳、臭氧、细颗粒物。在 SPSS 中打开数据如下:
image2. 操作步骤:
1)打开因子分析工具:
image2)选择要进行因子分析的变量:
image3)设置因子分析模型:(可以按照以下截图设置模型,一般来说足够)
a. 描述:这里要说一下 KMO 和 Bartlett 的球形度检验,
KMO 检验统计量是用于比较变量间简单相关系数和偏相关系数的指标。主要应用于多元统计的因子分析。KMO 统计量是取值在 0 和 1 之间。Kaiser 给出了常用的 kmo 度量标准: 0.9 以上表示非常适合;0.8 表示适合;0.7 表示一般;0.6 表示不太适合;0.5 以下表示极不适合。KMO 统计量是取值在 0 和 1 之间。当所有变量间的简单相关系数平方和远远大于偏相关系数平方和时,KMO 值接近 1.KMO 值越接近于 1, 意味着变量间的相关性越强,原有变量越适合作因子分析;当所有变量间的简单相关系数平方和接近 0 时,KMO 值接近 0.KMO 值越接近于 0, 意味着变量间的相关性越弱,原有变量越不适合作因子分析。
Bartlett’s 球形检验用于检验相关阵中各变量间的相关性,是否为单位阵,即检验各个变量是否各自独立。如果变量间彼此独立,则无法从中提取公因子,也就无法应用因子分析法。Bartlett 球形检验判断如果相关阵是单位阵,则各变量独立,因子分析法无效。由 SPSS 检验结果显示 Sig.<0.05(即 p 值 < 0.05)时,说明各变量间具有相关性,因子分析有效。
b. 抽取:一般来说方法我们都选择主成分方法,但是在 python 中进行因子分析时用的不是这个方法。
imagec. 旋转:旋转的作用是为了方便最后看什么变量属于哪个因子。
imaged. 得分:
imagee. 选项:
image到此模型设置完毕,点击确定即可在 SPSS 窗口中看到分析结果。
三. 因子分析结果解读:
主要看以下几部分的结果。
1.KMO 和 Bartlett 的检验结果:
首先是 KMO 的值为 0.733,大于阈值 0.5,所以说明了变量之间是存在相关性的,符合要求;然后是 Bartlett 球形检验的结果,在这里只需要看 Sig. 这一项,其值为 0.000,所以小于 0.05。那么也就是说,这份数据是可以进行因子分析的。
image2. 公因子方差:
公因子方差表的意思就是,每一个变量都可以用公因子表示,而公因子究竟能表达多少呢,其表达的大小就是公因子方差表中的 “提取”</mark>,“提取” 的值越大说明变量可以被公因子表达的越好,一般大于 0.5 即可以说是可以被表达,但是更好的是要求大于 0.7 才足以说明变量能被公因子表的很合理。在本例中可以看到,“提取” 的值都是大于 0.7 的,所以变量可以被表达的很不错。
image3. 解释的总方差和碎石图:
简单地说,解释地总方差就是看因子对于变量解释的贡献率</mark>(可以理解为究竟需要多少因子才能把变量表达为 100%)。这张表只需要看图中红框的一列,表示的就是贡献率,蓝框则代表四个因子就可以将变量表达到了 91.151%,说明表达的还是不错的,我觉得一般都要表达到 90% 以上才可以</mark>,否则就要调整因子数据。再看碎石图,也确实就是四个因子之后折线就变得平缓了。
image image4. 旋转成分矩阵:
这一张表是用来看哪些变量可以包含在哪些因子里,一列一列地看:第一列,最大的值为 0.917 和 0.772,分别对应的是细颗粒物和可吸入颗粒物,因此我们可以把因子归结为颗粒物。第二列,最大值为 0.95 对应着二氧化硫,因此我们可以把因子归结为硫化物。第三列,最大值为 0.962,对应着臭氧,因此可以把因子归结为臭氧。第四列,最大值为 0.754 和 0.571,分别对应着二氧化氮和一氧化碳,因子归结为什么这个我也不清楚,可能要请教一下环工环科的同学们,此处我选择滑稽…
image四. 总结:
因子分析还是非常好用的一种降维方式的,在 SPSS 中进行操作十分简单方便,结果一目了然。喜好机器学习的同学们自然也知道,这么好的方法怎么能少得了 python 呢,没错 python 也可以做因子分析,代码量也并不是很大,但是,python 做因子分析时会有一些功能需要自己根据算法写(头皮发麻),比如说 KMO 检验。喜欢本文的话请点赞或留言哦,接下来还会有一些数据分析和机器学习方面的知识与大家分享</sr-rd-content>
网友评论