资讯动态

SPSS主成分分析实操:从原理到结果解读与综合得分计算

发布时间:2026/9/16 8:19:50 来源:尧图企业网站定制
算起来这已经是SPSS实操系列的第五篇了。前面几篇聊了数据整理、描述统计、差异检验这些基础操作今天终于轮到降维这个重头戏——主成分分析。主成分分析PCAPrincipal Component Analysis是目前论文和实际项目里出场率极高的一种多元统计方法。你手里攥着十几二十个高度相关的变量直接放进回归模型容易炸出多重共线性放进聚类又容易让某些维度被重复加权这时候PCA就派上用场了它用少数几个互不相关的综合变量去替掉原来那一大堆相关变量同时尽可能保留原始数据里的信息。这篇文我尽量把操作逻辑和SPSS的具体实现讲透。不管是写本科毕业论文、做问卷效度分析还是工作中搭指标体系、做用户画像只要你有降维需求这篇都值得好好看一遍。我会把菜单操作、参数选择、结果解读、常见翻车现场全串一遍看完你应该能自己跑完一整套分析并且看得懂每张表在说啥。1. 先搞懂主成分分析到底在干什么1.1 一个能听懂的生活类比我经常跟人打这个比方你要给班里几十个同学的综合表现打分手上有语文、数学、英语、物理、化学、生物、历史、地理八门课成绩。如果直接用这八门课做总分排名等于默认每门课权重相同可语文和数学能一样重要吗你要是把八门课都塞进回归模型又会发现数学和物理高度相关信息重复了。主成分分析的思路就是帮你从这八门课里提炼出两三个看不见的综合能力。比如第一个主成分可能对应数理逻辑能力数学、物理、化学在上面载荷都高第二个主成分可能对应语言表达能力语文、英语在上面载荷高第三个可能对应记忆背诵能力历史、地理载荷高。这样一来你原来要处理八门课现在只需要处理两三个综合得分信息损失还很小。这就是PCA的本质通过线性变换把一组可能存在相关性的变量转换为一组线性不相关的变量转换后的这组变量就叫主成分。每个主成分都是原始变量的线性组合第一个主成分捕获的方差最大第二个次之以此类推。数学上主成分就是原始变量协方差矩阵的特征向量对应的特征值就是该主成分解释的方差大小。这些细节SPSS全帮你算了不用手推但要理解逻辑。1.2 主成分分析和因子分析别搞混我见过太多人把主成分分析和因子分析当成一回事甚至SPSS菜单里都没有单独的主成分分析入口它藏在分析 → 降维 → 因子里这更助长了混淆。这两者的区别一句话版本是主成分分析是变量压缩目的是用少数综合变量代表多数原始变量它是数学变换没有模型假设因子分析是寻找潜在结构它假设原始变量背后存在不可观测的公共因子是统计建模。实操中的差别在于PCA提取出来的成分是原始变量的精确线性组合能直接计算每个样本的成分得分因子分析的因子得分则带有估计性质而且因子分析通常会做旋转比如最大方差旋转来让载荷矩阵结构更清晰、更好解释。如果你只是想把20道题的问卷压成几个维度或者给后续回归/聚类做预处理做PCA就够用了如果你是做量表开发、想验证构念效度那更适合做探索性因子分析EFA。有个细节要知道在SPSS的因子分析对话框里只要提取方法选主成分得到的结果从数学上讲就是PCA的结果。所以你在SPSS里跑因子分析-主成分提取写论文时既可以按主成分分析的逻辑写也可以按探索性因子分析的逻辑写但要用对术语别混着说。1.3 为什么问卷数据特别适合用主成分分析问卷量表题项往往有这几个特点题项数量多、彼此相关性强、背后有潜在维度。比如一个顾客满意度量表可能从产品质量、价格感知、服务态度、购物体验四个维度设计了20道题。直接用这20道题当20个独立变量做后续分析会有两个麻烦一是维度太多模型复杂二是同一维度下的题目相关性太高容易有多重共线性。这时候先用主成分分析做降维把20道题压缩成4个左右的主成分每个主成分代表一个隐含维度再用这4个主成分去做回归、聚类、综合评分整个分析链条就顺了。这也是主成分分析在问卷数据里最常见的三种用途一是做维度探索看题项是否可以归为几个类别二是做结构效度分析的前置步骤或辅助验证三是作为后续建模的预处理消除共线性后果。热搜词里有个问题问得特别好SPSS多维度题项效度分析需要分维度做吗。我的经验是先全校数据一起跑一遍PCA看能不能自然分出理论维度若能自然分出来说明结构效度的基础不错再按维度单独算信度和效度指标若全校跑出来聚不到一起问题就比较严重要么是题项设计有偏差要么是样本量不足这时候硬分维度意义也不大。后面我专门写一节讲这个。2. 做之前的数据整理与检查2.1 数据清洗和缺失值处理很多人拿到问卷数据直接全选变量点确定结果跑出来要么报错要么结果非常离谱。实际上主成分分析对数据质量的要求还真不低尤其是缺失值和异常值。第一步是确认变量类型和测量尺度。主成分分析要求所有进入分析的变量都是连续型或有序分类变量而且是数值型。你要是把性别这种二分变量和满意度评分放一起做PCA数学上虽然能算但解释起来会非常拧巴——连续变量和分类变量的方差贡献没法公平比较。所以在录入SPSS时变量视图里测量列的设置务必正确标准做法是所有进入PCA的题项都设为度量或至少有序。第二步是处理缺失值。问答题、漏答题都会产生缺失。如果缺失比例很低5%以内可以直接用列删法或配对删除如果缺失比例偏高不要急着删样本用SPSS里的多重插补先把缺失值补上再做分析。多提一嘴插补完的数据SPSS会生成一个合并结果数据集填好缺失后要先另存一份再跑PCA。别在原数据上插补完直接分析那样插补产生的多条记录会被当成独立样本。第三步是检查反向题。量表里经常有反向计分的题目你没做反向编码就直接进PCA这些题和其他题的载荷会呈现系统性负号看着特别奇怪。统计软件不会帮你判断题意反向题必须先在数据里做变换比如5点量表用6减原值再参与分析。2.2 样本量、相关性和适用性预检在跑PCA之前最值得做的预检有两个第一个是看样本量。经验法则是样本数至少是题项数的5到10倍且绝对数最好不要少于100。比如有20道题200个以上的样本是比较安全的。这个标准没有绝对硬性规定但样本太少时PCA结果极不稳定换个样本可能主成分就变了。第二个是看变量之间的相关性。PCA本质上是在利用变量间的相关性做压缩如果原始变量之间完全不相关PCA就毫无意义——压缩不了任何信息。数据跑出来如果变量间相关矩阵里大多数相关系数都特别小比如都在0.1以下那大概率不合适做PCA。相关性的正规检验就是后面结果里的KMO检验和Bartlett球形检验。KMO值反映的是变量间偏相关性大小取值范围0到10.9以上极好0.8以上良好0.7以上可以接受0.6以下基本不建议做。Bartlett球形检验的P值要小于0.05才说明变量间存在足够的相关性。这两个指标在SPSS里默认就会输出不用单独操作。还有一点要提前想好要不要做标准化。PCA对量纲很敏感如果变量单位差异极大比如一个是费用从几十到几万一个是评分从1到7不标准化的话量纲大的变量会主导第一主成分。SPSS的因子分析菜单里默认分析方式就包含相关系矩阵这个选项本质上是做了Z-score标准化后再分析的所以一般不用额外操心。但如果你是直接用Syntax里协方差矩阵方式跑就要注意量纲问题了。3. SPSS里一步步操作3.1 打开菜单分析 → 降维 → 因子这一小节是纯操作导航跟着做就行。打开SPSS数据文件后依次点击分析Analyze→ 降维Dimension Reduction→ 因子Factor。在弹出的因子分析对话框中把左侧你想做分析的变量选入右侧变量框。比如问卷有20个题项变量名一般是Q1、Q2到Q20全选进去。这里有个操作细节容易被忽略因子分析对话框底部有选择框可以设置只对某一部分样本做分析。如果你只想对某个分组比如男生组单独做PCA不要在这里用选择变量硬切更推荐先用数据 → 选择个案 → 如果条件满足来筛选样本或者用数据 → 拆分文件按分组运行分析。特别是拆分文件这个功能配合因子分析可以一次性输出各组的PCA结果热搜词里有人专门搜这个确实好用但注意拆分完要记得关闭拆分不然后面跑什么都是分组的。3.2 关键参数怎么选进入因子分析对话框以后有四个按钮要重点配置描述、提取、旋转、得分。描述按钮里勾选统计量里的初始解相关矩阵里的系数、显著性水平、KMO和Bartlett的球形度检验。系数和显著性用来检查变量相关矩阵KMO和Bartlett是PCA是否适用的核心检验。提取按钮是这个环节的重点。方法选主成分分析选相关性矩阵输出里勾选未旋转的因子解和碎石图提取里选基于特征值且特征值大于1。如果你想指定提取固定个数的主成分比如理论模型是3个维度就选因子的固定数量数字填3。特征值大于1是默认最常用的自动筛选规则但不一定最佳有时候特征值1.1的成分解释意义很弱0.98的成分反而解释性很强这时候手动指定个数更合理。旋转按钮这部分我建议PCA默认选无。旋转是因子分析常用的手段是为了让因子载荷两极分化、好解释。但主成分分析的核心目标是提取综合变量、最大程度保留方差旋转反而会改变各成分的方差占比结构没有必要。当然如果你实际上是在做探索性因子分析EFA那就勾选最大方差法旋转这也是问卷效度分析里最常被要求的做法。得分按钮勾选保存为变量方法选回归。这样SPSS会在数据视图里生成几列新变量比如FAC1_1、FAC2_1这就是每个样本在各主成分上的得分。如果你还想输出成分得分系数矩阵方便手算综合得分可以在得分按钮下方勾选显示因子得分系数矩阵。3.3 用Syntax跑一遍效率更高菜单点来点去确实直观但如果你要反复调参、或者有多批数据要跑我建议用Syntax语法窗口。打开方式是文件 → 新建 → 语法或者直接在一个输出结果上右键编辑 → 在语法中打开。这里给出一段完整的PCA语法和上面菜单操作的参数完全对应FACTOR /VARIABLES Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 /MISSING LISTWISE /ANALYSIS Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 /PRINT INITIAL CORRELATION SIG KMO EXTRACTION /PLOT EIGEN /CRITERIA MINEIGEN(1) ITERATE(25) /EXTRACTION PC /ROTATION NOROTATE /SAVE REG(ALL) /METHODCORRELATION.简单解释几个关键行EXTRACTION PC指定提取方法为主成分ROTATION NOROTATE是不旋转MINEIGEN(1)指特征值大于1提取SAVE REG(ALL)是保存所有主成分得分到数据视图。语法跑完后再回头看数据视图会多了FAC1_1、FAC2_1这几个新变量。用Syntax的最大好处是记录留存和复现。你论文的附件里可以放一段语法文件评审或导师想验证结果时可以直接重跑比截图菜单操作更透明也更专业。4. 结果表格逐个解读4.1 KMO和Bartlett检验怎么看跑完之后第一个要看的输出就是KMO 和 Bartlett 的检验表。这张表建立在你对PCA的适用性能不能过关的结论上规范写法是KMO 0.832Bartlett球形检验近似卡方 1245.63df 190Sig. 0.001。细节是KMO值只是可以接受和不可接受的红线不要把它当成越高越厉害的主成分本身质量的指标。KMO高只说明变量间相关性足够适合进行因子/主成分提取。有人KMO 0.97结果提取出两个特征值大于1的成分两个成分加起来只解释61%的方差照样不算好也有人KMO只有0.68但提取的第一个主成分就解释掉58%的方差后面再用也顺。当然KMO低于0.6时我强烈不建议强行跑PCA这个数之下变量间相关性太弱主成分会变成各变量轮流坐庄解释力极差。如果KMO不达标问题的根源通常是样本量不足或变量间相关性太弱。常见补救方式增加样本量剔除与所有其他变量相关性都极低的题项在相关矩阵里找相关性普遍低于0.3的变量优先剔除合并含义相近的题项但这要在问卷设计阶段做分析阶段合并要慎重。4.2 公因子方差和总方差解释公因子方差表Communalities里有初始和提取两列。初始列都是1表示每个变量的全部方差都被纳入分析提取列表示该变量被提取出的主成分所解释的方差比例。比如Q1的提取值是0.762代表这个题项的信息有76.2%被保留了下来。如果某个题项的提取值特别低比如低于0.4说明该题项与主成分的整体结构非常不协调考虑剔除后重跑。总方差解释表是判断主成分个数的核心依据。表里有三块内容初始特征值、提取载荷平方和、旋转载荷平方和如果你没旋转第三块可以忽略。每一行对应一个主成分按特征值从大到小排列。比如第一个主成分特征值6.328方差百分比31.64%累计31.64%第二个特征值2.114方差百分比10.57%累计42.21%……以此类推。这里补充一个常见认知误区很多教材说要累计方差贡献率达到80%以上才算好但实际上在问卷数据分析里社科领域累计方差贡献率达到60%到70%就可以接受。要求80%以上通常是想做严格的结构效度验证时才会考虑的不必盲目追求高比例。你提取了4个主成分累计解释65.3%在多数情况下是可以接受的关键还是看提取的成分有没有解释意义。4.3 碎石图、成分矩阵与成分得分碎石图长得很像山体滑坡的横截面横轴是主成分序号纵轴是特征值大小。特征值从大到小快速下降后曲线趋于平缓。曲线由陡变缓的那个拐点就是应该保留的主成分数量的参考位置。拐点之前对应的是主要成分拐点之后对应的是碎石没有太多提取价值。这个方法主观性不低和特征值大于1的结果交叉验证下结论更稳妥。成分矩阵Component Matrix是PCA最核心的结果表格展示每个原始变量与每个主成分之间的相关系数也就是因子载荷。载荷绝对值越高说明该变量与这个主成分的关系越紧密。对应载荷超过0.5的变量是解释该主成分含义的主力实务中一般要求不少于3个高载荷变量才能给这个主成分起一个靠谱的名字。比如第一个主成分上Q1到Q6的载荷都在0.6以上而这些题项内容都和服务质量有关那第一个主成分就可以命名为服务感知质量因子。高通热搜词里有主成分分析算法python我多说一嘴用Python的sklearn做PCA时对应的.components_矩阵就是SPSS里的成分矩阵来源但Python默认输出的是按列方向和SPSS有符号差异的两边的载荷可能正负号相反这在数学上等价一个成分乘以-1不改变解释力别被吓到。5. 结果怎么用得分、综合排名与后续分析5.1 保存在数据里的主成分得分是什么当你勾了保存为变量SPSS会在数据视图里新增几列变量名通常叫FAC1_1、FAC2_1等。这几个新变量就是每个样本在各主成分上的得分。主成分得分的原理是SPSS会根据成分得分系数矩阵把每个样本的标准化原始值进行加权求和得到每个主成分的得分。这个得分是标准化的均值为0标准差约等于1正数表示该样本在这个主成分上高于平均水平负数表示低于平均水平。这个得分有几个用途。最常用的就是拿去做回归分析、聚类分析或判别分析。比如你提取了4个主成分下一步想做聚类就可以把FAC1_1到FAC4_1当作聚类变量放进K-Means聚类既避免了原变量维度太高又规避了共线性对聚类距离的扭曲。这里提醒一句主成分得分的变量名是SPSS自动生成的连续做两次分析第二次生成的变量名会变成FAC1_2、FAC2_2不会覆盖前面的结果。所以建议在语法里用/SAVE REG(ALL)保存完尽快把新变量重命名和添加变量标签不然等数据乱了你根本分不清FAC1_3是哪次跑的。5.2 如何计算综合得分做排名有时候光有主成分得分还不够你想做一个综合排名比如把20个指标压缩成一个总得分给各个产品或门店、班级排序。这时候可以用方差贡献率作为权重计算加权综合得分。具体操作在SPSS里打开转换 → 计算变量目标变量命名综合得分数字表达式填(FAC1_1 * 32.14 FAC2_1 * 21.58 FAC3_1 * 15.32) / (32.14 21.58 15.32)式子里面的32.14、21.58、15.32就是前几个主成分各自的方差百分比从总方差解释表里抄出来分母是这几个主成分累计方差百分比的和。这样做的好处是给贡献大的主成分更高权重比简单求几个FAC的平均值要合理得多。但注意综合得分只是相对排名它本身没有绝对意义。而且不同分析批次提取的主成分方向可能不同上面说过正负号可能翻转所以综合得分只适合在同一批数据内部比较不能跨批量对比。6. 常见问题与避坑实录6.1 KMO不达标、题项提取得差怎么办这是被问爆的问题。KMO低于0.6或者公因子方差表里有题项提取值低于0.3该怎么办第一先确认反向题编码了没。没有编码的反向题会让变量间出现大量负相关KMO直接被拉垮。第二检查相关矩阵把那些和大多数变量都不相关的孤儿题项找出来单独看如果确实和其他题项相关系数普遍低于0.2果断剔除。第三确认样本量是不是足够大20道题只有70份问卷本来就跑不出稳定结果。剔除题项要遵循原则一次只剔一个看结果变化别一口气删掉五六个题项否则结果变化太大你可能连哪个变量的作用都搞不清楚。每删一个题项记录一下KMO和累计方差贡献率的变化这样最终报告里还可以附上敏感性分析非常加分。6.2 多维度题项效度分析要不要分维度做回到热搜词里那个高频问题。我的建议分两种情况如果是新开发量表、没有成熟的理论维度先把所有题项一起做PCA或EFA让数据自己说话看能不能萃取出理论设想的维度数量如果能这个结果本身就是结构效度的重要证据。如果量表是成熟量表、已经定好了维度你要做的是验证性工作常见做法是整体先跑一次所有题项一起再按各个维度分别跑一次。整体跑主要看KMO和各维度之间是否有足够区分度分维度跑是为了看每个维度内部题项的单维性——每个维度内的题项是否真的都聚集在一个主成分下。正常情况下单维度的题项跑出来应该只提取出一个特征值大于1的主成分且载荷都要在0.5以上。有个误区要避开有人只按维度分别跑每个维度跑出一个主成分就宣称效度良好这其实只证明了维度内部一致性没证明维度之间的区分效度。正确姿势是整体和分维度都跑结合起来看。6.3 输出结果和论文汇报里的常见坑最后整理一下我审论文时常看到的主成分分析汇报问题第一主成分分析和因子分析术语混用。如果你用的是主成分提取就别写旋转后因子载荷——没旋转就不存在旋转后载荷。如果你做了最大方差旋转就别硬说是主成分分析那已经属于因子分析范畴了。第二载荷值保留位数太随意。建议保留两位小数不要用0.531这种占篇幅的三四位小数除非投稿期刊有特殊格式要求。第三只给特征值和贡献率不提累计贡献率。累计贡献率才是判断信息保留程度的关键指标务必汇报。第四用了保存为变量的回归法得分却在方法描述里写用回归法提取主成分。提取方法是主成分得分方法是回归这俩是两码事别混。第五忽略样本量汇报。很多作者直接甩一张旋转成分矩阵连N是多少都不说这会让审稿人怀疑你的可靠性。汇报主成分分析结果时样本量、KMO、Bartlett检验、提取方法、旋转方法、特征值准则、累计方差贡献率这些一个都不能少。我自己的习惯是在论文方法部分写一段动不动就一百多字的标准描述把上面这些全放进去然后下面再放表。这样不仅自己写起来省事审稿人也觉得规范。说点实在的PCA这东西入门门槛确实不高——菜单点几下结果就出来了。但我见过太多人卡在结果解读这一步表出来了不知道哪些该看、哪些该报告、哪些该删题。希望这篇操作文能帮你把整个过程串起来。我自己刚学PCA那会儿也犯过拿因子分析菜单做PCA、做完不保存得分、KMO 0.5还敢硬写论文的错后来被导师一个一个问题揪出来才慢慢把原理和操作理顺。如果你现在正被这个问题卡住按文章里的步骤一步步走多数情况下能顺下来。要是遇到KMO不达标、提取不出来、结果和理论对不上这类顽固问题别急着怀疑自己先回去看看数据清洗和反向题处理这两步是不是出了岔子八成是那里埋的雷。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价