
简介应用回归分析第四版何晓群、刘文卿课后习题答案解析文档适合统计学、数据科学及经管类专业学生课后巩固、考研复习或教师备课参考。内容按章节梳理回归分析核心知识点系统讲解随机误差项的意义、线性回归模型的基本假设并给出参数无偏性、平方和分解公式及三种检验关系等经典证明题的完整推导同时涵盖加权最小二乘法消除异方差性的思想与方法、前进法与后退法等变量筛选思路便于读者对照原书逐题查漏补缺。资源包内为1个doc格式文件整体大小约276KBWord版本方便检索、批注与打印学习。已有1639人浏览学习适合需要参考答案解析、加深回归理论理解并训练证明题思路的读者。1. 回归分析的习题集真正该练的是什么很多人在《应用回归分析》第四版的课后习题上卡住第一反应是找一份“答案解析”直接抄完交差。但何晓群、刘文卿这版的习题设计有个明显特点它不是考你背公式而是把一个实际数据丢给你让你在“模型设定 - 参数估计 - 检验 - 诊断 - 修正”这条链路上走完一遍。换句话说答案本身不值钱值钱的是你踩过的每一个坑——比如多重共线性没发现、异方差没处理、残差没看直接导致结论是错的。这篇文章不会去复述某一份官方答案而是把回归分析习题里最常出现的几类问题拆开给出一套你自己就能验证、能应付大部分作业和考试的方法论。适合正在学回归分析的学生、要用 SPSS 或 R 做课程论文的从业者以及那些“学过但做题就懵”的读者。你会看到真正的答案不是写在 doc 里的结果而是你手里能跑出来的那套诊断逻辑。2. 线性回归的理论框架与习题中的隐含陷阱2.1 回归分析的基本假设做题前必须默写的四条任何回归习题第一步永远是验证基本假设而不是急着跑模型。经典线性回归的四个核心假设是线性关系因变量与自变量之间是线性的、误差项独立且均值为零残差无自相关、同方差性残差方差恒定以及误差项服从正态分布用于区间估计和假设检验。在课后习题里通常会用散点图让你肉眼判断线性关系用 DW 统计量判断自相关用残差图判断异方差用 P-P 图或 S-W 检验判断正态性。这里有一个习题目里常见的隐蔽陷阱很多题目给出的数据是横截面数据但如果你忽视样本顺序隐含的时间趋势残差的自相关检测就会失真。比如何晓群书中经典的经济数据习题若没有按时间序列的视角审视DW 检验的结果往往被误读。我一般在做题前会先画一张因变量与各自变量的散点图矩阵再跑一个简单的相关性矩阵这一步能帮你快速排除明显非线性的变量也避免后期修正走弯路。2.2 最小二乘估计的矩阵解法与习题中的计算题套路计算题往往是学生最头疼的部分因为涉及矩阵求逆。习题里最常见的套路是给出一个 n 行的数据表让你求回归系数、标准误、t 值。真正做题时手动计算的好处是能让你理解矩阵公式 (XX)^(-1)XY 的每一步但考试时间有限我建议采用一个折中方案先手算均值、离差矩阵和协方差矩阵再利用软件验证结果。例如一个典型的二元回归习题给定 X1、X2 和 Y 各 10 个观测值可以先用离差形式简化计算。具体步骤如下求出 X1、X2、Y 的均值计算离差平方和与离差乘积和得到正规方程组再解出偏回归系数。这个过程中最容易被扣分的地方是忘记解释偏回归系数的含义——b1 表示在 X2 不变的情况下X1 每增加一个单位Y 平均变化多少。最后用总离差平方和与残差平方和来计算判定系数 R²这才是完整答案。2.3 显著性检验的完整流程t 检验与 F 检验的关系习题中显著性检验常常是分开考察的单参数的 t 检验与整体模型的 F 检验。很多人分不清两者的优先顺序。做题时的正确逻辑是先看 F 检验是否拒绝原假设即模型整体是否有效再看各个自变量的 t 检验即哪些变量真正起作用。F 检验的公式是 (SSR/p) 除以 (SSE/(n-p-1))t 检验则是系数估计值除以标准误。常见的一个习题陷阱是整体 F 检验显著但个别 t 检验不显著——这正是多重共线性的典型症状。在答案中不仅要说“t 不显著”还要追问“为什么会出现这种情况”。如果解释变量之间高度相关标准误会膨胀导致 t 值被压缩。这一点在何晓群版的很多习题答案里都被点明但需要你自己做方差膨胀因子VIF验证。VIF 大于 10 通常意味着共线性严重在手工计算时可以用自变量之间的相关系数近似判断。3. 用 SPSS 实操从数据录入到多元线性回归分析3.1 数据整理的三个细节变量视图、缺失值与标准化SPSS 做多元线性回归分析第一关不是点菜单而是数据整理。习题集里的数据一般以表格形式给出但录入时经常会出现三个问题变量类型被误判为字符串、缺失值被当作零处理、量纲差异导致系数比较困难。我给学生的建议是在变量视图中把每个变量的测量尺度改成“标度”如果有缺失值在 SPSS 里选择“排除个案”而不是直接删除整行。对于量纲差异SPSS 里可以通过“分析 - 描述统计 - 描述”勾选“将标准化得分另存为变量”来生成 Z 分数。多元线性回归分析中标准化系数可以比较各变量的相对重要性这一点在习题的判断题里经常出现。另外如果题目要求比较“哪个因素影响更大”一定要用标准化系数而不是原始系数的绝对值因为不同变量的单位不同原始系数的绝对值大小没有可比性。3.2 SPSS 回归分析的关键菜单与输出解读在 SPSS 中执行多元线性回归分析的路径是分析 - 回归 - 线性。将因变量放入“因变量”框将自变量放入“自变量”框方法推荐选择“进入”因为习题集通常要求的是全模型分析。我一般会额外点击“统计”按钮勾选“估计”“模型拟合”“共线性诊断”和“DW”选项这样一次输出就能覆盖回归分析的主要诊断信息。输出结果要按顺序解读首先是模型摘要表里的 R² 和调整后的 R²其次是方差分析表的 F 值和显著性 p 值最后是系数表里的未标准化系数 B、标准化系数 Beta、t 值和显著性。最容易出错的地方是系数的符号如果某个系数的符号与专业知识相悖比如收入对消费的影响为负就要停下来检查多重共线性或异常值而不是直接写进结论里。另有共线性统计量 VIF大于 10 即为警示信号此时需考虑剔除变量或使用岭回归具体内容在后文展开。3.3 习题中“预测”类的解法置信区间与预测区间有一类必考习题是给定一组新的自变量值让你求出因变量的预测值、均值置信区间和个体预测区间。在 SPSS 中做法是在原始数据底部追加一行新观测值将自变量填入因变量留空然后在“保存”选项里勾选“预测值”和“区间”中的“均值”和“单值”。注意置信水平默认为 95%这在实际习题中需要你手动确认题目要求的是 95% 还是 90%。解释区间时要住区分这两者的概率含义均值置信区间是针对 E(Y|X) 的估计不确定性预测区间则是针对一个新个体 Y 的波动范围后者总是比前者宽。很多答案只写了预测值没写区间的解读会丢一半分。另一个实务细节是用回归模型预测时自变量的取值不应超出样本范围太多否则外推导致的误差会急剧放大。这一点在应用回归分析第四版的课后练习里会反复出现答题时最好在结论里加一句“该预测基于样本范围内外推需谨慎”。3.4 用 R 复现同一结果作为一种交叉验证的手段SPSS 输出结果是如何算出来的很多学生并不关心。但当你用 R 复现同一道习题时你会发现 SPSS 默认的“排除缺失值”方式和 R 的 na.omit 行为有时并不完全一致。这里提供一个常见的 R 代码模板可以直接跑通多元线性回归分析# 读取数据假设数据文件为 exercise.csv data - read.csv(exercise.csv) # 查看数据结构确认没有因子型误读 str(data) # 多元线性回归模型 model - lm(Y ~ X1 X2 X3, data data) # 输出回归系数、标准误、t值、p值 summary(model) # 方差膨胀因子检验多重共线性 library(car) vif(model) # 残差诊断正态性、同方差性、独立性 par(mfrow c(2, 2)) plot(model)这段代码里summary(model) 给出的是综合结果vif(model) 用于判断共线性plot(model) 直接生成四张残差诊断图。与 SPSS 的差异在于R 默认完整观测法即任何变量有缺失值的行都会被整行剔除。当习题数据含有缺失值时在 SPSS 里你可以在“选项”中修改为“按列表排除个案”否则两边的结果无法对上。另外R 中回归结果的因变量名要和数据框中的列名完全一致大小写敏感这是最常被忽略的报错来源。4. 回归诊断与修正多元线性回归分析的关键提升4.1 残差分析的四张图你看懂了几张在回归分析习题中残差诊断是拉开分数差距的地方。很多学生的答案只写了“模型的 R² 很高拟合效果好”但如果你顺手画了残差图通常会发现模型存在系统性偏差。我在 R 里用 plot(model) 生成的四张图每一张都有明确的诊断目标。第一张是残差与拟合值图用于检查线性关系和同方差性。如果残差点在一个水平带内随机散布说明这两个假设都成立如果出现喇叭形说明方差随拟合值增大而增大存在异方差。第二张是正态 Q-Q 图用来检查残差的正态性点如果偏离直线太多说明误差项不服从正态分布。第三张是标准化残差与杠杆值的图用来识别强影响点第四张是残差与各观测序号的关系可辅助发现自相关。做题时至少要把第一张和第二张图写进答案里并结合图形下结论而不是空口说“残差符合假设”。4.2 多重共线性的识别与处理策略多重共线性是多元线性回归分析中最常被考察的诊断问题。前面的 VIF 方法提到过当 VIF 大于 10 或回归系数的标准误异常大时就应怀疑共线性。在做题时更直观的判据是相关系数矩阵中某个自变量的相关系数绝对值大于 0.8或者 F 检验显著但各变量的 t 检验均不显著。处理方式按习题的考察点分三种。第一种是剔除变量选择理论上次要的那个变量删掉重新拟合模型这是最常见的做法。第二种是岭回归适用于你不想丢失任何变量的场景但注意教材里不一定要求掌握。第三种是主成分回归将原始变量转换为主成分再回归。在应用回归分析第四版的习题中通常只需要你用前两种方法完成。需要注意做变量剔除时要观察调整 R² 的变化如果剔除后调整 R² 不降反升说明被删的变量确实是冗余的这本身就是一道答案的推理基础。4.3 异方差的检验与加权最小二乘修正异方差在截面数据习题中极其常见检验方法包括残差图观察法、Spearman 相关检验和 Glejser 检验。在 SPSS 中没有现成的异方差检验菜单所以大多数习题会要求你在图中判断。而在 EViews 或 R 里可以直接用 Breusch-Pagan 检验输出 p 值。这里给一段 R 代码完成检验# 加载 lmtest 包 library(lmtest) # 对已有模型做 Breusch-Pagan 检验 bptest(model) # 若 p 值小于 0.05说明存在异方差 # 修正方法加权最小二乘权重为 1/拟合值^2 w - 1 / fitted(model)^2 model_wls - lm(Y ~ X1 X2 X3, weights w, data data) summary(model_wls)参数说明bptest 的原假设是“同方差”p 值小即拒绝原假设意味着需要修正权重向量 w 通常取 1 对拟合值的平方取倒数这可以对较大方差的数据降权使估计更有效率。答题时要如实报告修正前后的系数估计值变化从而说明异方差对结果的实际影响。需要留心的是加权最小二乘的 R² 解释与普通最小二乘略有差异不要在不同模型之间直接比较 R² 值。4.4 自相关的检验DW 值的内外延DWDurbin-Watson统计量在章节里常被单独考察。习题会给回归输出中的 DW 值然后要你判断是否存在自相关。DW 的取值范围是 0 到 4约等于 2 时表示残差无自相关越接近 0 表示正自相关越强越接近 4 表示负自相关越强。但这里有个细节在习题答案中容易被忽略DW 检验存在无法判断的区域即上下界之间的灰色地带此时需要用 LM 检验进一步确认。在 SPSS 中勾选 DW 选项后你得到的是一个数值但该数值只对一阶自相关有效。如果题目明确说数据是时间序列你还应该检查残差序列图确认是否存在周期性。修正自相关的通用方法是 Cochrane-Orcutt 迭代法或对变量做差分变换但这在基础课习题中一般不要求你计算只要求识别与说明方向即可。我做题时会额外计算一阶自相关系数 rho ≈ 1 - DW/2一旦这个值大于 0.3就说明序列相关问题不容忽视。5. 从习题答案到真实研究cox回归分析与模型稳定性验证5.1 习题里的模型在真实数据中会遇到什么课后习题的数据往往是构造好或处理过的几乎不会出现极端异常值和大量缺失变量。但真实场景下比如在医学或经济研究中当你试图用多元线性回归分析去解释一个生存数据或一个具有时间跨度的指标时情况完全不同。此时线性回归的基本假设很难满足可能应转向 Cox 回归分析等更专业的模型。Cox 回归分析并不假设基线风险服从特定分布而是通过比例风险假设对各协变量的效应进行建模。在做此类分析时多元线性回归分析里的共线性诊断、残差分析和变量选择思路仍然适用只是因变量从连续的数值变成了“是否发生事件”以及“发生时间”。5.2 模型稳定性的验证方法交叉验证与 Bootstrap习题答案只需要给出一次拟合结果而真实分析必须回答另一个问题模型是否稳定也就是把样本换成另一批结论还能不能站住。交叉验证是一种常用思路。最常见的 k 折交叉验证把数据分成 k 份轮流把其中一份作为验证集、其余 k-1 份作为训练集最终统计验证集的预测误差。而 Bootstrap 则是通过对样本做有放回的重抽样重复拟合模型后观察系数估计的分布范围。在 R 中可以用 caret 包实现交叉验证核心代码如下library(caret) set.seed(123) # 定义 10 折交叉验证 train_control - trainControl(method cv, number 10) # 训练线性模型method 指定为 lm model_cv - train(Y ~ X1 X2 X3, data data, method lm, trControl train_control) # 输出交叉验证的 RMSE 与 R 方 print(model_cv)参数说明trainControl 中的 method cv 代表交叉验证number 10 代表分成 10 折seed 用于保证重复实验时可复现。输出结果中的 RMSE 是均方根误差值越小说明模型预测越稳定。做题或写论文时建议对比全模型的 RMSE 与交叉验证的 RMSE如果二者差距悬殊说明过拟合严重需要简化模型。5.3 从做题到做分析的差距变量选择不能只靠 p 值课后习题通常告诉你要用哪些变量但现实中变量选择是分析的第一关。常见的自动选择方法包括逐步回归、向前引入和向后剔除。SPSS 的线性回归菜单里的“逐步”方法实现的是向前选择结合向后剔除的混合策略每次引入一个变量后还会检查已引入的变量是否因新变量加入而变得不显著若变得不显著则将其剔除。这个方法在习题集中有专门的小题但真实使用时必须警惕它可能带来的多重共线性问题和 p 值失真。我一般建议结合业务背景与 AIC 信息准则一同判断而不是只看 p 值。在 R 中 step(model) 会按照 AIC 最小化原则自动挑选变量这样选出的模型在预测表现上往往比纯粹按 p 值取舍的模型更稳健。在写分析报告时每剔除一个变量都要说明理由是 VIF 过高、是业务上无关还是贡献度太低。这样读你报告的人才会相信这个模型不是“跑出来的”而是“想清楚的”。6. 答案核对技巧用蒙特卡洛模拟验证你的回归结果习题答案最怕的是你算出结果后不知道对不对。最容易操作的一种自检方案是用蒙特卡洛模拟构造已知参数的回归数据。你自己设定回归系数同时生成符合正态分布的随机误差项然后用标准流程去拟合数据。如果你的代码与推算流程没有错误估计出的系数应该与设定值在置信区间内接近。下面给出一个自检用的 R 脚本模板# 设定真实参数 beta0 - 2; beta1 - 1.5; beta2 - -0.8 n - 200 # 构造自变量与随机误差 X1 - rnorm(n, mean 10, sd 2) X2 - rnorm(n, mean 5, sd 1) error - rnorm(n, mean 0, sd 3) # 依据线性模型生成 Y Y - beta0 beta1 * X1 beta2 * X2 error # 拟合并对比结果 sim_model - lm(Y ~ X1 X2) summary(sim_model)参数说明beta0、beta1、beta2 是人为设定的真实回归系数rnorm 用于生成服从正态分布的随机数n 是样本量。运行后观察 summary 输出的估计系数是否接近 2、1.5、-0.8如果偏差较大先检查误差项标准差是否过大或者样本量是否过少。这种做法的优势在于因变量 Y 的生成过程中你已经知道真相能在完全可控的语境下排查自己的建模流程是否出错。另一个更贴合习题的做法是拿标准输出结果反推原始数据。如果你手头只有参考答案里的回归系数与 R²但缺原始数据表可以通过构造一组随机变量反复拟合直到系数逼近参考答案这类做法用于验证自己的理解是否到位而并非鼓励绕过练习。实际意义在于让你熟练操作软件、理解迭代流程最终面对原始题目时不再依赖外部的 doc 答案也能独立跑完整个回归分析流程。本文还有配套的精品资源点击获取