手把手教你用SPSSAU做主成分分析
1.主成分分析能做什么
主成分分析是一种降维处理的统计方法,实践中有三个应用场景:
ü 信息浓缩:将多个分析项浓缩成几个关键概括性指标;
ü 权重计算:利用方差解释率值计算各概括性指标的权重;
ü 综合评价:基于主成分得分构造综合得分数据,用于综合评价。
接下来,以一个具体案例来学习主成分分析用于综合评价。
2.案例数据探索
案例数据原始来源:《直辖市、副省级城市、经济特区和沿海开放城市统计资料汇编(2004)》,直接来源:马力, 史锦凤. 15个副省级城市区域经济发展水平的实证分析[J]. 科技进步与对策, 2006, 23(12):3.
选取反映区域经济发展水平的7个指标,对我国15个副省级城市的经济发展水平进行综合评价研究。
2.1 浏览数据与变量
数据上传SPSSAU后,在 “我的数据”中查看浏览原始数据,前5行数据如下:
图1 “我的数据”查看浏览数据集
7项经济指标包括:GDP、农业总产值、工业总产值、第三产业总产值、固定资产投资总额、消费品零售总额、城乡居民储蓄年末余额,均为连续型数据资料。
2.2 相关系数矩阵初探关系
在“通用方法”栏目下,选择“相关”,将GDP等7个经济指标拖拽至【定量分析项】框内,默认要求输出Pearson相关系数矩阵。
图2 经济指标间的相关性
上图展示了7个指标两两之间Pearson相关系数,相关程度范围为0.10~0.97。农业总产值、固定资产投资总额、消费品零售总额与其他指标相关性普遍低于0.3,而其他指标之间的相关性则相对较高,总体看指标间有一定的相关性基础。
3.主成分分析操作过程
3.1 主成分分析对数据的要求
之所以要使用主成分分析,是因为可用来评价研究对象的指标过多,如果现有数据中仅有少数比如1~3个指标,那大概率来说,我们做主成分分析的必要性并不大。
因此,有较多的评价指标有待于被降维处理或信息浓缩处理,这是基本出发点,要求这些指标须是连续型数据资料,且有一定的相关性基础。
还有一个需要了解的知识点,原则上我们应该先对这些指标变量进行标准化处理,以统一众多指标变量量纲单位。但在SPSSAU中,大家需要知道一下,它在执行主成分分析时会对数据默认进行标准化操作,因此我们并不需要单独地提前去做这一项工作。
3.2 SPSSAU主成分分析操作
在SPSSAU的“进阶方法”栏目下选择“主成分”,将GDP等7个连续型指标变量数据拖拽至【定量分析项】,也就是说现在我们要对这7个指标进行信息浓缩,那么,浓缩为几个主成分呢?
图3 SPSSAU主成分分析操作
SPSSAU可以自动智能化帮助我们做出决策,如果说你对未来主成分有较成熟的专业认识或经验判断,那么可以自定义主成分的个数。本例选择让SPSSAU自动决策。
当然,我们也可以执行一个类似于“回马枪”的做法。让SPSSAU先做自动主成分,然后我们根据输出的特征值、方差比例、碎石图等信息再行讨论和决策,返回主成分操作界面,直接指定主成分的个数。
总的来说,主成分个数的确认主要有三个依据,第一个特征值大于1;第二个是累计方差贡献达到能接受的水平(比如80%以上);第三个是碎石图陡坡信息(看到明显拐点)。
SPSSAU还提供了两项计算,可以计算并另存出成分得分数据,以及综合得分数据,该两项可帮忙自动计算主成分得分和综合得分,下述有具体说明。
最后点【开始分析】,执行主成分分析。
3.3 主成分分析旋转操作
上面进行的主成分分析操作,我们发现整个过程没有“旋转”主成分的功能或提示,这里要和因子分析进行区别。
主成分分析并不刻意强调主成分的实际合理性,没有严格规定必须要对主成分做命名或实际意义的提炼。这与因子分析是有区别的,因子分析强调公共因子命名,即给公因子实际含义进行信息归纳总结。
小结一下,主成分分析可以做命名也可以不做。如果你的研究需要对主成分进行合理性命名,可以借助SPSSAU的因子分析功能,经因子旋转操作来给主成分进行命名(SPSSAU默认直接执行旋转操作)。
稍后,本例会进行示范。
4.主成分分析结果解读
来看结果。
4.1 KMO值与Bartlett检验
主成分和因子分析都要求多维度指标间存在一定的相关性,如何做出判断呢?目前主要基于KMO值和Bartlett检验。
本例结果如下表所示。
图4 kmo和bartlett检验结果
KMO值如果高于0.8,则说明非常适合进行分析;介于0.7~0.8之间,则说明比较适合进行分析;如果此值介于0.6~0.7,则说明可以进行分析;如果此值小于0.6,说明不适合进行分析。另有说法是KMO指须大于0.5。
Bartlett检验对应p值小于0.05通过检验,也说明适合进行主成分分析。
本例,KMO值=0.658,Bartlett检验对应p值<0.05,均说明案例数据适合做主成分。
4.2 特征值、方差解释率及碎石图
主成分分析是基于相关系数矩阵或协方差矩阵计算的,而矩阵运算有一个非常重要的概念叫做特征值或特征根。根据特征根,可以计算每个主成分的方差贡献比例(或称之为方差解释率,下同),特征根,方差解释率是我们判断主成分个数的核心依据。
原本我们有众多指标,假设是k个,做主成分分析的目的是为了降维、信息浓缩,从k个指标中构建(或称为提取)出少数几个主成分,问题是,我们构建几个主成分合适呢?
常见或一般地做法是,选择那些特征根大于1的成分,而且要求这少数几个成分的累积方差解释率足够高。有时为强调更高的累积方差解释率,选择特征根接近1(小于1)的成分也是可以的。
SPSSAU会根据特征根大于1的标准,自动确认主成分的个数,本例结果如下表所示。
图5 特征根、方差解释率表格
从上表可知:主成分分析将构建出3个主成分(前3个成分做累积方差计算),特征根值均大于1,依次为3.519、1.646、1.047。
此3个主成分的方差解释率分别是50.266%、23.512%、14.954%,累积方差解释率为88.733%。这表示,第一主成分可解释我们待降维的7个指标50.266%的信息量,第二主成分可解释23.512%的信息量,第三主成分可解释14.954%。
累积方差解释率多大合适呢?常见的说法是80%,当然这并非一个严格标准,实践中70%以上,或60%也并非不可。我们总是期望累积方差解释率高一些,但实际当中往往并非如此,还需要根据实际情况综合决策。
SPSSAU将为本例构建三个主成分,如果给他们各自一个权重,可以用各自的方差比例除以累积方差来计算。本例的三个主成分权重依次为50.266/88.733=56.65%、23.512/88.733=26.50%和14.954/88.733=16.85%。
碎石图在主成分和因子分析中应用极广,它其实就是各成分的特征根的可视化图形。本例碎石图如下:
图6 碎石图
碎石图形象展示各成分特征根“陡坡势能”的变化过程,落差幅度越大说明对应的成分越重要,解释能力越强。碎石图一般是前几个特征根陡坡落差幅度比较大,越往后越平缓。
本例,前三个陡坡落差幅度较大,提示构建三个主成分是合适的。
4.3 载荷系数与共同度
SPSSAU将构建三个主成分,这些主成分各自与哪些指标有关系呢?总体上如何评价三个主成分的效果呢?
载荷系数和共同度指标可以回答以上问题。载荷系数反映了主成分与指标间的相关关系,共同度总体上反映所构建的主成分的解释能力。
本例对应的结果,见下表:
图7 载荷系数、共同度表格
可以看到,本案例的共同度指标在0.707~0.969之间,表现良好(一般要求大于0.4或0.5)。而各指标与三个主成分载荷系数,尤其是第一主成分与第二主成分的载荷系数纠缠不清,同一个指标在第一和第二主成分上都有较高的载荷。如果是强调主成分命名,那么这样的载荷是不利于命名的。应当采取“旋转”策略,让载荷系数向0和1两极化,以提高主成分命名的能力。
图8 SPSSAU因子分析旋转后的载荷系数
如果确需旋转处理,则需使用SPSSAU的因子分析(默认采取正交旋转法),工作界面和操作和主成分基本类似。本例旋转后的载荷表格如上表所示。
可以发现,第一主成分与GDP、工业总产值、第三产业总产值有关;第二主成分与固定资产投资总额、消费品零售总额、城乡居民储蓄年末余额有关;第三主成分与农业总产值有关。 本案例并不关心命名问题,所以暂不考虑旋转处理,我们直接读取SPSSAU主成分结果即可。
5.计算主成分得分构造综合得分
5.1 线性组合系数与权重
前面我们用载荷系数形容指标与主成分间的关系。从原理上,主成分是指标变量的线性组合,即给指标变量数据线性组合的系数,就可以计算主成分得分数据。
图9 主成分表达式
ZX表示指标变量的标准化值,u表示线性组合系数,F为主成分,本例中我们采用PC表示F。
SPSSAU直接帮我们计算出线性组合系数,见下表。我们只需要将原始数据标准化获得标准化数据,那么就可以计算主成分得分PC。
图10 SPSSAU计算的线性组合系数
据上表可写出三个主成分得分数据的表达式。以第一主成分为例:
PC1=0.393*ZX1+0.103*ZX2+0.404* ZX3+0.454*ZX4+0.342 *ZX5+0.379* ZX6+0.452* ZX7
5.2 计算主成分得分数据
刚才我们以第一主成分为例写出来主成分计算公式,据此公式可以计算得到三个主成分的得分数据。线性组合的系数SPSSAU已经直接提供了,根据公式,我们还需要自己准备好原始数据的标准化值。
这项工作也可以在SPSSAU中直接实现。在“数据处理”栏目下,选中7个指标,选择“生成变量”,在右侧的功能中选择【Z标准化】,点击【确认处理】即可。
图11 标准化后的指标数据
可以在“我的数据”中浏览到标准化结果,然后利用上述部分的公式自行进行计算。
更省事的方式是直接使用SPSSAU的“主成分”保存功能,它会直接将主成分得分保存为新的标题操作如下图所示:
然后我们就会得到3个标题,类似名称为“PcaScore_****”,可通过右上角“我的数据”进行查看,或者下载使用,如下图:
图12 SPSSAU自动生成PC值查看
5.3 构造综合得分数据
获得主成分得分数据后,我们给各主成分分配权重系数,即可构造综合得分数据。本例的综合得分可表示为:PC综合=0.5665*PC1+0.265*PC2+0.1685*PC3
三个主成分的归一化权重系数0.5665、0.2650、0.1685从何而来呢?它是用各主成分的方差除以累积方差计算的结果。这项计算工作,也可以让SPSSAU自动完成,选择“综合得分”复选框,就会得到一个类似为“CompScore_****”的数据标题,当然也可通过点击SPSSAU右上角“我的数据”进行查看或者下载综合得分数据。
6.完成综合评价及小结
6.1 综合得分数据做排名
主成分或因子分析用作综合评价研究,最后一步主要是基于主成分或公因子得分数据,以及构造的综合得分数据,对研究对象进行排名,根据各得分数据、排名的表现展开对研究对象的评价工作。
借助SPSSAU输出的综合得分数据,接着按PC综合得分数据对15
个地区进行降序排列,给出15个地区经济发展的综合排名。
图13 综合得分与排名
最终,本案例主成分得分、综合得分、综合排名的结果见上表。
接下来就是专业人士对该结果的解读和结论的讨论。这部分由具体研究人员根据上述表格结果完成即可。本例略。读者可参考阅读下方这篇论文:
马力, 史锦凤. 15个副省级城市区域经济发展水平的实证分析[J]. 科技进步与对策, 2006, 23(12):3.
6.2 本篇小结
主成分分析,是考察多个变量间相关性的一种多元统计方法,基本思想是在保留原始数据尽可能多的信息前提下达到降维目的,简化问题并抓住主要矛盾。最后构建出少数几个替代原始数据的主成分,它们是原始变量的线性组合。
总体来说,主成分分析和因子分析在数据要求上,分析目的上是一致的,能使用主成分分析的研究,也一定能用因子分析实现研究目的。但从统计工具实现的角度来说,显然常见统计工具对因子分析的支持更完善,对主成分分析的支持则各有不同。
SPSSAU既可以做主成分分析也可以实现因子分析,且可以直接帮我们计算指标权重系数。SPSSAU主成分分析还可以直接获得线性组合的系数、主成分得分和综合得分,为用户实现主成分分析提供了便利。