如何正确应用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软件分析得出结果就行了。
数据分析咨询请扫描二维码
在准备数据分析师面试时,掌握高频考题及其解答是应对面试的关键。为了帮助大家轻松上岸,以下是10个高频考题及其详细解析,外加 ...
2024-12-20互联网数据分析师是一个热门且综合性的职业,他们通过数据挖掘和分析,为企业的业务决策和运营优化提供强有力的支持。尤其在如今 ...
2024-12-20在现代商业环境中,数据分析师是不可或缺的角色。他们的工作不仅仅是对数据进行深入分析,更是协助企业从复杂的数据信息中提炼出 ...
2024-12-20随着大数据时代的到来,数据驱动的决策方式开始受到越来越多企业的青睐。近年来,数据分析在人力资源管理中正在扮演着至关重要的 ...
2024-12-20在数据分析的世界里,表面上的技术操作只是“入门票”,而真正的高手则需要打破一些“看不见的墙”。这些“隐形天花板”限制了数 ...
2024-12-19在数据分析领域,尽管行业前景广阔、岗位需求旺盛,但实际的工作难度却远超很多人的想象。很多新手初入数据分析岗位时,常常被各 ...
2024-12-19入门数据分析,许多人都会感到“难”,但这“难”究竟难在哪儿?对于新手而言,往往不是技术不行,而是思维方式、业务理解和实践 ...
2024-12-19在如今的行业动荡背景下,数据分析师的职业前景虽然面临一些挑战,但也充满了许多新的机会。随着技术的不断发展和多领域需求的提 ...
2024-12-19在信息爆炸的时代,数据分析师如同探险家,在浩瀚的数据海洋中寻觅有价值的宝藏。这不仅需要技术上的过硬实力,还需要一种艺术家 ...
2024-12-19在当今信息化社会,大数据已成为各行各业不可或缺的宝贵资源。大数据专业应运而生,旨在培养具备扎实理论基础和实践能力,能够应 ...
2024-12-19阿里P8、P9失业都找不到工作?是我们孤陋寡闻还是世界真的已经“癫”成这样了? 案例一:本硕都是 985,所学的专业也是当红专业 ...
2024-12-19CDA持证人Louis CDA持证人基本情况 我大学是在一个二线城市的一所普通二本院校读的,专业是旅游管理,非计算机非统计学。毕业之 ...
2024-12-18最近,知乎上有个很火的话题:“一个人为何会陷入社会底层”? 有人说,这个世界上只有一个分水岭,就是“羊水”;还有人说,一 ...
2024-12-18在这个数据驱动的时代,数据分析师的技能需求快速增长。掌握适当的编程语言不仅能增强分析能力,还能帮助分析师从海量数据中提取 ...
2024-12-17在当今信息爆炸的时代,数据分析已经成为许多行业中不可或缺的一部分。想要在这个领域脱颖而出,除了热情和毅力外,你还需要掌握 ...
2024-12-17数据分析,是一项通过科学方法处理数据以获取洞察并支持决策的艺术。无论是在商业环境中提升业绩,还是在科研领域推动创新,数据 ...
2024-12-17在数据分析领域,图表是我们表达数据故事的重要工具。它们不仅让数据变得更加直观,也帮助我们更好地理解数据中的趋势和模式。相 ...
2024-12-16在当今社会,我们身处着一个飞速发展、变化迅猛的时代。不同行业在科技进步、市场需求和政策支持的推动下蓬勃发展,呈现出令人瞩 ...
2024-12-16在现代商业世界中,数据分析师扮演着至关重要的角色。他们通过解析海量数据,为企业战略决策提供有力支持。要有效完成这项任务, ...
2024-12-16在当今数据爆炸的时代,数据分析师是组织中不可或缺的导航者。他们通过从大量数据中提取可操作的洞察力,帮助企业在竞争激烈的市 ...
2024-12-16