简介SPSS中Logistic回归分析的系统讲解文档面向需要开展分类因变量建模的统计学习者与科研人员内容以2005年中国各地区城市化水平影响因素为实例完整演示二值Logistic回归的数据准备、变量设置、参数选取与结果解读全流程并延伸介绍多值Logistic回归的基本思路。文中包含城镇人口比重逻辑值转换、中部地带等分类变量编码、强迫回归法Enter操作、迭代次数调整、保存选项配置等关键细节图文笔记形式便于对照学习。资源包为单个doc文档压缩包约6.3MB按操作步骤层层推进适合SPSS初学者系统上手也可作为课程作业或论文分析方法的参考。目前已有431人学习下载对理解Logistic回归在城市化研究等实际场景中的应用具有较高参考价值。1. 二元分类也能回归这本 SPSS 文档解决什么问题很多人第一次碰 Logistic 回归都是拿着一个 0/1 的因变量去问能不能做回归。线性回归当然也能跑但预测值会跑到 0 和 1 之外解释起来全是尴尬。这份《利用 SPSS 进行 Logistic 回归分析.doc》解决的就是这个问题把「城镇人口比重」这种连续变量按均值切成 Yes/No 两类再用 SPSS 的 Binary Logistic 模块找出人均 GDP、地理地带等自变量与这个二元结果的关系最后把回归方程落到 Excel 里做预测复现。换句话说它是一套从数据准备、参数设置、结果解读到预测验证的完整流程。适合正在写量化分析报告的学生、需要做风险概率预测的从业者以及想把 SPSS 结果搬到 Excel 里批量算概率的人。2. 数据准备与变量筛选二值化、编码方向与自变量取舍2.1 连续变量转二值以平均值 45.41% 为临界值的转换逻辑Logistic 回归的因变量必须是分类变量所以拿到连续变量后的第一件事就是做二值化。文档里用的临界值是 2005 年全国各地区城镇人口比重的平均值 45.41%凡是大于等于这个值的地区记为 Yes否则记为 No。以均值做切点是最省事也最容易被审稿人接受的做法因为它保留了样本自身的分布信息——高于平均和低于平均各代表一类状态模型的预测结果天然就带「相对水平」的含义。实际操作时这个转换可以在 Excel 里先做完再导入 SPSS。我一般会在原始数据右侧加一列用 IF 函数生成逻辑值IF(G245.41,Yes,No)G2 是城镇人口比重的数值单元格这行公式判断比重是否达到临界值返回 Yes 或 No 文本向下填充到全部 31 个地区。注意临界值 45.41 不是四舍五入出来的而是 31 个比重的真实平均值建议先用 AVERAGE 函数算出来再填进公式不要手敲数字。数据导入 SPSS 时有一点容易忽略SPSS 的变量视图里要确认「城市化」这一列的测量类型被识别为名义变量。如果导入后 SPSS 自动把它判成标度变量需要在 Variable View 里手动改成 Nominal否则后面打开 Binary Logistic 对话框时这个变量可能根本进不了 Dependent 列表框。2.2 自变量筛选为什么二产、三产比重被剔除中部地带被保留原本考虑的自变量有四个人均 GDP、第二产业产值比重、第三产业产值比重、地理位置东中西三大地带。文档里明确提到反复拟合后发现二产比重、三产比重对城市化水平影响不显著最后只保留了人均 GDP 和中部地带两个变量。这个筛选过程值得多说两句。二产、三产比重不显著不代表它们和城市化没关系而是可能和人均 GDP 高度相关——产业结构会反映在经济产出里多个强相关变量同时进模型系数会被分摊单看每个都不显著。所以文档的取舍并不是「变量没用」而是「在这个模型设定下信息已经被人均 GDP 吸收掉了」。做变量筛选时不要只看一趟结果多试几次拟合观察哪个变量进去了之后 Sig. 值始终稳定再决定去留。分类变量「地理位置」的处理更有代表性。三大地带的分类信息如果用两个虚拟变量表示其实会占用两个自由度文档里尝试过之后发现「至多引入两个比方说东部和中部」最终只引入中部地带这一个变量。这意味着模型的参照组是东部加西部中部单独作为一类对比。这种做法的好处是参数少、模型稳坏处是东部和西部之间的差异被合并掉了——如果你的研究问题里这个差异很重要就得换一套虚拟变量编码。2.3 名义变量编码录入 0/1 与 SPSS 重新编码的差别名义变量进 Logistic 回归之前必须变成数值。文档用的规则是属于中部地带的地区记为 1否则记 0。但这里埋了一个贯穿全文的坑——SPSS 会在分析时自动重新编码而且方向和你的原始录入相反。录入时中部1、非中部0SPSS 内部会改成中部0、非中部1。因变量也一样你录入 Yes高于平均水平、No低于平均水平SPSS 输出里却显示 Yes0、No1。这两条编码反转规则文档在第八章开头专门用两张表Dependent Variable Encoding 和 Categorical Variables Codings提示读者。我第一次看这份文档的时候没有特别留意等到按自己的编码去复算预测概率结果和 SPSS 的分类表完全对不上才回头找到这个原因。我的习惯是把这两张编码表复制到 Excel 或者笔记里和最终的系数表放在一起。因为后面搭建预测公式时公式里的每个变量取值方向都必须和 SPSS 的编码保持一致而不是和你录入时的编码保持一致。这一点在第五章的避坑部分还会展开。3. SPSS 对话框参数设置Method、Categorical、Save、Options 逐项说明3.1 打开 Binary Logistic 对话框变量调入与 Method 选择数据准备完成后沿着主菜单的 Analyze→Regression→Binary Logistic 路径打开对话框。这个路径在 SPSS 里比较隐蔽因为它藏在 Regression 子菜单里旁边还有 Linear、Multinomial 等选项第一次找的人容易点错。对话框中需要做的事很简单把「城市化」调入 Dependent 列表框把「人均GDP」和「中部」调入 Covariates 列表框。接下来要选 Method默认是 Enter也就是强迫回归——所有选定的自变量一次性全部进入模型不做逐步筛选。文档选了 Enter和它前面手动筛选变量的做法是一致的先把自变量在外面试明白再让它们一起进模型。如果这一步你把 Method 换成 Forward 或 Backward输出会多出「步骤、模块、模型」三套检验表结果解读复杂很多。数据探索阶段可以用逐步法辅助筛选但最终报告模型时业内更认 Enter 的结果因为逐步法有数据挖掘嫌疑。文档在这里直接选 Enter我认为是对的。3.2 Categorical 分类变量设置中部地带为什么要单独指定自变量「中部」虽然是 0/1 数值但它在业务上是名义变量——地带分类没有大小顺序。SPSS 里必须通过 Categorical 对话框把它声明为分类变量否则模型会把它当连续变量处理系数含义会变成「中部每增加一个单位」这在逻辑上说不通。操作路径是点击对话框右上角的 Categorical 按钮把「中部」从左侧调入 Categorical Covariates 列表框。这里还有一个隐藏细节SPSS 默认的分类对比方式是 Indicator参考类别是最后一个水平。因为两边各只有 0 和 1 两个水平所以最后呈现出来的效果就是文档里说的——SPSS 把 1 和 0 互换了一下。如果你有遇到三分类以上的名义变量建议在 Categorical 对话框里看一眼 Reference Category确认参考组是自己的预期。3.3 Save 与 Options保存项、统计量、迭代次数与分类临界值Save 选项卡控制保存到 Data View 的计算结果。文档选中了四项Leverage values、DfBeta(s)、Standardized、Deviance。这四项都是回归诊断值用来检查有没有异常样本或强影响点。实际应用时Leverage 值大于样本量 3 倍以上通常值得警惕DfBeta 反映的是「删掉某个样本后系数变化多大」绝对值超过一定阈值就说明那个点影响力过大。Options 选项卡里的设置更关键直接决定输出内容的多少选项区选项本文取值说明Statistics and PlotsClassification plots勾选输出分类图直观展示预测效果Statistics and PlotsHosmer-Lemeshow goodness-of-fit勾选输出 HL 拟合优度检验评估整体拟合Statistics and PlotsCI for exp(B)勾选输出优势比的置信区间DisplayAt last step选择只显示最终迭代结果省略中间步骤Classification cutoff0.5默认概率大于等于 0.5 判为 1Maximum Iterations50改为 50限制最大迭代次数默认 20 有时不收敛这里重点说最后两个。Classification cutoff 默认 0.5意思是模型输出的概率值经过四舍五入变成 0 或 1。如果你觉得某一类预测错误代价更高可以把临界值往那类的对立方向调比如改成 0.6那么小于 0.6 的概率都判为 0。文档里专门提了这个机制第六章我会展开讲怎么用。Maximum Iterations 默认只有 20 次文档明确建议把迭代次数增加到 50原因是迭代次数太少时计算结果可能没有真正收敛。这个提醒在样本小或自变量有相关性的场景下尤其管用只要有一次「参数估计不稳定」的经历你就会记住不能省这一步。4. 输出结果逐步解读从样本摘要到最终方程的数表阅读顺序4.1 前置信息样本摘要、因变量编码与分类变量编码SPSS 输出结果一共十二张表按顺序看不会乱。第一张 Case Processing Summary 是样品处理摘要报告选择了多少样本、缺失多少样本。本案例 31 个地区全部有效所以这表看着简单但如果你的数据有缺失值或做了样本筛选一定要先看一眼这张表后面的分析全建立在「入选样本」的基础上。第二张 Dependent Variable Encoding 和第三张 Categorical Variables Codings 是全文最容易忽略但最重要的两张表。Dependent Variable Encoding 显示 Yes0、No1也就是说 SPSS 把「城市化水平高于平均值」编码为 0「低于平均值」编码为 1。Categorical Variables Codings 显示中部地带的编码被翻转录入时的 1是中部变成了 0录入时的 0非中部变成了 1。这两张表决定了你后面手算预测值时公式里的符号方向。建模的人往往急着往下看检验表忽略这两张编码表。但等到需要用模型做预测时没有这两张表等于没有说明书公式写出来也不知道每个系数该乘什么。建议拿到任何 Logistic 回归输出第一步先把这两张编码表标记出来。4.2 模型整体检验Omnibus、模型摘要与 Hosmer-LemeshowOmnibus Tests of Model Coefficients 给出步骤、模块、模型的卡方检验值。本案例的卡方值是 31.187自由度为 2。显著性水平 0.05 下在 Excel 里用CHIINV(0.05,2)可以查出卡方临界值 5.99131.187 远超临界值Sig. 值也小于 0.05说明模型整体显著。Model Summary 里最核心的是最大似然平方的对数值 -2LL9.137这个值用于检验整体拟合。文档里还做了一个对比实验只引入常数项跑一遍模型得到 -2LL40.324。两个值之差 40.324-9.13731.187恰好就是 Omnibus 检验的卡方值——这不是巧合而是似然比检验的数学原理。理解这个关系之后你就不需要死记公式自然知道 -2LL 的差值就是模型解释力大小的度量。Cox-Snell 拟合优度为 0.634Nagelkerke 拟合优度为 0.872。Nagelkerke 是对 Cox-Snell 的校正取值范围滚到 0 到 1 之间所以一般报告以 Nagelkerke 为主。0.872 这个值在社会科学研究里算是相当高的拟合水平了通常见到的研究能到 0.4 就不错。如果你跑出来的伪 R 方很低优先怀疑自变量选取而不是模型设定。Hosmer-Lemeshow 检验要注意方向。它对卡方值的解读和 Omnibus 正好相反卡方值要低于临界值才算通过。本案例自由度 8临界值用CHIINV(0.05,8)查得 15.507HL 卡方 4.730 小于临界值Sig. 值 0.786 大于 0.05拟合优度通过。后面紧接着的列联表展示了观测值与期望值的逼近过程如果这张表里差异过大说明模型在某些概率区间里预测很差需要检查是否有遗漏的交互项。4.3 分类表与最终方程初始猜测到 30/31 预测正确Classification Table 会给两组结果。初始分类表对应只有常数项的模型此时所有样本都预测为数量较多的那一类本案例是 No 有 20 个所以初始正确率是 20/31≈64.5%这是模型效果的下限参照。最终分类表对应迭代收敛后的完整模型观测值 Yes 的 11 个全部预测正确正确率 100%观测值 No 的 20 个里预测正确 19 个错误 1 个正确率 95%。总正确率 30/31≈96.8%相比初始的 64.5% 提升明显说明人均 GDP 和中部地带这两个变量真的有判别能力。Variables in the Equation 表给出了最终模型参数常数项 16.365中部地带回归系数 6.917人均 GDP 回归系数 -0.001。人均 GDP 的系数是负的这个方向在业务上有点反直觉——经济越发达的城市化水平越高才对。但注意这个负号是在控制了「是否中部」之后出现的说明中部地带的地区虽然人均 GDP 不高城市化水平却不低两个变量之间本来就相关同时进入模型后系数方向会发生调整。解读系数时不要单看自家符号要看变量之间的结构关系。5. 常见问题与避坑编码反转、迭代不收敛、HL 检验方向与变量引入5.1 编码反转导致预测全反SPSS 把 0/1 换了个方向现象按自己录入编码中部1非中部0直接代入系数公式算出来的预测概率和 SPSS 输出完全对不上分类结果甚至整体反了。原因SPSS 会把名义变量重新编码录入时的 1 改成 0录入时的 0 改成 1因变量同样被反转Yes高于均值编码为 0No低于均值编码为 1。这两条规则分别藏在 Dependent Variable Encoding 和 Categorical Variables Codings 表里不看这两张表就会踩坑。解决Excel 复算时把中部变量的取值做一次翻转再乘系数。文档里写的(1-C2)就是这个翻转操作当录入的 C21是中部SPSS 实际编码是 0当 C20非中部SPSS 实际编码是 1。所以用1-C2代替 C2 才能和 SPSS 的系数对齐。我现在的习惯是把 SPSS 的两张编码表复制到 Excel 的预测模型区域旁边每次复算前先核对一次公式里的变量方向。5.2 迭代 20 次不收敛把 Maximum Iterations 调到 50现象输出结果不稳定或者日志提示达到最大迭代次数参数还没收敛换一个极小样本量重新跑系数变化很大。原因SPSS 默认最大迭代次数只有 20 次。样本量小、自变量之间存在相关性时似然函数的收敛速度很慢20 次不够用。本案例里人均 GDP 和中部地带存在相关性如果保持默认值最终系数可能停在某个未收敛的位置。解决Options 的 Maximum Iterations 里把 20 改成 50。文档专门做了这一步并且强调是「为安全起见」。我一般会同时打开输出结果的迭代历史日志如果看到「iteration 50」仍没给出收敛标记就得怀疑是自变量之间有严重共线性需要回头处理变量关系。5.3 Hosmer-Lemeshow 检验方向相反为什么 Sig 越大越好现象看到 Omnibus 检验的 Sig. 小于 0.05 觉得模型通过接着看到 HL 检验的 Sig. 是 0.786 远大于 0.05开始怀疑是不是检验做错了。原因Hosmer-Lemeshow 检验比较的是观测值与期望值的一致性卡方值越小说明预测越贴合观测所以它希望 Sig. 大于 0.05、卡方低于临界值。这和 Omnibus 检验恰好方向相反——Omnibus 检验的是模型系数是否整体显著卡方越大越好HL 检验的是模型拟合是否有偏差卡方越小越好。解决记住两条判据分开用。本案例 HL 卡方 4.730 小于临界值 15.507Sig. 0.786 大于 0.05属于拟合良好。如果你看到 HL 检验的 Sig. 小于 0.05说明模型在某个概率区间里预测偏差很大这时优先检查是否有重要交互项或非线性关系遗漏。5.4 分类变量一次全引入三个地带同时进模型的教训现象把东部、中部、西部三个地带的虚拟变量全部放进协变量结果模型系数波动很大有的地带变量 Sig. 值很高整个模型读起来很别扭。原因三大地带的信息存在冗余结构。三个虚拟变量两两相关而且地带本身和人均 GDP 高度关联——东部地带人均 GDP 高西部地带低。全部引入后自由度浪费系数估计被稀释显著性自然被拉低。解决先做试探性拟合把 Sig. 值稳定高于 0.1 的变量逐个剔除。地带变量至多引入两个本案例最终只保留「中部」一个以东部西部为参照对比效果干净利落。从那以后我处理名义变量时都会问自己这个变量的每个水平都真的需要单独进模型吗还是合并一部分水平之后信息损失也不大6. 从二值到多值扩展方向与临界概率调整技巧6.1 多值 Logistic 回归处理三类及以上的因变量二元 Logistic 只能处理两类结果的因变量但业务里经常出现三分类甚至更多的场景。比如城市化水平不按均值切两半而是分成高、中、低三档或者风险评级分成「低风险、中风险、高风险」三种无序类别。这种情况需要走多值 Logistic 回归。SPSS 里对应 Analyze→Regression→Multinomial Logistic。操作逻辑和二元版本相通因变量调入 Dependent自变量调入 Factor 或 Covariate区别在于必须指定一个参考类别SPSS 会输出每个非参考类别相对于参考类别的回归结果。参考类别默认是最后一个水平建议在上一步就对数据做好排序让参考组是你最想拿来对比的那一类。输出结果里重点看似然比检验和参数估计表系数解读方式变成「相对于参考类别某自变量每增加一个单位落在这一类的概率是落在参考类的多少倍」。6.2 调整 Classification cutoff临界概率对预测分类的影响Classification cutoff 默认 0.5但这不一定是业务上的最优解。本案例里 Yes 只有 11 个、No 有 20 个样本分布并不均衡。如果业务上「漏判 Yes」比「误判 No」代价更大可以把 cutoff 调高到 0.6让模型更保守地预测 Yes——代价是总正确率会下降换来的是更少的假阳性。我的习惯是先把预测概率存下来在 Excel 里做一张概率分布直方图观察两类样本的概率区间是否重叠如果两类样本在 0.5 附近大量重叠说明 cutoff 怎么调都有人被分错根本改善手段是加自变量或换模型。如果概率分布分离度好再根据业务代价选定 cutoff 值用模型的结果倒推最优切点。最后补一句我从那以后每次拿到 Logistic 回归的输出都强制自己先找 Dependent Variable Encoding 和 Categorical Variables Codings 两张编码表核对变量方向之后再开始读系数、搭预测公式。这一步省掉的返工时间比任何参数调优都值。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?