1、1利用 SPSS 进行主成分分析【例 1】 以全国 31 个省市的 8 项经济指标为例,进行主成分分析。第一步:录入或调入数据(图 1) 。图 1 原始数据(未经标准化)第二步:打开“因子分析”对话框。沿着主菜单的“AnalyzeData ReductionFactor ”的路径(图 2)打开因子分析选项框(图 3) 。图 2 打开因子分析对话框的路径2图 3 因子分析选项框第三步:选项设置。首先,在源变量框中选中需要进行分析的变量,点击右边的箭头符号,将需要的变量调入变量(Variables)栏中(图 3) 。在本例中,全部 8 个变量都要用上,故全部调入(图 4) 。因无特殊需要,故不必理
2、会“Value ”栏。下面逐项设置。图 4 将变量移到变量栏以后 设置 Descriptives 选项。单击 Descriptives 按钮(图 4) ,弹出 Descriptives 对话框( 图 5) 。3图 5 描述选项框在 Statistics 栏中选中 Univariate descriptives 复选项,则输出结果中将会给出原始数据的抽样均值、方差和样本数目(这一栏结果可供检验参考) ;选中 Initial solution复选项,则会给出主成分载荷的公因子方差(这一栏数据分析时有用) 。在 Correlation Matrix 栏中,选中 Coefficients 复选项,则会
3、给出原始变量的相关系数矩阵(分析时可参考) ;选中 Determinant 复选项,则会给出相关系数矩阵的行列式,如果希望在 Excel 中对某些计算过程进行了解,可选此项,否则用途不大。其它复选项一般不用,但在特殊情况下可以用到(本例不选) 。设置完成以后,单击 Continue 按钮完成设置(图 5) 。 设置 Extraction 选项。打开 Extraction 对话框(图 6) 。因子提取方法主要有 7 种,在 Method 栏中可以看到,系统默认的提取方法是主成分(Principal Components) ,因此对此栏不作变动,就是认可了主成分分析方法。在 Analyze 栏中,
4、选中 Correlation matrix 复选项,则因子分析基于数据的相关系数矩阵进行分析;如果选中 Covariance matrix 复选项,则因子分析基于数据的协方差矩阵进行分析。对于主成分分析而言,由于数据标准化了,这两个结果没有分别,因此任选其一即可。在 Display 栏中,选中 Unrotated factor solution(非旋转因子解)复选项,则在分析结果中给出未经旋转的因子提取结果。对于主成分分析而言,这一项选择与否都一样;对于旋转因子分析,选择此项,可将旋转前后的结果同时给出,以便对比。选中 Scree Plot(“山麓”图) ,则在分析结果中给出特征根按大小分布的
5、折线图(形如山麓截面,故得名) ,以便我们直观地判定因子的提取数量是否准确。在 Extract 栏中,有两种方法可以决定提取主成分(因子)的数目。一是根据特征根(Eigenvalues)的数值,系统默认的是 。我们知道,在主成分分析中,主成1c分得分的方差就是对应的特征根数值。如果默认 ,则所有方差大于等于 1 的主c成分将被保留,其余舍弃。如果觉得最后选取的主成分数量不足,可以将 值降低,c例如取 ;如果认为最后的提取的主成分数量偏多,则可以提高 值,例如取9.0c。主成分数目是否合适,要在进行一轮分析以后才能肯定。因此,特征根数值1.的设定,要在反复试验以后才能决定。一般而言,在初次分析时
6、,最好降低特征根的4临界值(如取 ) ,这样提取的主成分将会偏多,根据初次分析的结果,在第8.0c二轮分析过程中可以调整特征根的大小。第二种方法是直接指定主成分的数目即因子数目,这要选中 Number of factors 复选项。主成分的数目选多少合适?开始我们并不十分清楚。因此,首次不妨将数值设大一些,但不能超过变量数目。本例有 8 个变量,因此,最大的主成分提取数目为 8,不得超过此数。在我们第一轮分析中,采用系统默认的方法提取主成分。图 6 提取对话框需要注意的是:主成分计算是利用迭代(Iterations)方法,系统默认的迭代次数是 25 次。但是,当数据量较大时,25 次迭代是不够
7、的,需要改为 50 次、100 次乃至更多。对于本例而言,变量较少,25 次迭代足够,故无需改动。设置完成以后,单击 Continue 按钮完成设置(图 6) 。 设置 Scores 设置。选中 Save as variables 栏,则分析结果中给出标准化的主成分得分(在数据表的后面) 。至于方法复选项,对主成分分析而言,三种方法没有分别,采用系统默认的“回归” (R egression)法即可。图 7 因子得分对话框5选中 Display factor score coefficient matrix,则在分析结果中给出因子得分系数矩阵及其相关矩阵。设置完成以后,单击 Continue 按
8、钮完成设置(图 7) 。 其它。对于主成分分析而言,旋转项(Rotation)可以不必设置;对于数据没有缺失的情况下,Option 项可以不必理会。全部设置完成以后,点击 OK 确定,SPSS 很快给出计算结果(图 8) 。图 8 主成分分析的结果第四步,结果解读。在因子分析结果(Output)中,首先给出的 Descriptive Statistics,第一列 Mean 对应的变量的算术平均值,计算公式为 nijjx1第二列 Std. Deviation 对应的是样本标准差,计算公式为 2/11)(nijijj x第三列 Analysis N 对应是样本数目。这一组数据在分析过程中可作参考。
9、6Descriptive Statistics1921.093 1474.80603 301745.933 861.64193 30511.5083 402.88548 305457.633 1310.21805 30666.1400 459.96699 30117.2867 2.02531 30114.9067 1.89808 30862.9980 584.58726 30业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业Mean Std. Deviation Analysis N接下来是Correlation Matrix(相关
10、系数矩阵),一般而言,相关系数高的变量,大多会进入同一个主成分,但不尽然,除了相关系数外,决定变量在主成分中分布地位的因素还有数据的结构。相关系数矩阵对主成分分析具有参考价值,毕竟主成分分析是从计算相关系数矩阵的特征根开始的。相关系数阵下面的Determinant=1.133E-0.4是相关矩阵的行列式值,根据关系式 可知,det(I)=det(R),从而0)det(RIDeterminant=1.133E-0.4=1*2*3*4*5*6*7*8。这一点在后面将会得到验证。Correlation Matrixa1.000 .267 .951 .191 .617 -.273 -.264 .874
11、.267 1.000 .426 .718 -.151 -.235 -.593 .363.951 .426 1.000 .400 .431 -.280 -.359 .792.191 .718 .400 1.000 -.356 -.135 -.539 .104.617 -.151 .431 -.356 1.000 -.253 .022 .659-.273 -.235 -.280 -.135 -.253 1.000 .763 -.125-.264 -.593 -.359 -.539 .022 .763 1.000 -.192.874 .363 .792 .104 .659 -.125 -.192 1
12、.000业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业Determinant = 1.133E-04a. 在Communalities中,给出了因子载荷阵的初始主成分方差(Initial)和提取主成分方差(Extraction),后面将会看到它们的含义。Communalities1.000 .9451.000 .8001.000 .9021.000 .8751.000 .8571.000 .9571.000 .9291.
13、000 .903业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业Initial ExtractionExtraction Method: Principal Component Analysis.在Total Variance Explained(全部解释方差) 表的Initial Eigenvalues(初始特征根)中,给出了按顺序排列的主成分得分的方差(Total),在数值上等于相关系数7矩阵的各个特征根,因此可以直接根据特征根计算每一个主成分的方差百分比(% of Variance)。由于全部特征根的总和等于变量数目,即有
14、m= i=8,故第一个特征根的方差百分比为 1/m=3.755/8=46.939,第二个特征根的百分比为 2/m=2.197/8= 27.459,其余依此类推。然后可以算出方差累计值(Cumulative %)。在Extraction Sums of Squared Loadings,给出了从左边栏目中提取的三个主成分及有关参数,提取的原则是满足1,这一点我们在图6所示的对话框中进行了限定。Total Variance Explained3.755 46.939 46.939 3.755 46.939 46.9392.197 27.459 74.398 2.197 27.459 74.3981
15、.215 15.186 89.584 1.215 15.186 89.584.402 5.031 94.615.213 2.660 97.275.138 1.724 98.9996.5E-02 .818 99.8171.5E-02 .183 100.000Component12345678Total % ofVariance Cumulative% Total % ofVariance Cumulative%Initial Eigenvalues Extraction Sums of Squared LoadingsExtraction Method: Principal Component
16、Analysis.Scree PlotComponent Number87654321Eigenvalue43210图8 特征根数值衰减折线图(山麓图)主成分的数目可以根据相关系数矩阵的特征根来判定,如前所说,相关系数矩阵的特征根刚好等于主成分的方差,而方差是变量数据蕴涵信息的重要判据之一。根据值决定8主成分数目的准则有三:i 只取1的特征根对应的主成分从Total Variance Explained表中可见,第一、第二和第三个主成分对应的 值都大于1,这意味着这三个主成分得分的方差都大于1。本例正是根据这条准则提取主成分的。ii 累计百分比达到80%85%以上的值对应的主成分在Total
17、Variance Explained表可以看出,前三个主成分对应的 值累计百分比达到89.584%,这暗示只要选取三个主成分,信息量就够了。iii 根据特征根变化的突变点决定主成分的数量从特征根分布的折线图(Scree Plot)上可以看到,第4个 值是一个明显的折点,这暗示选取的主成分数目应有p4(图8)。那么,究竟是3个还是4个呢?根据前面两条准则,选3个大致合适(但小有问题)。在Component Matrix(成分矩阵)中,给出了主成分载荷矩阵,每一列载荷值都显示了各个变量与有关主成分的相关系数。以第一列为例,0.885实际上是国内生产总值(GDP )与第一个主成分的相关系数。将标准化
18、的GDP数据与第一主成分得分进行回归,决定系数R 2=0.783(图 9),容易算出R=0.885,这正是GDP在第一个主成分上的载荷。Component Matrixa.885 .384 .121.607 -.598 .271.912 .161 .212.466 -.722 .368.486 .738 -.275-.509 .252 .797-.620 .594 .438.823 .427 .211业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业1 2 3ComponentExtraction Method: Principal
19、 Component Analysis.3 components extracted.a. 下面将主成分载荷矩阵拷贝到Excel上面作进一步的处理:计算公因子方差和方差贡献。首先求行平方和,例如,第一行的平方和为h12=0.88492+0.38362+0.12092=0.9449这是公因子方差。然后求列平方和,例如,第一列的平方和为s12=0.88492+0.60672+0.82272=3.7551这便是方差贡献(图10)。在Excel 中有一个计算平方和的命令 sumsq,可以方便地算出一组数据的平方和。显然,列平方和即方差贡献。事实上,有如下关系成立:相关系数矩阵的特征根方差贡献主成分得分
20、的方差至于行平方和,显然与前面Communalities表中的Extraction列对应的数据一样。如果我们将8个主成分全部提取,则主成分载荷的行平方和都等于1(图11),即有hi=1,s j=j。到此可以明白:在Communalities 中,Initial对应的是初始公因子方差,实际上是全部主成分的公因子方差;Extraction对应的是提取的主成分的公因子方差,我们提取了3个主成分,故计算公因子方差时只考虑3个主成分。9y = 0.0012x - 2.2336R2 = 0.783-4-3-2-10123450 1000 2000 3000 4000 5000 6000第 一 主 成 分国
21、内生产总值图9 国内生产总值(GDP)的与第一主成分的相关关系(标准化数据)图10 主成分方差与方差贡献Component Matrixa.885 .384 .121 -.203 -6.87E-02 1.143E-02 2.420E-02 9.192E-02.607 -.598 .271 .409 -7.61E-02 .157 5.525E-02 1.317E-02.912 .161 .212 -.270 -7.71E-02 8.271E-02 8.113E-02 -7.36E-02.466 -.722 .368 -.164 .304 -1.64E-02 -7.62E-02 3.949E-03
22、.486 .738 -.275 .212 .305 2.254E-02 6.855E-02 -6.02E-03-.509 .252 .797 .072 2.716E-02 -.161 .107 2.435E-03-.620 .594 .438 -.027 3.531E-02 .247 -9.23E-02 1.634E-03.823 .427 .211 .209 -9.38E-02 -.137 -.157 -2.30E-02业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业1 2 3 4 5 6 7 8ComponentExtract
23、ion Method: Principal Component Analysis.8 components extracted.a. 10图11 全部主成分的公因子方差和方差贡献提取主成分的原则上要求公因子方差的各个数值尽可能接近,亦即要求它们的方差极小,当公因子方差完全相等时,它们的方差为0,这就达到完美状态。实际应用中,只要公因子方差数值彼此接近(不相差太远)就行了。从上面给出的结果可以看出:提取3个主成分的时候,居民消费的公因子方差偏小,这暗示提取3个主成分,居民消费方面的信息可能有较多的损失。至于方差贡献,反映对应主成分的重要程度,这一点从方差的统计学意义可以得到理解。在图11中,将最
24、后一行的特征根全部乘到一起,得0.0001133,这正是相关系数矩阵的行列式数值(在Excel中,求一组数据的乘积之和的命令是product)。最后说明Component Score Coefficient Matrix(成分得分系数矩阵)和Component Score Covariance Matrix(成分得分协方差矩阵),前者是主成分得分系数,后者是主成分得分的协方差即相关系数。从Component Score Covariance Matrix可以看出,标准化主成分得分之间的协方差即相关系数为0(jk)或1(j=k),这意味着主成分之间彼此正交即垂直。初学者常将Component S
25、core Coefficient Matrix表中的数据当成主成分得分或因子得分,这是误会。成分得分系数矩阵的数值是主成分载荷除以相应的特征根得到的结果。在Component Matrix表中,将第一列数据分别除以 1=3.755,第二列数值分别除以 2=2.197,,立即得到 Component Score Coefficient;反过来,如果将Component Score Coefficient Matrix表中的各列数据分别乘以1=3.755, 2=2.197,,则可将其还原为主成分载荷即 Component Matrix中的数据。Component Score Coefficient
26、 Matrix.236 .175 .100.162 -.272 .223.243 .073 .174.124 -.329 .303.129 .336 -.227-.135 .115 .656-.165 .271 .360.219 .194 .174业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业业 业 业 业1 2 3ComponentExtraction Method: Principal Component Analysis. Component Scores.11Component Score Covariance Matrix1.000
27、 .000 .000.000 1.000 .000.000 .000 1.000Component1231 2 3Extraction Method: Principal Component Analysis. Component Scores.实际上,主成分得分在原始数据所在的SPSS当前数据栏中给出,不过给出的都是标准化的主成分得分(图12a);将各个主成分乘以相应的即特征根的二次方根可以将其还原为未经标准化的主成分得分。a.标准化的主成分得分 b. 非标准化的主成分得分图12 两种主成分得分计算标准化主成分得分的协方差或相关系数,结果与Component Score 12Covarian
28、ce Matrix表中的给出的结果一致(见图13)。第一因子 第二因子 第三因子第一因子 1第二因子 0.00000 1第三因子 0.00000 0.00000 1图13 主成分(得分)之间的相关系数矩阵第五步,计算结果分析。从Component Matrix即主成分载荷表中可以看出,国内生产总值、固定资产投资和工业产值在第一主成分上载荷较大,亦即与第一主成分的相关系数较高;职工工资和货物周转量在第二主成分上的载荷绝对值较大,即负相关程度较高;消费价格指数在第三主成分上的载荷较大,即相关程度较高。因此可将主成分命名如下:第一主成分: 投入产出主成分 ;第二主成分: 工资物流主成分 ;第三主成分: 消费价格主成分 。作业:课后15题。