您的位置  > 互联网

(干货)主成分分析与因子分析及SPSS的实现

主成分分析和因子分析及SPSS实施

1. 主成分分析

(一)提问

在问题研究中,为了不遗漏、准确,往往面面俱到,获取大量指标进行分析。 例如,为了研究某种疾病的影响因素,我们可能会收集患者的人口统计信息、病史、体征、实验室检查等几十个指标,如果将这些指标直接纳入多元统计分析,不仅会使模型变得复杂和不稳定,而且还可能由于变量之间的多重共线性而导致较大的误差。 有没有办法压缩信息、减少变量数量、消除多重共线性?

此时,主成分分析隆重登场。

(2)主成分分析原理

主成分分析的本质是坐标的旋转变换,将原来的n个变量线性重组,生成n个新的变量,这些变量彼此无关,称为n个“分量”。 同时,根据方差最大化原理,保证第一个分量的方差最大,然后依次递减。 这n个分量按方差从大到小排列,前m个分量可能包含了原始变量的大部分方差(以及变异信息)。 那么这m个分量就成为原变量的“主分量”,它们包含了原变量的大部分信息。

注意,得到的主成分并不是对原始变量进行过滤后剩下的变量,而是对原始变量进行重新组合后的“综合变量”。

我们用最简单的二维数据来直观地解释主成分分析的原理。 假设有两个变量X1和X2。 在坐标上画散点图如下:

主成分分析和因子分析以及SPSS实现【通俗易懂】

可见它们之间存在一定的相关性。 如果我们将整体坐标轴逆时针旋转45°,就变成了新的坐标系Y1和Y2,如下图:

主成分分析和因子分析以及SPSS实现【通俗易懂】

根据坐标变化原理,我们可以计算:

Y1 = sqrt(2)/2 * X1 + sqrt(2)/2 * X2

Y2 = sqrt(2)/2 * X1 – sqrt(2)/2 * X2

其中 sqrt(x) 是 x 的平方根。

通过重新线性组合X1和X2,得到两个新变量Y1和Y2。

此时,Y1和Y2不再相关,Y1方向的变化(方差)较大,而Y2方向的变化(方差)较小。 此时,我们可以提取Y1作为X1和X2的主成分,参与后续统计。 分析,因为它携带了有关原始变量的大部分信息。

到目前为止我们已经解决了两个问题:降维和共线性消除。

对于二维以上的数据,无法用上述几何图形直观地表示,只能通过矩阵变换来求解,但本质思想是相同的。

2、因素分析

(一)原理和方法:

因子分析是主成分分析的延伸。

在主成分分析过程中,新变量是原始变量的线性组合,即多个原始变量经过线性(坐标)变换得到新变量。

在因子分析中,对原始变量之间的内在相关结构进行分组。 相关性强的被归为一组,组间相关性弱。 这样,每组变量就代表一个基本元素(公因子)。 通过原始变量之间的复杂关系对原始变量进行分解,得到公因子和特殊因子。 将原始变量表示为公共因子的线性组合。 公共因素是所有原始变量共有的特征,特殊因素是原始变量的独特部分。 因子分析强调对新变量(因子)实际含义的解释。

例如:

例如,在市场调查中,我们收集了食品的五个指标(x1-x5):口味、价格、风味、是否快餐、能量。 经过因素分析,我们发现:

x1 = 0.02 * z1 + 0.99 * z2 + e1

x2 = 0.94 * z1 – 0.01 * z2 + e2

x3 = 0.13* z1 + 0.98 * z2 + e3

x4 = 0.84 * z1 + 0.42 * z2 + e4

x5 = 0.97 * z1 – 0.02 * z2 + e1

(以上数字代表变量之间的实际相关系数,数值越大相关性越大)

第一公因子z1主要与价格、是否快餐、能源有关,代表“价格与营养”

第二个公因子z2主要与味道和风味有关,代表“味道”

e1-5是公共因素中无法解释的特殊因素,在分析中一般省略。

同时,我们还可以将公因子z1和z2表示为原始变量的线性组合,以供后续分析。

(2) 使用条件:

(1)样本量足够大。 样本量通常要求为变量数的5倍以上,且案例数大于100个。

(2)原始变量之间存在相关性。 如果变量相互独立,则不能使用因子分析。 SPSS中可以采用KMO检验和球形度检验来判断。

(3)生成的公因子必须具有实际意义,必要时可以通过因子旋转(坐标变化)来实现。

3、主成分分析与因子分析的联系与区别

连接:都是降维和信息集中的方法。 生成的新变量代表了原变量的大部分信息,且相互独立,可用于后续的回归分析、判别分析、聚类分析等。

区别:

(1)主成分分析根据方差最大化的方法产生新的变量。 它强调新变量贡献方差的比例,而不关心新变量是否具有明确的实际意义。

(2)因子分析注重要求新变量具有实际意义,能够解释原变量之间的内部结构。

SPSS没有提供单独的主成分分析方法,而是与因子分析混合在一起。 下面通过一个例子来讨论主成分分析和因子分析的实现方法及相关问题。

1. 提出问题

男子十项全能比赛包括100米跑、跳远、跳高、撑竿跳高、铅球、铁饼、标枪、400米跑、1500米跑、110米栏等10个项目。 总分是各项目得分之和。 为了分析十项全能主要考察哪些方面的能力,以便进行有针对性的训练,研究人员收集了134名顶尖运动员的十项全能成绩单,通过因子分析来达到分析的目的。

2. 分析过程

变量视图:

主成分分析和因子分析以及SPSS实现【通俗易懂】

数据查看(部分):

主成分分析和因子分析以及SPSS实现【通俗易懂】

菜单选择(分析->降维->因子分析):

主成分分析和因子分析以及SPSS实现【通俗易懂】

打开因子分析主界面,选择十个分数放入“变量”框中(不包括总分),如下:

主成分分析和因子分析以及SPSS实现【通俗易懂】

点击“”按钮打开对话框,选择“”和“KMO and Test”:

主成分分析和因子分析以及SPSS实现【通俗易懂】

上图的相关解释:

“系数”:是变量之间的相关系数数组,可以直观地分析相关性。

“KMO与球形度检验”:用于定量检验变量之间是否存在相关性。

单击“继续”返回主界面,单击“提取”打开对话框。

“方法”=>“主成分”,“输出”=>“未旋转因子解”和“屏幕图”,“提取”=>“基于特征值”,其余默认选择。

主成分分析和因子分析以及SPSS实现【通俗易懂】

解释:

① 因子提取方法:选择默认的主成分法即可。 其他方法的计算结果可能不同。

②输出:“未旋转因子解”是主成分分析的结果。 碎石图可以帮助我们判断因素的重要性(详情见下文)。

③提取:这是提取主成分(因子)的方法,一般是基于特征值大于1的,默认就足够了。

点击“继续”返回主界面,点击“确定”进入分析。

主要表输出如下:

(1)相关性测试

因子分析需要变量之间存在相关性,因此必须首先进行相关性检验。 第一个输出是变量之间的相关系数矩阵:

主成分分析和因子分析以及SPSS实现【通俗易懂】

直观上可以看出变量之间存在相关性。 但需要测试,接下来输出的是相关性测试:

主成分分析和因子分析以及SPSS实现【通俗易懂】

上图中有两个指标:第一个是KMO值。 一般大于0.7,并不代表它们之间有相关性。第二个是球形度检验,P值

(2) 提取主成分和公因子

接下来,输出主成分结果:

主成分分析和因子分析以及SPSS实现【通俗易懂】

这是主成分分析的结果。 表中第一列包含 10 个分量; 第二列代表对应的“特征值”,表示解释的方差的大小; 第三列表示相应分量所包含的方差占总数的比例。 方差百分比; 第四列是累计百分比。 一般来说,选择“特征值”大于1的成分作为主成分,这也是SPSS的默认选择。

在这个例子中,分量1和2的特征值大于1,它们一起解释了71.034%的方差,这还不错。 因此,我们可以提取1和2作为主要成分来捕捉主要矛盾。 其余成分包含的信息较少,因此被丢弃。

接下来,输出砾石图,如下:

主成分分析和因子分析以及SPSS实现【通俗易懂】

碎石图来源于地质学的概念。 岩坡下往往有许多小石块,地质意义不大。 碎石图以特征值为纵轴,以分量为横轴。 前面陡峭的部分特征值大,包含的信息多;后面平坦的部分特征值小,包含的信息少。

从图中直观可以看出,组件1和2包含了大部分信息,从3开始进入平台。

接下来,输出提取的分量矩阵:

主成分分析和因子分析以及SPSS实现【通俗易懂】

上表中的数值是公因子与原始变量之间的相关系数。 绝对值越大,关系越密切。 公因子1与9个运动项目呈正相关(注意跑步运动的评分方法,时间越短,得分越高)。 看来只能称之为“综合体育”因素了。 公因子2与铁饼、铅球正相关,与1500米跑、400米跑负相关。 这是什么意思? 看来只能成为“难以理解”的因素了。

(3)因子轮换

前面提取的两个共同因素,一个是庞大而全面的“综合因素”,另一个则是难以理解的。 得到这样的结果,无疑是分析的失败。 不过,不要灰心,我们可以通过旋转因素得到更好的解释。 点击主界面中的“旋转”按钮,打开对话框,“方法”=>“最大方差法”,“输出”=>“旋转解”。

主成分分析和因子分析以及SPSS实现【通俗易懂】

点击“继续”,返回主界面,点击“确认”进行分析。 输出如下:

主成分分析和因子分析以及SPSS实现【通俗易懂】

这是选择后的分量矩阵。 旋转后可以看到:

公因子1的得分越高,所有跑步和跨栏的成绩越差,跳远、撑竿跳高等需要助跑的项目成绩也越差。 因此,公因数1代表了跑步能力的反向指标,可以称为“跑步能力”。

公因子2与铁饼、铅球等项目有较高的正相关性,与标枪、撑竿跳高等需要上半身力量的项目也呈正相关,因此该因子可以成为“上半身力量”。

旋转后可以看出公因数有了更合理的解释。

(4) 结果保存

最后,我们还需要存储公因子以供以后使用。 单击“评分”按钮,打开对话框,选择“另存为变量”,使用默认的“回归”方法,选择“显示因子评分系数矩阵”。

主成分分析和因子分析以及SPSS实现【通俗易懂】

SPSS会自动生成两个新变量,它们是公因子的值,并将它们放在数据的末尾。 同时会输出一个因子系数表:

由上图,我们可以写出公因子的表达式(用F1和F2代表两个公因子,用Z1~Z10分别代表原始变量):

F1 = -0.16*Z1+0.161*Z2+0.145*Z3+0.199*Z4-0.131*Z5-0.167*Z6+0.137*Z7+0.174*Z8+0.131*Z9-0.037*Z10

F2也同样,省略。

注意,这里的变量Z1~Z10、F1、F2不再是原来的变量,而是标准正态变换后的变量。