1、第13章 主成分分析与因子分析介绍:介绍:1、主成分分析与因子分析的概念、主成分分析与因子分析的概念 2、主成分分析与因子分析的过程、主成分分析与因子分析的过程主成分分析与因子分析的概念需要与可能:在各个领域的科学研究中,往往需要对反映事物的需要与可能:在各个领域的科学研究中,往往需要对反映事物的多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多个变量进行大量的观测,收集大量数据以便进行分析寻找规律。多变量大样本无疑会为科学研究提供丰富的信息,但也在一定程多变量大样本无疑会为科学研究提供丰富的信息,但也在一定程度上增加了数据采集的工作量,更重要的是在大多数情况下,许度上增加了数据采集
2、的工作量,更重要的是在大多数情况下,许多变量之间可能存在相关性而增加了问题分析的复杂性,同时对多变量之间可能存在相关性而增加了问题分析的复杂性,同时对分析带来不便。如果分别分析每个指标,分析又可能是孤立的,分析带来不便。如果分别分析每个指标,分析又可能是孤立的,而不是综合的。盲目减少指标会损失很多信息,容易产生错误的而不是综合的。盲目减少指标会损失很多信息,容易产生错误的结论。因此需要找到一个合理的方法,减少分析指标的同时,尽结论。因此需要找到一个合理的方法,减少分析指标的同时,尽量减少原指标包含信息的损失,对所收集的资料作全面的分析。量减少原指标包含信息的损失,对所收集的资料作全面的分析。由
3、于各变量间存在一定的相关关系,因此有可能用较少的综合指由于各变量间存在一定的相关关系,因此有可能用较少的综合指标分别综合存在于各变量中的各类信息。主成分分析与因子分析标分别综合存在于各变量中的各类信息。主成分分析与因子分析就是这样一种降维的方法。就是这样一种降维的方法。主成分分析与因子分析是将多个实测变量转换为少数几个不相关主成分分析与因子分析是将多个实测变量转换为少数几个不相关的综合指标的多元统计分析方法的综合指标的多元统计分析方法直线综合指标往往是不能直接观测到的,但它更能反映事物的本直线综合指标往往是不能直接观测到的,但它更能反映事物的本质。因此在医学、心理学、经济学等科学领域以及社会化
4、生产中质。因此在医学、心理学、经济学等科学领域以及社会化生产中得到广泛的应用。得到广泛的应用。主成分分析与因子分析的概念(续)由于实测的变量间存在一定的相关关系,由于实测的变量间存在一定的相关关系,因此有可能用较少数的综合指标分别综因此有可能用较少数的综合指标分别综合存在于各变量中的各类信息,而综合合存在于各变量中的各类信息,而综合指标之间彼此不相关,即各指标代表的指标之间彼此不相关,即各指标代表的信息不重叠。综合指标称为因子或主成信息不重叠。综合指标称为因子或主成分(提取几个因子),一般有两种方法:分(提取几个因子),一般有两种方法:w特征值特征值1w累计贡献率累计贡献率0.8主成分分析实例
5、P316不旋转使用默认值进行最简单的使用默认值进行最简单的主成分分析主成分分析(默认为主成分分析法默认为主成分分析法:Principal components)例子例子P316:对美国洛杉矶:对美国洛杉矶12个人口调查区的个人口调查区的5个经济学变量的数据进行因个经济学变量的数据进行因子分析,子分析,data13-01a,数据见下一张幻灯片),数据见下一张幻灯片)菜单:AnalyzeData ReductionFactornVariables:pop,School,employ,Services,housen其他使用默认值(主成分分析法Principal components,选取特征值1,不
6、旋转)n比较有用的结果:两个主成分比较有用的结果:两个主成分(因子因子)f1,f2及因子载荷矩阵及因子载荷矩阵(Component Matrix),根据该,根据该表可以写出每个原始变量(标准化值)的因子表达式:表可以写出每个原始变量(标准化值)的因子表达式:Pop 0.581f1+0.806f2 School 0.767f1-0.545f2 employ 0.672f1+0.726f2 Services 0.932f1-0.104f2 house 0.791f1-0.558f2n每个原始变量都可以是每个原始变量都可以是5个因子的线性组合,提取两个因子个因子的线性组合,提取两个因子f1和和f2,
7、可以概括原始变量所包,可以概括原始变量所包含信息的含信息的93.4%。f1和和f2前的系数表示该因子对变量的影响程度,也称为变量在因子上的前的系数表示该因子对变量的影响程度,也称为变量在因子上的载荷。载荷。n但每个因子(主成分)的系数但每个因子(主成分)的系数(载荷载荷)没有很明显的差别,所以不好命名。没有很明显的差别,所以不好命名。因此为了对因子因此为了对因子进行命名,可以进行旋转,使系数向进行命名,可以进行旋转,使系数向0和和1两极分化,这就要使用选择项。两极分化,这就要使用选择项。洛衫矶对洛衫矶对12个人口调查区的数据个人口调查区的数据编号编号 总人口总人口 中等学校平均中等学校平均 总
8、雇员数总雇员数 专业服务专业服务 中等房价中等房价no pop 校龄校龄School employ 项目数项目数Services house15700 12.8 2500 270 25000 21000 10.9 600 10 10000 33400 8.8 1000 10 9000 43800 13.6 1700 140 2500054000 12.8 1600 140 25000 68200 8.3 2600 6012000 71200 11.4 400 1016000 89100 11.5 3300 6014000 99900 12.5 3400 180 18000109600 13.7
9、 3600 390 25000119600 9.6 3300 80 12000129400 11.4 4000 100 13000因子分析实例322旋转Rotation由于系数没有很明显的差别由于系数没有很明显的差别,所以要进行旋转所以要进行旋转(Rotation:method一般用一般用Varimax方方差最大旋转差最大旋转),使系数向使系数向0和和1两极分化两极分化,例子同上例子同上菜单:菜单:AnalyzeData ReductionFactornVariables:pop,School,employ,Services,housenExtraction:使用默认值(:使用默认值(meth
10、od:Principal components,选取特征值,选取特征值1)nRotation:method选选VarimaxnScore:Save as variables 和和Display factor score Coefficient matrixn比较有用的结果:两个主成分比较有用的结果:两个主成分(因子因子)f1,f2及旋转后的因子载荷矩阵及旋转后的因子载荷矩阵(Rotated Component Matrix),根据该表可以写出每个原始变量(标准化值)的因子表达式:,根据该表可以写出每个原始变量(标准化值)的因子表达式:Pop 0.01602 f1+0.9946f2 School
11、 0.941f1-0.00882f2 employ 0.137f1+0.98f2 Services 0.825f1+0.447f2 house 0.968f1-0.00605f2n第一主因子对中等学校平均校龄第一主因子对中等学校平均校龄,专业服务项目专业服务项目,中等房价有绝对值较大的载荷中等房价有绝对值较大的载荷(代代表一般社会福利表一般社会福利-福利条件因子福利条件因子);而第二主因子对总人口和总雇员数有较大的载荷而第二主因子对总人口和总雇员数有较大的载荷(代表人口代表人口-人口因子人口因子).P326n比较有用的结果比较有用的结果:因子得分因子得分fac1_1,fac2_1。其计算公式:
12、因子得分系数和原始。其计算公式:因子得分系数和原始变量的标准化值的乘积之和(变量的标准化值的乘积之和(P326)。然后可以利用因子得分进行聚类。然后可以利用因子得分进行聚类p327(Analyze-Classify-Hierarchical Cluster)。)。主成分分析实例P330 不旋转市场研究中的顾客偏好分析在市场研究中,常常要求分析顾客的偏好和当前市场的产品与顾在市场研究中,常常要求分析顾客的偏好和当前市场的产品与顾客偏好之间的差别,从而找出新产品开发的方向。顾客偏好分析客偏好之间的差别,从而找出新产品开发的方向。顾客偏好分析时常用到主成分分析方法(因子没有旋转)。时常用到主成分分析
13、方法(因子没有旋转)。例子例子P330:数据来自:数据来自SAS公司,公司,1980年一个汽车制造商在竞争年一个汽车制造商在竞争对手中选择了对手中选择了17种车型,访问了种车型,访问了25个顾客,要求他们根据自己的个顾客,要求他们根据自己的偏好对偏好对17种车型打分。打分范围种车型打分。打分范围09.9,9.9表示最高程度的偏表示最高程度的偏好。好。data13-02a(1725:17个个case,25个变量个变量V1-V25)菜单:AnalyzeData ReductionFactornVariables:V1-V25nExtraction:method:Principal componen
14、ts Extract:Number of factors:3 要三个主成分nScore:Save as variablesn比较有用的结果:比较有用的结果:3个主成分及其个主成分及其因子载荷矩阵因子载荷矩阵(Component Matrix):第一主第一主成分和第二主成分的载荷图(成分和第二主成分的载荷图(Loading plots)n比较有用的结果比较有用的结果:因子得分因子得分fac1_1,fac2_1,fac3_1。然后可以利用因子得分。然后可以利用因子得分进行各种分析:做偏好图:进行各种分析:做偏好图:用用fac1_1,fac2_1做散点图(做散点图(Graphs-Scatter:X-
15、fac1_1,Y-fac2_1):第一主成分反映了车的产地,第二主成分反映了车第一主成分反映了车的产地,第二主成分反映了车的特性(质量、动力、座位数等)的特性(质量、动力、座位数等)n具体见具体见P332-334补充:补充:主成分分析和因子分析主成分分析和因子分析以下的讲义是吴喜之教授有关主成分分析和因子分析的讲义,我觉得比书上讲得清楚。主成分分析和因主成分分析和因子分析子分析 汇报什么?汇报什么?假定你是一个公司的财务经理,掌握了公司的所有数据,比如固定资产、流动资金、每一笔借贷的数额和期限、各种税费、工资支出、原料消耗、产值、利润、折旧、职工人数、职工的分工和教育程度等等。如果让你向上面介
16、绍公司状况,你能够把这些指标和数字都原封不动地摆出去吗?当然不能。你必须要把各个方面作出高度概括,用一两个指标简单明了地把情况说清楚。主成分分析主成分分析每个人都会遇到有很多变量的数据。比如全国或各个地区的带有许多经济和社会变量的数据;各个学校的研究、教学等各种变量的数据等等。这些数据的共同特点是变量很多,在如此多的变量之中,有很多是相关的。人们希望能够找出它们的少数“代表”来对它们进行描述。本章就介绍两种把变量维数降低以便于描述、理解和分析的方法:主成分分析(principal component analysis)和因子分析(factor analysis)。实际上主成分分析可以说是因子分
17、析的一个特例。在引进主成分分析之前,先看下面的例子。成绩数据(成绩数据(student.sav)100个学生的数学、物理、化学、语文、历史、英语的成绩如下表(部分)。从本例可能提出的问题从本例可能提出的问题目前的问题是,能不能把这个数据的6个变量用一两个综合变量来表示呢?这一两个综合变量包含有多少原来的信息呢?能不能利用找到的综合变量来对学生排序呢?这一类数据所涉及的问题可以推广到对企业,对学校进行分析、排序、判别和分类等问题。主成分分析主成分分析例中的的数据点是六维的;也就是说,每个观测值是6维空间中的一个点。我们希望把6维空间用低维空间表示。先假定只有二维,即只有两个变量,它们由横坐标和纵
18、坐标所代表;因此每个观测值都有相应于这两个坐标轴的两个坐标值;如果这些数据形成一个椭圆形状的点阵(这在变量的二维正态的假定下是可能的)那么这个椭圆有一个长轴和一个短轴。在短轴方向上,数据变化很少;在极端的情况,短轴如果退化成一点,那只有在长轴的方向才能够解释这些点的变化了;这样,由二维到一维的降维就自然完成了。主成分分析主成分分析当坐标轴和椭圆的长短轴平行,那么代表长轴的变量就描述了数据的主要变化,而代表短轴的变量就描述了数据的次要变化。但是,坐标轴通常并不和椭圆的长短轴平行。因此,需要寻找椭圆的长短轴,并进行变换,使得新变量和椭圆的长短轴平行。如果长轴变量代表了数据包含的大部分信息,就用该变
19、量代替原先的两个变量(舍去次要的一维),降维就完成了。椭圆(球)的长短轴相差得越大,降维也越有道理。-4-2024-4-2024主成分分析主成分分析对于多维变量的情况和二维类似,也有高维的椭球,只不过无法直观地看见罢了。首先把高维椭球的主轴找出来,再用代表大多数数据信息的最长的几个轴作为新变量;这样,主成分分析就基本完成了。注意,和二维情况类似,高维椭球的主轴也是互相垂直的。这些互相正交的新变量是原先变量的线性组合,叫做主成分(principal component)。主成分分析主成分分析正如二维椭圆有两个主轴,三维椭球有三个主轴一样,有几个变量,就有几个主成分。选择越少的主成分,降维就越好。
20、什么是标准呢?那就是这些被选的主成分所代表的主轴的长度之和占了主轴长度总和的大部分。有些文献建议,所选的主轴总长度占所有主轴长度之和的大约85%即可,其实,这只是一个大体的说法;具体选几个,要看实际情况而定。对于我们的数据,对于我们的数据,SPSSSPSS输出为输出为 这里的这里的Initial Eigenvalues就是这里的六个就是这里的六个主轴长度,又称特征值(数据相关阵的特主轴长度,又称特征值(数据相关阵的特征值)。征值)。头两个成分特征值累积占了总方头两个成分特征值累积占了总方差的差的81.142%。后面的特征值的贡献越来越。后面的特征值的贡献越来越少。少。T To ot ta al
21、 l V Va ar ri ia an nc ce e E Ex xp pl la ai in ne ed d3.73562.25462.2543.73562.25462.2541.13318.88781.1421.13318.88781.142.4577.61988.761.3235.37694.137.1993.32097.457.1532.543100.000Component123456Total%of VarianceCumulative%Total%of VarianceCumulative%Initial EigenvaluesExtraction Sums of Squared
22、 LoadingsExtraction Method:Principal Component Analysis.特征值的贡献还可以从特征值的贡献还可以从SPSS的所谓碎石图看出的所谓碎石图看出Scree PlotComponent Number654321Eigenvalue43210 怎么解释这两个主成分。前面说过主成分怎么解释这两个主成分。前面说过主成分是原始六个变量的线性组合。是怎么样的是原始六个变量的线性组合。是怎么样的组合呢?组合呢?SPSSSPSS可以可以输出下面的表。输出下面的表。Component MatrixComponent Matrixa a-.806.353-.040.
23、468.021.068-.674.531-.454-.240-.001-.006-.675.513.499-.181.002.003.893.306-.004-.037.077.320.825.435.002.079-.342-.083.836.425.000.074.276-.197MATHPHYSCHEMLITERATHISTORYENGLISH123456ComponentExtraction Method:Principal Component Analysis.6 components extracted.a.这里每一列代表一个主成分作为原来变量线性组这里每一列代表一个主成分作为原来
24、变量线性组合的系数(比例)。比如第一主成分作为数学、合的系数(比例)。比如第一主成分作为数学、物理、化学、语文、历史、英语这六个原先变量物理、化学、语文、历史、英语这六个原先变量的线性组合,系数(比例)为的线性组合,系数(比例)为-0.806,-0.674,-0.675,0.893,0.825,0.836。如用如用x x1 1,x x2 2,x x3 3,x x4 4,x x5 5,x x6 6分别表示原先的六个变量,而用分别表示原先的六个变量,而用y y1 1,y y2 2,y y3 3,y y4 4,y y5 5,y y6 6表示新的主成分,那么,原先六个变量表示新的主成分,那么,原先六个
25、变量x x1 1,x x2 2,x x3 3,x x4 4,x x5 5,x x6 6与第一和第二主成分与第一和第二主成分y y1 1,y y2 2的关系为:的关系为:X X1 1=-0.806=-0.806y y1 1+0.353y+0.353y2 2X X2 2=-0.674=-0.674y y1 1+0.531y+0.531y2 2X X3 3=-0.675=-0.675y y1 1+0.513y+0.513y2 2X X4 4=0.893=0.893y y1 1+0.306y+0.306y2 2x x5 5=0.825=0.825y y1 1+0.435y+0.435y2 2x x6
26、6=0.836=0.836y y1 1+0.425y+0.425y2 2 这些系数称为主成分载荷(这些系数称为主成分载荷(loading),它表示主成分和相应的),它表示主成分和相应的原先变量的相关系数。原先变量的相关系数。比如比如x1表示式中表示式中y1的系数为的系数为-0.806,这就是说第一主成分和数学,这就是说第一主成分和数学变量的相关系数为变量的相关系数为-0.806。相关系数相关系数(绝对值)越大,主成分对该变量的代表性也越大。绝对值)越大,主成分对该变量的代表性也越大。可以看得出,第一主成分对各个变量解释得都很充分。而最后可以看得出,第一主成分对各个变量解释得都很充分。而最后的几
27、个主成分和原先的变量就不那么相关了。的几个主成分和原先的变量就不那么相关了。可以把第一和第二主成可以把第一和第二主成分的载荷点出一个二维图分的载荷点出一个二维图以直观地显示它们如何解以直观地显示它们如何解释原来的变量的。这个图释原来的变量的。这个图叫做载荷图。叫做载荷图。Component PlotComponent 11.0.50.0-.5-1.0Component 21.0.50.0-.5-1.0englishhistoryliteratchemphysmath该图该图左面三个点是数学、物理、化学三科左面三个点是数学、物理、化学三科,右边三个点右边三个点是语文、历史、外语三科。是语文、历史
28、、外语三科。图中的六个点由于比较挤,图中的六个点由于比较挤,不易分清,但只要认识到这些点的坐标是前面的第一二不易分清,但只要认识到这些点的坐标是前面的第一二主成分载荷,坐标是前面表中第一二列中的数目,还是主成分载荷,坐标是前面表中第一二列中的数目,还是可以识别的。可以识别的。因子分析因子分析主成分分析从原理上是寻找椭球的所有主轴。因此,原先有几个变量,就有几个主成分。而因子分析是事先确定要找几个成分,这里叫因子(factor)(比如两个),那就找两个。这使得在数学模型上,因子分析和主成分分析有不少区别。而且因子分析的计算也复杂得多。根据因子分析模型的特点,它还多一道工序:因子旋转(factor
29、 rotation);这个步骤可以使结果更好。当然,对于计算机来说,因子分析并不比主成分分析多费多少时间。从输出的结果来看,因子分析也有因子载荷(factor loading)的概念,代表了因子和原先变量的相关系数。但是在输出中的因子和原来变量相关系数的公式中的系数不是因子载荷,也给出了二维图;该图虽然不是载荷图,但解释和主成分分析的载荷图类似。主成分分析与因子分析的公式上的区别主成分分析与因子分析的公式上的区别111 11221221 122221 122ppppppppppya xa xa xya xa xaxya xaxa x111 112211221 1222221 122mmmmpp
30、ppmmpxa fa fafxa fafafxafafaf111 11221221 122221 122ppppmmmmppfxxxfxxxfxxx主成分分析主成分分析 P312因子分析因子分析(mp)P314因子得分因子得分 P315 对于我们的数据,对于我们的数据,SPSSSPSS因子分析输出为因子分析输出为R R o o t t a a t t e e d d C C o o m m p p o o n n e e n n t t M M a a t t r r i i x xa a-.387.790-.172.841-.184.827.879-.343.911-.201.913-.21
31、6MATHPHYSCHEMLITERATHISTORYENGLISH12ComponentExtraction Method:Principal Component Analysis.Rotation Method:Varimax with Kaiser Normalization.Rotation converged in 3 iterations.a.这里,这里,第一个因子主要和语文、历史、英语三科有很强的第一个因子主要和语文、历史、英语三科有很强的正相关;正相关;而第二个因子主要和数学、物理、化学三科有很而第二个因子主要和数学、物理、化学三科有很强的正相关强的正相关。因此可以给第一个因子
32、起名为。因此可以给第一个因子起名为“文科因子文科因子”,而给第二个因子起名为而给第二个因子起名为“理科因子理科因子”。从这个例子可以看。从这个例子可以看出,因子分析的结果比主成分分析解释性更强。出,因子分析的结果比主成分分析解释性更强。Component Plot in Rotated SpaceComponent 11.0.50.0-.5-1.0Component 21.0.50.0-.5-1.0englishhistoryliteratchemphysmath 这两个因子的系数所形成的散点图(虽然这两个因子的系数所形成的散点图(虽然不是载荷,在不是载荷,在SPSS中也称载荷图,中也称载荷图
33、,可以直观看出每个因子代表了一类学科可以直观看出每个因子代表了一类学科 计算因子得分计算因子得分可以根据前面的因子得分公式(因子得分系数和原始变量的标准化值的乘积之和),算出每个学生的第一个因子和第二个因子的大小,即算出每个学生的因子得分f1和f2。人们可以根据这两套因子得分对学生分别按照文科和理科排序。当然得到因子得分只是SPSS软件的一个选项(可将因子得分存为新变量、显示因子得分系数矩阵)因子分析和主成分分析的一些注意事项因子分析和主成分分析的一些注意事项 可以看出,因子分析和主成分分析都依赖于原始变量,也只能反映原始变量的信息。所以原始变量的选择很重要。另外,如果原始变量都本质上独立,那
34、么降维就可能失败,这是因为很难把很多独立变量用少数综合的变量概括。数据越相关,降维效果就越好。在得到分析的结果时,并不一定会都得到如我们例子那样清楚的结果。这与问题的性质,选取的原始变量以及数据的质量等都有关系在用因子得分进行排序时要特别小心,特别是对于敏感问题。由于原始变量不同,因子的选取不同,排序可以很不一样。SPSSSPSS实现实现(因子分析与主成分分析因子分析与主成分分析)拿student.sav为例,选AnalyzeData ReductionFactor进入主对话框;把math、phys、chem、literat、history、english选入Variables,然后点击Ext
35、raction,在Method选择一个方法(如果是主成分分析,则选Principal Components),下面的选项可以随意,比如要画碎石图就选Scree plot,另外在Extract选项可以按照特征值的大小选主成分(或因子),也可以选定因子的数目;之后回到主对话框(用Continue)。然后点击Rotation,再在该对话框中的Method选择一个旋转方法(如果是主成分分析就选None),在Display选Rotated solution(以输出和旋转有关的结果)和Loading plot(以输出载荷图);之后回到主对话框(用Continue)。如果要计算因子得分就要点击Scores,再选择Save as variables(因子得分就会作为变量存在数据中的附加列上)和计算因子得分的方法(比如Regression);之后回到主对话框(用Continue)。这时点OK即可。