SPSS主成分分析特征向量计算与综合得分完整实操指南
简介本资源是一份面向数据分析初学者与科研人员的SPSS主成分分析实操文档围绕10个经济指标GDP、工业增加值、第三产业增加值、固定资产投资、社会消费品零售总额、地方财政收入等的降维案例完整演示从数据准备到综合评价的全流程。压缩包内仅含1个doc文件大小约139KB以图文结合方式呈现相关系数矩阵、方差分解主成分提取分析表、初始因子载荷矩阵及Compute Variable对话框等关键界面截图便于对照操作。文档重点讲解SPSS自动标准化与Descriptives过程手动获取标准化数据的区别并给出特征向量计算、主成分表达式F1、F2及综合模型F的完整推导过程还提示了主成分个数按特征值大于1提取的原则。目前已有4997人学习下载适合需要掌握主成分分析操作、避免与因子分析混用的读者参考。1. 为什么 SPSS 做主成分分析总在“特征向量”这一步卡住很多人第一次在 SPSS 里跑主成分分析输出窗口里相关系数矩阵、方差分解表、初始因子载荷矩阵都出来了看着挺顺结果一到“写出主成分表达式”就懵了——SPSS 压根没给特征向量只给了一个 Component Matrix。于是有人直接把载荷矩阵当成系数用有人干脆放弃转去做因子分析最后把两种方法的结论混在一起写进报告。这个资源要解决的就是这个断点用 10 个宏观经济指标GDP、工业增加值、第三产业增加值、固定资产投资、基本建设投资、社会消费品零售总额、海关出口总额、地方财政收入、人均 GDP、农业增加值做例子把从 Factor Analyze 到特征向量、主成分表达式、综合主成分模型的完整链路走一遍。适合已经会用 SPSS 做描述统计和相关性分析、但没系统做过 PCA 的从业者也适合需要复现一份“能交差”的评价排序结果的人。核心结论先摆出来SPSS 的 Factor Analyze 默认对原始数据做标准化但标准化后的数据不会自动落到数据窗口特征向量必须自己用载荷除以对应特征值的平方根算出来。2. SPSS 主成分分析的原理与 Factor Analyze 参数设置2.1 主成分分析和因子分析在 SPSS 里到底差在哪SPSS 没有单独的“主成分分析”菜单PCA 是挂在 Analyze → Dimension Reduction → Factor 里的。这个 Factor 过程默认做的是主成分提取但输出里又混着因子分析的术语比如 Component Matrix、Rotated Component Matrix所以很多人会误以为自己在做因子分析。两者的数学差别在于主成分分析是把原始变量线性组合成几个新变量新变量之间互不相关目的是降维和计算综合得分因子分析是假设原始变量由几个潜在公共因子加特殊因子构成目的是找潜变量结构。SPSS 的 Factor 过程在 Extraction 对话框里选 Principal components就是在做 PCA选 Principal axis factoring 或 Maximum likelihood才是因子分析。这个资源里的操作全程用 Principal components不旋转因为旋转会改变载荷矩阵后面算特征向量就对不上了。提示如果你在 Extraction 里勾了 RotationComponent Matrix 会变成 Rotated Component Matrix此时载荷不再对应原始主成分方向不能直接拿来除以特征值开方。2.2 相关系数矩阵与 KMO、Bartlett 的判读跑 PCA 之前先看变量之间有没有足够的相关性。在 Factor Analyze 的 Descriptives 子对话框里勾上 Correlation Matrix、KMO and Bartletts test of sphericity。输出里的相关系数矩阵就是判断依据。以这份 10 变量数据为例GDP 与工业增加值、第三产业增加值、固定资产投资、基本建设投资、社会消费品零售总额、地方财政收入的相关系数都很高说明这些变量信息重叠严重适合降维。KMO 值一般要求大于 0.6Bartlett 球形检验的显著性小于 0.05才认为相关矩阵不是单位阵。检验项判断标准本例含义KMO 取样适切性 0.6 可接受 0.8 良好变量间共同方差较高Bartlett 显著性 0.05相关矩阵非单位阵相关系数绝对值 0.5 视为强相关GDP 与多个指标强相关2.3 Extraction 对话框的关键参数进入 Analyze → Dimension Reduction → Factor → Extraction几个参数直接决定后面能不能复现Method选 Principal components。Analyze选 Correlation matrix因为 SPSS 会自动标准化用相关矩阵等价于对标准化变量做 PCA。Extract选 Based on Eigenvalue阈值填 1。这就是“特征值大于 1”的提取原则。Maximum Iterations for Convergence默认 25 一般够用变量多或共线性极端时可调到 50。特征值大于 1 的逻辑是一个标准化变量的方差为 1主成分特征值小于 1说明它解释的方差还不如直接保留一个原始变量。本例方差分解表显示前两个主成分特征值分别为 7.22 和 1.235都大于 1第三个开始小于 1所以 m2。# SPSS 语法方式复现 Extraction 设置 FACTOR /VARIABLESX1 X2 X3 X4 X5 X6 X7 X8 X9 X10 /MISSINGLISTWISE /ANALYSISX1 X2 X3 X4 X5 X6 X7 X8 X9 X10 /PRINTINITIAL CORRELATION KMO EXTRACTION /FORMATSORT /CRITERIAMINEIGEN(1) ITERATE(25) /EXTRACTIONPC /ROTATIONNOROTATE.这段语法里/EXTRACTIONPC指定主成分法/ROTATIONNOROTATE禁止旋转MINEIGEN(1)就是特征值大于 1 的提取标准。用语法跑的好处是每一步都可追溯比在对话框里点来点去更容易复现。跑完后输出窗口里的 Total Variance Explained 表就是判断 m 的依据。3. 从载荷矩阵到特征向量Compute Variable 实操3.1 初始因子载荷矩阵的物理含义Extraction 之后输出窗口会出现 Component Matrix也就是初始因子载荷矩阵。每一行是一个原始变量每一列是一个主成分单元格里的数值是主成分与对应变量的相关系数叫载荷。本例中第一主成分上GDP、工业增加值、第三产业增加值、固定资产投资、基本建设投资、社会消费品零售总额、海关出口总额、地方财政收入的载荷都较高说明第一主成分主要反映这些总量型指标第二主成分上人均 GDP 和农业增加值的载荷较高反映的是人均水平和农业结构。这就是“第一主成分基本反映总量信息、第二主成分反映人均与农业信息”的由来。但载荷不是特征向量。特征向量是主成分表达式中原始变量的系数载荷除以对应主成分特征值的平方根才等于特征向量。这一步 SPSS 不会自动做必须手动。3.2 用 Compute Variable 计算特征向量 A1、A2操作路径是 Transform → Compute Variable。先把 Component Matrix 的两列数据复制到数据编辑窗口命名为 B1、B2。然后计算 A1A1 B1 / SQRT(7.22) A2 B2 / SQRT(1.235)在 Compute Variable 对话框里Target Variable 填 A1Numeric Expression 填B1/SQR(7.22)。SPSS 里平方根函数是SQRT不是SQR原文写的SQR是笔误实际输入要用SQRT否则会报错。# 用语法批量计算特征向量避免逐个点对话框 COMPUTE A1 B1 / SQRT(7.22). COMPUTE A2 B2 / SQRT(1.235). EXECUTE.COMPUTE对每一行做逐元素运算SQRT(7.22)是第一主成分特征值的平方根SQRT(1.235)是第二主成分特征值的平方根。EXECUTE让计算立即生效。算完后数据窗口里 A1、A2 两列就是两个主成分的特征向量。注意特征值要从 Total Variance Explained 表的 Initial Eigenvalues 列读取不是从 Extraction Sums of Squared Loadings 列读两列在未旋转时数值相同但概念上要用初始特征值。3.3 主成分表达式的组装有了特征向量主成分表达式就是把特征向量作为系数乘以标准化后的原始变量。本例得到F1 0.353ZX1 0.042ZX2 - 0.041ZX3 0.364ZX4 0.367ZX5 0.366ZX6 0.352ZX7 0.364ZX8 0.298ZX9 0.355ZX10 F2 0.175ZX1 - 0.741ZX2 0.609ZX3 - 0.004ZX4 0.063ZX5 - 0.061ZX6 - 0.022ZX7 0.158ZX8 - 0.046ZX9 - 0.115ZX10ZX1 到 ZX10 是标准化后的变量。SPSS 在 Factor Analyze 里自动标准化了数据但不会把标准化结果写回数据窗口所以下一步必须自己生成 Z 变量。4. Descriptives 生成 Z 变量与综合主成分得分计算4.1 用 Descriptives 把标准化数据落到数据窗口路径是 Analyze → Descriptive Statistics → Descriptives。把 X1 到 X10 选入 Variables 框勾选 Save standardized values as variables点 OK。SPSS 会在数据窗口生成 ZX1 到 ZX10 十列命名以 Z 开头。# 语法方式生成标准化变量 DESCRIPTIVES VARIABLESX1 X2 X3 X4 X5 X6 X7 X8 X9 X10 /SAVE /STATISTICSMEAN STDDEV MIN MAX./SAVE就是 Save standardized values as variables 的语法写法它把每个变量的 Z 分数保存为新变量。/STATISTICS只是顺带输出描述统计不影响 Z 变量生成。生成后可以用DESCRIPTIVES VARIABLESZX1 TO ZX10 /STATISTICSMEAN STDDEV验证标准化变量的均值应接近 0标准差接近 1。4.2 计算 F1、F2 与综合主成分 F有了 ZX1 到 ZX10 和特征向量 A1、A2就可以在 Compute Variable 里算主成分得分COMPUTE F1 0.353*ZX1 0.042*ZX2 - 0.041*ZX3 0.364*ZX4 0.367*ZX5 0.366*ZX6 0.352*ZX7 0.364*ZX8 0.298*ZX9 0.355*ZX10. COMPUTE F2 0.175*ZX1 - 0.741*ZX2 0.609*ZX3 - 0.004*ZX4 0.063*ZX5 - 0.061*ZX6 - 0.022*ZX7 0.158*ZX8 - 0.046*ZX9 - 0.115*ZX10. EXECUTE.综合主成分模型以每个主成分特征值占提取主成分特征值之和的比例为权重。本例权重为主成分特征值权重计算F17.220.8547.22 / (7.221.235)F21.2350.1461.235 / (7.221.235)于是综合模型为F 0.854*F1 0.146*F2 0.327ZX1 - 0.072ZX2 0.054ZX3 0.310ZX4 0.323ZX5 0.304ZX6 0.297ZX7 0.334ZX8 0.248ZX9 0.286ZX10COMPUTE F 0.854*F1 0.146*F2. EXECUTE. RANK VARIABLESF (A) /RANK /PRINTYES /TIESMEAN.RANK按综合主成分值升序排名/TIESMEAN处理并列值。排完序就能对各地区做综合评价比较。4.3 常见报错与排查现象原因处理Compute Variable 报错“SQR 未定义”函数名写错改用 SQRT特征向量算出来和文献对不上用了旋转后的载荷矩阵重新跑 NOROTATEZ 变量没生成没勾 Save standardized values重跑 Descriptives 并勾选综合得分排序异常权重用了旋转后特征值用 Initial Eigenvalues 列提示如果变量量纲差异极大比如 GDP 以亿元计、农业增加值以万元计虽然 SPSS 自动标准化能消除量纲但极端离群值仍会拉偏相关矩阵建议先做箱线图检查异常值。5. 主成分分析结果的验证与聚类分析交叉检验5.1 用聚类分析检验综合得分的合理性综合主成分值算出来后直接拿去排名是常见做法但排名是否合理需要交叉验证。一个实用技巧是把综合主成分 F 和原始 10 个变量一起做层次聚类看聚类结果是否和 F 的排序分层一致。CLUSTER ZX1 ZX2 ZX3 ZX4 ZX5 ZX6 ZX7 ZX8 ZX9 ZX10 /METHOD WARD /MEASURESEUCLID /PRINT SCHEDULE /PLOT DENDROGRAM./METHOD WARD用 Ward 离差平方和法/MEASURESEUCLID用欧氏距离平方/PLOT DENDROGRAM输出树状图。如果聚类把样本分成几层而 F 的排序也呈现同样的分层说明主成分综合得分没有严重失真。如果聚类结果和 F 排序矛盾就要回头检查是否有变量载荷方向相反、或者某个主成分权重被低估。5.2 判别分析解决争议样本对聚类和主成分排序有争议的样本可以用原始数据做判别分析。把聚类得到的类别作为分组变量10 个原始变量作为自变量跑 Analyze → Classify → Discriminant。看判别函数的分类准确率和典型判别函数的解释比例如果准确率高说明聚类分组本身有数据支撑主成分排序的争议可能来自权重分配如果准确率低说明样本本身结构不清晰任何降维排序都要谨慎下结论。5.3 一个容易忽略的细节特征值阈值的边界情况特征值大于 1 是经验规则不是铁律。本例第二主成分特征值 1.235刚过 1如果数据稍有变动可能就掉到 1 以下。这种情况下可以同时看碎石图Scree Plot的拐点以及累计方差贡献率是否达到 80% 以上。如果第二主成分特征值在 1 附近徘徊建议同时报告 m1 和 m2 两种方案的综合得分比较排序差异而不是只报一个结果。FACTOR /VARIABLESX1 X2 X3 X4 X5 X6 X7 X8 X9 X10 /PRINTINITIAL EXTRACTION /PLOTEIGEN /CRITERIAMINEIGEN(1) ITERATE(25) /EXTRACTIONPC /ROTATIONNOROTATE./PLOTEIGEN输出碎石图横轴是主成分序号纵轴是特征值。拐点明显时拐点前的主成分数量往往比单纯看特征值大于 1 更稳。把碎石图和方差贡献率表放在一起判断比只盯一个阈值靠谱得多。本文还有配套的精品资源点击获取