如何正确应用SPSS 软件做主成分分析
1引言
主成分分析( principal components analysis) 也称主分量分析,由霍特林(Hotelling)于1933 年首先提出。主成分分析是利用降维的思想,在损失很少信息的前提下把多个指标转化为几个综合指标的多元统计方法。通常把转化后的综合指标称之为主成分,其中每个主成分都是原始变量的线性组合,且各个主成分之间互不相关,这就使得主成分比原始变量具有某些更优越的性能。这样在研究复杂问题时就可以只考虑少数几个主成分而不至于损失太多信息,从而更容易抓住主要矛盾,揭示事物内部变量之间的规律性,同时使问题得到简化,提高分析效率。
由于主成分分析的这些优势,在实际问题中遇到指标较多且各指标相关关系较大时,人们常考虑应用主成分分析的方法。但是目前用SPSS 软件分析主成分的教材中和发表的文章中有很多错误和误解之处(SAS 软件中有主成分分析和因子分析的专门语句,一般不会出现这种情况) :(1)如果把主成分与原始变量(或标准化后的变量) 的相关系数矩阵叫做因子负荷阵,把原始变量标准化后用因子来表示的系数阵叫做因子载荷阵,那么SPSS 软件得到的是因子载荷阵,因子载荷阵表示标准化后的主成分( 或叫公因子,方差为1) 来近似标准化后原始变量的系数矩阵。(2)主成分的系数是因子载荷阵推出的,不是从因子负荷阵推出的,即从因子分析得到的载荷阵求主成分的系数时很多教材中和文章中的公式表达错误,虽然实际数据结果是对的。这时的主成分的方差不是1,即非标准化的主成分。(3)当SPSS 软件从相关系数求主成分时,主成分应表示为标准化后的随机变量的线性组合,有些文献中就没加区分,把主成分直接写成原始变量的线性组合。(4)为了从因子分析得到主成分的系数,在SPSS 软件中对因子不要旋转,实际上很多人旋转了。(5)从因子得分系数矩阵得到主成分系数表达式,可以认为因子与标准化原始变量间的变换关系是可逆的,因为因子的提取采用主成分方法时,标准化后的随机变量完全由因子来表示[3]。鉴于以上错误和误解,本文从主成分分析与因子分析的关系出发,借用SPSS 软件自带的例子,进行了正确的操作,将其结果与SAS 软件进行比较,结果完全相同。
2联系与区别
(一) 主成分分析
设对某一事物的研究涉及到p 个指标,记为X1,X2,…Xp,这p 个指标构成的p 维随机向量为X= ( X1,X2,…Xp) ′。对X 进行线性变换,可以形成新的综合变量,用Y 表示,也就是说,新的综合变量可以由原来的变量线性表示,满足下式:
Y1 = b11X1 + b12X2 + … + b1pXp
Y2 = b21X1 + b22X2 + … + b2pXp
……
Yp = bp1X1 + bp2X2 + … + bppXp (1)
由于可以任意地对原始变量进行上述的线性变换,不同的线性变换得到的综合变量Y 的统计特性也不尽相同。通常主成分要求满足如下的三个条件:
1. b′ibi = 1,即b2 i1 + b2 i2 + … + b2ip = 1,b′i = ( bi1,bi2,…,bip) ,i = 1,2,…,p;
2. Yi与Yj相互无关( i≠j;i,j = 1,2,…p) ;
3. Y1是X1,X2,…Xp的一切满足条件1 的线性组合中方差最大者;Y2是与Y1不相关的X1,X2,…Xp的一切满足条件1 的线性组合中方差最大者;……;Yp是与Y1,Y2,…,Yp - 1都不相关的X1,X2,…Xp的一切满足条件1 的线性组合中方差最大者。
基于以上三个条件决定的综合变量,我们把Y1,Y2,…,Yp重新记为G1,G2,…,Gp,分别称为原始变量的第一、第二、…、第p 主成分,其系数重新记为cij,(i,j = 1,2,…,p) ,根据矩阵代数的知识,每个主成分的方差( var(Gi) ,i = 1,2,…,p) ,其实就是X1,X2,…Xp的协方差阵Σ 的非零特征值(λi) ,于是主成分与原始变量关系为:
G1 = c11X1 + c12X2 + … + c1pXp
G2 = c21X1 + c22X2 + … + c2pXp
……
Gp = cp1X1 + cp2X2 + … + cppXp (2)
记G = (G1,G2,…,Gp) ′,C = (cij)p × p,那么上式可以表示为:G = C′X,其中C是正交阵。如果数据是标准化后,即从相关系数矩阵出发,求得的特征值与对应的特征向量为主成分的系数矩阵。基于相关系数矩阵还是基于协方差矩阵做主成分分析:当分析中所选择的经济变量具有不同的量纲,变量水平差异很大,应该选择基于相关系数矩阵的主成分分析。对同度量或是取值范围在同量级的数据,还是直接从协方差矩阵求主成分。
对上述问题涉及到的p 个指标X1,X2,…Xp,我们为了从相关系数矩阵出发,将p 个指标标准化后记为ZX = ( ZX1,ZX2,…ZXp) ′,相关系数矩阵记为R。那么求得的主成分可以表示为:
F1 = u11ZX1 + u12ZX2 + … + u1pZXp
F2 = u21ZX1 + u22ZX2 + … + u2pZXp
……
Fp = up1ZX1 + up2ZX2 + … + uppZXp (3)
其中:u′i = ( ui1,ui2,…,uip) ,F = (F1,F2,…,Fp) ′,
那么上式可以表示为:F = U′ZX,其中U 是正交阵。
(二) 因子分析
因子分析(factor analysis) 的一般模型:设对某一事物的研究涉及到p 个指标X1,X2,…Xp,这p 指标有着较强的相关性,为了便于研究,在指标同向化的基础上,将样本数据进行标准化。为了说明方便,将同向化和标准化后的变量向量用ZX 表示,即ZX= (ZX1,ZX2,…ZXp) ′,其均值向量E(ZX)= 0,协方差矩阵记为cov(ZX) = Σ zx,其实这里的协方差矩阵Σ zx与相关系数矩阵Rzx相同,那么因子分析
的一般模型为:
ZX1 = a11 f1 + a12 f2 + … + a1m fm + ε1
ZX2 = a21 f1 + a22 f2 + … + a2m fm + ε2
……
ZXp = ap1 f1 + ap2 f2 + … + apm fm + εp (4)
其中f = (f1,f2,…fm) ′,(m < p ) 为公因子,ε= (ε1,ε1,…εp) ′为特殊因子,它们都是不可观测的随机变量,A = (aij)p × m叫做因子载荷阵。f 的均值向量E(f) = 0,协方差cov(f) = I,E(ε) = 0,且ε 与f相互独立,ε 的协方差矩阵是对角阵。
(三) 主成分与因子分析的联系
主成分分析与因子分析都是绛维的分析方法,利用少数几个变量对数据进行解释。主成分分析是一种数据的变换,而不假定数据阵有什么样的结构形式;因子分析可以看成是一种模型分析,当模型的某些条件不满足时,因子分析可能是虚假的。主成分分析的重点放在从观测变量到主成分的变换上,因子分析重点放在从基本因子到观测变量的变换上,主成分变换是可逆的,因子分析则不要求。当特殊因子的变差为0时,主成分分析和因子分析是完全等价的。那么对于一个因子分析模型怎么估计其因子载荷矩阵A,实践中有很多方法,其中有一种就是上述的主成分分析方法,从公式F= U′ZX 我们可以得到ZX = UF,具体表达式为:
ZX1 = u11F1 + u21F2 + … + up1Fp
ZX2 = u12F1 + u22F2 + … + up2Fp
……
ZXp = u1pF1 + u2pF2 + … + uppFp (5)
对上面的等式(5)只保留前m(m < p) 个主成分,而把后面的部分用εi代替,则
当主成分F1,F2,…,Fp是从标准化后的相关系数矩阵求出,各成分相互独立,且其方差按大到小的排序为λ1,λ2…λp,我们将式(6)
做。通过上述变换,我们就能得到与式(4)类似的因子模型表达式。注意这里的ε1,ε2,…εp与式(4 ) 的ε1,ε2,…εp是有区别的,式(4)要求它们相互独立而这里它们之间不独立,为了方便还是用原符号表示。
实际上对于主成分分析SPSS 软件中没有对应的模块,但是因子分析模块中有利用主成分分析来求得因子载荷矩阵,根据上面主成分分析与因子分析的联系,我们可以从SPSS 的因子载荷矩阵得到主成分分析的系数。由于主成分分析所得到的特殊因子ε1,ε2,…εp并不独立,因此所得的因子载荷并不完全正确。但是当共同度较大时,特殊因子所起的作用较小,那么特殊因子之间的相关性所带来的影响就几乎可以忽略不计,这时主成分分析和因子分析是完全等价的(公因子的数目与变量一样多)。这时可以利用式(4)中的aij反推出式(3)中的uij它们之间的关系是,也就是推出了从因子载荷矩阵得到主成分系数表达式。
3主成分分析的SPSS 实现
本文利用SPSS 软件自带的数据集Employee data 为例说明如何利用因子分析模块得到主成分系数。数据集Employee data 为Midwestern 银行在1969 - 1971 年之间雇员情况的数据,共包括474 条观测及如下10个变量:Id(观测号)、Gender(性别)、Bdate(出生日期)、Educ (受教育程度(年数))、Jobcat(工作种类)、Salary (目前年薪)、Salbegin (开始受聘时的年薪)、Jobtime(受雇时间)、Prevexp(受雇以前的工作时间)、Minority(是否少数民族)。我们将educ、salary、salbegin、jobtime、prevexp 依次表示为X1,X2,X3,X4,X5。数据在同向化的基础上SPSS 中的因子分析默认针对标准化后的数据来分析的,所以利用Analyze → Descriptive Statistics →Descriptives…进入描述性统计对话框,依次选中变量X1,X2,X3,X4,X5并点向右的箭头按钮,这五个变量便进入variables 窗口,选中Save standardizedas variables 复选框,点击OK 按钮,即可在数据窗口得到标准化的数据ZX1,ZX2,ZX3,ZX4,ZX5。接下来对标准化后的数据进行分析,点击Analyze→Data Reduction→Factor…进入Factor Analysis( 因子分析)对话框。依次选中变量ZX1,ZX2,ZX3,ZX4,ZX5(用原始数据也是一样,标准化主要是在主成分表达中需要)并点向右的箭头按钮,这五个变量便进入variables 窗口,点击右侧的OK 按钮,即可得到表1、表2 和表3。
表1中的Communalities(共同度)数据给出了该次分析从每个原始变量中提取的信息(特征根大于1),可以看到除受教育程度(ZX1)信息损失较大外,主成分几乎包含了各个原始变量至少90% 的信息。表2 中的Total Variance Explained(总方差解释部分)则显示了各主成分解释原始变量总方差的情况,SPSS 默认保留特征根大于1 的主成分,在本例中看到当保留3 个主成分为宜,这3 个主成分集中了原始5 个变量信息的90. 66% ,可见效果是比较好的。表3中Component Matrix(因子载荷矩阵)给出了标准化原始变量用公因子线性表示的近似表达式,提取三个公因子时的因子模型可以表示为:
ZX1 = 0. 846f1 - 0. 194f2 - 0. 014f3 + ε1
ZX2 = 0. 940f1 + 0. 104f2 + 0. 029f3 + ε2
……
ZX5 = - 0. 178f1 + 0. 965f2 + 0. 069f3 + εp
根据上面的因子载荷系数aij与主成分系数uij之间的关系 ,也就推出了从相关系数矩阵得到的主成分系数表达式:
实际中我们通常只选取前几个主成分,例如F1,F2,F3来反映原p 个变量信息。主成分系数还可以通过进入Factor Analysis 对话框并选择好变量之后,点击对话框下部的Scores 按钮进入Factor Scores 对话框,选择Display factor score coefficient matrix 选项,并按Continue 继续,最后点击OK 按钮运行,也可以推出主成分的系数,具体参见何晓群教授的多元统计分析。作者又应用SAS 软件(从相关系数出发) 得到的结果与上述的结果一样。
4结论
从上面的分析可以看出,因子分析和主成分分析都依赖于原始变量,所以原始变量的选择很重要(指标的选择非常重要)。如果原始变量都本质上独立,那么降维就可能失败,这是因为很难把很多独立变量用少数综合的变量概括。数据越相关,降维效果就越好。其次,对于具体的问题指标选取之后还要对其处理,正向指标、逆向的指标和区间型指标怎样转换成可以比较的指标问题。最后,从相关系数出发建立主成分的系数矩阵还是从协方差矩阵出发建立主成分的系数还没有定论。因子分析中的特殊因子如果作用较大,不能从因子载荷阵推主成分系数。可见建立主成分模型的事前步骤和事后分析很重要,不是随便什么数据拿来用SPSS软件分析得出结果就行了。
数据分析咨询请扫描二维码
《Python数据分析极简入门》 第2节 4 Pandas条件查询 在pandas中,可以使用条件筛选来选择满足特定条件的数据 importpanda ...
2024-11-22数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20在现代社会的快速变迁中,选择一个具有长期增长潜力的行业显得至关重要。了解未来发展前景好的行业不仅能帮助我们进行职业选择, ...
2024-11-20