简介《抽样调查理论与方法第二版》冯士雍课后答案是配套教材的参考答案包面向统计学、数学及相关专业学生、考研备考者以及需要应用抽样调查技术的科研人员。资源收录了各章节课后习题答案内容涵盖随机原则、概率估计、有限总体与无限总体、重复与不重复抽样、样本统计量、抽样误差与置信区间、分层抽样、系统抽样、整群抽样、多阶段抽样、回归估计与相关分析等核心专题并包含填空题、单项选择题、简答题等题型解析便于逐题核对、查漏补缺。整个资源包共一个文件为Word格式文档大小仅一百九十二KB内容集中目前已有三千二百三十一人浏览学习适合配合教材同步使用用于期末复习、作业自检或系统梳理抽样调查理论框架。1. 抽样调查这门课为什么答案只能用来对结果看到“抽样调查理论与方法-第二版-冯士雍-课后答案”这个标题点进来的读者大概率不是想抄作业而是被课后题卡住了。这本书是国内抽样调查教学里绕不开的经典教材课后题覆盖了从简单随机抽样、分层抽样、整群抽样到比率估计、回归估计、多阶段抽样这些核心方法。但真实的困境是答案只能告诉你算对了没有却没法告诉你为什么分层后方差变小、为什么整群抽样的样本量不能按常规公式算、为什么同样的数据换一种估计量结果差一大截。这篇文章想讲清楚的就是怎么把这本书的课后题从“算一遍对答案”变成“真正理解抽样误差从哪来、怎么控得住”。适合正在啃这本书的学生也适合工作中要做抽样方案、却发现自己只会套公式的从业者——照着书里的框架重新走一遍很多实战里的坑其实书里早就埋了答案。2. 第二版的知识骨架从抽样框到误差结构2.1 四个基本抽样方法的适用边界第二版的前半部分把最基本的四种抽样方法讲透了简单随机抽样、分层抽样、整群抽样、系统抽样。很多读者把这四种方法当成四种公式背但课后题真正考的是“在什么场景下选哪种方法”的判断力。简单随机抽样是地基其他方法的方差公式都是从它推导出来的。它的核心操作是从抽样框中不放回地等概率抽取样本方差公式里那个 ( \frac{S^2}{n} ) 相信每个人都抄过但真正要理解的是( S^2 \是总体方差用样本方差估计它衡量的是总体本身的异质性。如果总体内部差异很大简单随机抽样的误差就大这时候就要考虑分层。分层抽样的逻辑是把总体按某个辅助变量切成若干个内部差异小的层然后在每层里独立做简单随机抽样。它的方差之所以比简单随机抽样小是因为层内的 ( S_h^2 ) 比总体 ( S^2 ) 小。课后题里最常出现的两种分配方式是比例分配和内曼分配前者每层样本量与层规模成正比后者还考虑了层内方差——方差大的层多抽。内曼分配在理论上是最优的但前提是你能拿到层内方差的近似值。整群抽样则反过来它不是从总体里直接抽个体而是把总体分成若干个“群”先抽群、再对抽中的群做普查或再抽子样本。整群抽样的效率通常低于简单随机抽样因为群内个体往往相似相当于同样的样本量只带来了较少的信息量。但它的优势在于成本如果没有完整的个体名单、只有群名单整群抽样几乎是唯一能落地的选项。系统抽样是按固定间隔从排序后的名单里抽取样本它最大的坑在于隐藏的周期性。如果名单排序存在周期性波动系统抽样的效果可能变得极差。课后题里经常给一个“按户号排序、每隔k户抽1户”的例子本质上就是考这个。2.2 方差公式里最容易被忽略的有限总体校正项这本书的另一个特点是每一个方差公式前面都挂着一个因子 ( 1 - \frac{n}{N} )中文教材一般叫它有限总体校正项fpc。很多读者在算课后题时直接把公式抄上去但对这个因子视而不见。抽样比 ( n/N ) 小于 5% 时fpc 的作用可以忽略不计很多应用场景也确实这么做比如从一百万人的城市里抽一千个样本fpc 约等于 0.999对结果影响极小。但书里的课后题经常把总体规模设计得很小比如从 200 户里抽 40 户这时候 ( n/N 0.2 )fpc 0.8方差被压缩了 20%标准误也相应缩小了约 10%。忽略它置信区间会明显偏宽结论的精度被低估。更深一层fpc 的存在揭示了一个反直觉的事实抽样误差不仅取决于样本量 n还取决于抽样比 ( n/N )。对同一个总体抽 100 户和抽 200 户的误差差别不只是样本量翻倍带来的还因为抽样比提高导致未入样部分的信息贡献变化了。如果总体 N 本身很小想通过增加样本量把误差压下去效果会比想象中更快。做课后题时建议把每道题的数据先列一张表总体规模 N、样本量 n、层规模、层样本量、层内方差。先明确每个数值对应公式里的哪一个字母再代入计算。很多人算错不是因为不懂公式而是把层规模当成了总体规模或者把按群计算的标准误当成了按个体计算的。2.3 估计量的期望与方差怎样才算真正“会了”抽样调查的核心不是算出一个估计值而是回答两个问题这个估计值平均来看准不准无偏性它波动大不大方差。课后题里大量出现“证明某估计量是无偏的”或者“比较两个估计量的方差”这类题很多读者觉得证明题没用因为实战中没有人要你写证明。但实际工作中恰好相反。一份抽样报告如果只写“平均收入是 5000 元”那是没有任何意义的必须写出“估计值 5000 元标准误 200 元95% 置信区间大约是 46085392 元”。这个标准误就来自方差公式。如果你不理解方差的推导过程你就不知道这个标准误到底包含了哪些不确定性的来源也就不知道它有没有漏掉抽样设计本身带来的影响。第二版在比率估计和回归估计两章里把“辅助变量的价值”讲得很透。比率估计是利用辅助变量 ( X ) 与目标变量 ( Y ) 的正相关关系来压缩方差回归估计则是用线性回归模型来修正估计值。课后题里常出现的题型是已知样本均值 ( \bar{y} )、总体辅助变量均值 ( \bar{X} )、两者的相关系数要求用比率估计或回归估计给出改进后的估计。这类题的解题套路相对固定但它们背后是实战中特别重要的一个思路充分利用已知的总体信息来抵消抽样误差。这里有一个容易混淆的点比率估计是有偏的但它的偏差随着样本量增大而趋近于零一致估计。当样本量不够大时比率估计的偏差和方差之间需要做权衡。第二版里给出的方差近似公式实际上是泰勒展开的一阶近似。理解这一层后面看更高级的抽样方法就不会觉得突兀。3. 用统计软件复现课后题R 与 Python 两个版本3.1 R 的 survey 包一行代码拿到标准误这本书的课后题数据规模都不大用计算器硬算完全可以但用统计软件复现一遍的价值在于你可以顺手验证在不同抽样设计下标准误的差异。R 里最常用的是survey包它把抽样设计对象化支持分层、整群、加权、fpc 等参数的组合。下面用一个分层抽样的例子演示。# 安装并加载 survey 包 # install.packages(survey) library(survey) # 构造示例数据3 个层每层 10 个个体共 30 个总体单位 set.seed(42) df - data.frame( stratum rep(c(A, B, C), each 10), value c(rnorm(10, 50, 5), rnorm(10, 70, 8), rnorm(10, 90, 10)) ) # 构造分层抽样设计对象 # strata 指定分层变量fpc 指定总体规模每层 10 # 这里假设每层抽 4 个所以 fpc 传的是总体每层的 N design - svydesign( ids ~1, strata ~stratum, data df, fpc rep(10, 30) ) # 按抽样比例抽每层 4 个样本 set.seed(123) sample_rows - sapply(split(seq_len(nrow(df)), df$stratum), function(idx) { sample(idx, size 4) }) sample_df - df[unlist(sample_rows), , drop FALSE] # 用抽中的样本重建设计对象 design_sampled - svydesign( ids ~1, strata ~stratum, data sample_df, fpc rep(10, 12) ) # 计算总体均值的估计值和标准误 svymean(~value, design_sampled)这段代码先构造了一个 3 层、每层 10 个单位的总体然后按每层抽 4 个的方式做分层抽样。关键在svydesign函数里ids ~1表示没有群集即每行就是一个独立抽样单元strata指定分层变量fpc向量的作用是告诉 R 每一行对应的总体规模。如果不传fpcR 会按有放回抽样处理标准误会偏大——这个细节对应上一节讲的 fpc 对误差的影响。实操中我用survey包时最容易犯的错是fpc传错格式。如果fpc是一个向量它的长度必须和data的行数一致如果是按层给可以先把层规模合并到数据框里再传入。另一个常见错误是抽完样本后忘了把设计对象的data换成样本子集结果标准误是按总体算的偏差很小结论却不真实。3.2 Python 手工实现拆开公式看每一步在算什么不依赖survey包直接用 Python 按公式手算一遍对理解课后题帮助更大。下面用同一份数据演示分层抽样下均值估计量和方差估计量的完整计算流程。import numpy as np # 构造与 R 示例相同的总体 rng np.random.default_rng(42) stratum_a rng.normal(50, 5, 10) stratum_b rng.normal(70, 8, 10) stratum_c rng.normal(90, 10, 10) # 各层总体规模 N_h 与样本量 n_h N_h np.array([10, 10, 10]) n_h np.array([4, 4, 4]) # 抽取样本固定种子保证可复现 sample_a rng.choice(stratum_a, size4, replaceFalse) sample_b rng.choice(stratum_b, size4, replaceFalse) sample_c rng.choice(stratum_c, size4, replaceFalse) # 各层样本均值 ybar_h np.array([sample_a.mean(), sample_b.mean(), sample_c.mean()]) # 各层样本方差注意np.var 默认除以 n这里要除以 n-1 s2_h np.array([ sample_a.var(ddof1), sample_b.var(ddof1), sample_c.var(ddof1) ]) # 分层均值估计量按层规模加权 N_total N_h.sum() ybar_st (N_h * ybar_h).sum() / N_total print(f分层加权均值估计: {ybar_st:.2f}) # 分层方差估计量对每层用“方差/n * (1 - n/N)”加权 var_ybar_st (N_h**2 * (1 - n_h / N_h) * s2_h / n_h).sum() / N_total**2 print(f估计量的方差: {var_ybar_st:.4f}) print(f标准误: {np.sqrt(var_ybar_st):.4f})这段代码的核心逻辑就是教材公式的逐行翻译。先算每层的样本均值和层内方差再按层规模 ( N_h ) 做加权。方差估计量里每个人都要注意的两个点一是np.var默认是除以 n 的总体方差必须加ddof1才是样本方差二是每个层的方差贡献要先乘以 ( 1 - n_h/N_h )fpc再乘 ( N_h^2 ) 加权到总体尺度。很多人在这一步漏掉 fpc算出来的标准误比实际大 10% 左右对课后题的答案时就会差那么一点点。我一般会建议读者用 Python 手算一遍之后再用 R 的survey包对同一份数据跑一遍把两个标准误对比一下。如果对不上几乎可以断定是 fpc 漏了或自由度参数错了。这个习惯养成了后面处理真实调查数据时就不会把抽样设计写错。3.3 答案对不上时先查这三步课后题算出来跟答案不一致不一定是公式记错了多数是下面三个环节出了问题。第一步检查单位。书里有些题给的是户均收入有些题给的是人均收入估计总量时要乘以对应的户数或人数。比如求全村总收入先求户均收入再乘以总户数如果你把户均直接当成人均乘了总人口结果会差出一个户规模倍率。第二步检查是否用了正确的方差公式。整群抽样的方差公式是按“群间方差”来算的如果你错误地用了按个体方差除以个体样本量的公式结果会小很多。类似地比率估计和回归估计的方差公式不是同一个比率估计的方差近似公式里有 ( \bar{X} ) 和 ( R ) 的交互项不能拿回归估计的残差方差公式去套。第三步检查小数位精度。课后题的数据经常出现可约分的情况比如 ( n25, N100 )fpc 是 0.75open in a calculator标准误会是一个比较工整的小数。如果你算出的数字和答案在小数点后一位开始不同优先怀疑自己有没有约分约错而不是公式用错。这三步是排查顺序不是平级选项。先排除单位错误再排除公式误用最后才考虑精度问题——因为前两个错误往往是整道题全错第三个只会让你差一点点。4. 抽样调查的常见陷阱与踩坑记录4.1 分层后忘了加权均值估计值直接偏了现象按书上的分层抽样公式算出均值和直接用简单平均所有样本值加总除以样本量结果差不多但课后答案差得很明显。明明每层都按比例抽了样本为什么会这样原因比例分配下如果各层抽样比相同分层均值估计量恰好等于简单平均但如果层规模差异很大、你按等量分配在各层抽相同数量的样本就必须用 ( N_h ) 加权否则小层被高估、大层被低估。很多人只记住了“比例分配时两者相等”就以为永远不用加权翻车就翻在这里。解决先看题里各层样本量是按什么方式分配的。不是比例分配时必须用weight N_h / n_h给每个样本加权再算加权均值。在 R 里就是在svydesign里不省略fpc在 Python 里就是公式里不要丢掉N_h那个乘子。4.2 整群抽样用了按元素计算的方差公式现象抽了 20 个群、每个群有 30 个个体用常规公式 ( S^2/n ) 算方差标准误比预期小了一个数量级置信区间窄得不像话。原因整群抽样的基本分析单位是群不是个体。方差来自群间的差异而不是群内个体的差异。如果错误地用个体层面的方差去除以个体样本量等于假设 600 个个体是完全独立抽取的——这跟实际的抽样设计完全不符。解决改用群均值作为分析对象。先计算每个群的均值把这 20 个群均值看成“样本”计算它们的方差再除以群数最后乘上群层面的 fpc ( 1 - n_{群}/N_{群} )。更稳妥的做法是用survey包的svydesign(ids ~cluster, ...)显式声明集群结构让软件替你处理。4.3 无回答率没有进样本量公式现象按下发的样本量 n 做了调查回收上来的有效问卷少了 20%算出来的置信区间宽度明显超过事先设定的精度要求。原因抽样理论里的样本量公式算的是“有效样本量”也就是能够进入估计的样本数。设计中如果不考虑无回答率实际回收样本量会低于设计值精度全面缩水。解决把无回答率折进样本量。假设预期无回答率是 20%那么实际发放样本量应该是设计样本量除以 0.8。课后题里一般不直接考这个但到了真实项目里这是抽样设计里最要命的一环。课后题保持“理想化”答案对上了不要当成实战可用这点心里要有数。4.4 概率抽样做成了方便抽样方差公式全部失效现象照着分层抽样的公式算了标准误但总感觉哪里不对——样本其实是在好几个小区门口拦人拦出来的根本不存在什么抽样框。原因所有课后题里的公式都建立在严格的概率抽样前提下。一旦样本不是通过随机机制产生的方差公式就失去了理论依据算出来的置信区间只是数字游戏。解决设计阶段就要明确抽样框。没有名单就考虑整群抽样先抽小区、再抽户有名单但要控成本考虑多阶段抽样。真实调查里“凑合抽”是最大的坑因为它让后面所有统计推断都站不住。4.5 用 Excel 手算 fpcn/N 写反了现象公式写的是 ( 1 - n/N )但在 Excel 里手滑写成了1 - N/n算出来一个负数或超过 1 的因子标准误直接崩溃。原因纯手算或电子表格公式里单元格引用方向写反是常态。尤其当 N 和 n 分别放在不同单元格时引用错列非常隐蔽。解决不要直接在单元格里写长公式。先把n、N、n/N单独算出来放在辅助列再引用辅助列做 fpc最后组装方差公式。辅助列多占几行但每步都能回头检查比一个单元格塞一整条公式靠谱得多。5. 从课后题到实战一个模拟项目把抽样方案做完整5.1 先定目标量和精度预算课后题通常直接给出总体、抽样方法和样本量实战里这些全是未知的。我最常用的做法是先画一张精度预算表把总误差拆成抽样误差和非抽样误差两部分抽样误差再按阶段拆分。假设目标是估计总体均值允许的相对误差是 3%那么先算出需要的总体样本量再把它分配到各阶段、各层。这张表和课后题的关系在于课后题的公式给出了“给定 n 时的误差”实战需要的是“给定误差时反推 n”。只要把方差公式两边做一下变换就能得到样本量公式。但注意两个细节总体方差 ( S^2 ) 是未知的通常用历史数据或小规模预调查来估计无回答率也要事先打进样本量里。5.2 多阶段抽样时样本量要按“设计效应”放大课后题里整群抽样的样本量一般直接给定但实战中你往往是从“精确度需求”反推。这时不能简单套用简单随机抽样的样本量公式因为整群抽样的方差通常更大需要乘上一个设计效应deff。Deff 的定义是实际抽样设计下的方差除以相同样本量下简单随机抽样的方差。整群抽样的 deff 通常大于 1分层抽样的 deff 通常小于 1。如果拿不到历史数据估算 deff保守做法是按 2 来放大样本量。这个系数直接乘到样本量上简单但有效。课后题里不直接考 deff但理解了第二版里整群抽样方差为什么比简单随机抽样大自然就能推出这个思路。这也是为什么我说课后题的价值不是答案本身而是它逼着你把公式背后的结构理解到位。5.3 用模拟验证置信区间覆盖率实战里我养成了一个习惯正式调查之前先用模拟数据把整个抽样方案跑一遍看看 95% 置信区间在重复抽样下能不能覆盖到真值。做法不复杂构造一个人工总体做几百次重复抽样每次按方案估计均值和置信区间最后统计覆盖率。import numpy as np # 构造一个人工总体200 个个体近似正态分布 rng np.random.default_rng(2024) population rng.normal(100, 15, 200) # 模拟 500 次简单随机抽样样本量 20 n 20 N len(population) cov_count 0 n_sim 500 for _ in range(n_sim): sample rng.choice(population, sizen, replaceFalse) ybar sample.mean() s2 sample.var(ddof1) se np.sqrt(s2 / n * (1 - n / N)) # 基于 t 分布的置信区间自由度 n-1 t_val 1.960 # 近似更准确可用 scipy.stats.t.ppf(0.975, n-1) ci_low ybar - t_val * se ci_high ybar t_val * se if ci_low population.mean() ci_high: cov_count 1 print(f置信区间覆盖率: {cov_count / n_sim:.3f})这段代码的核心逻辑是重复抽样、计算置信区间、统计覆盖比例。理论上覆盖率应该在 95% 附近波动但如果你的模型里漏了 fpc 或用了错误的分布假设覆盖率会明显偏低。我自己跑这类模拟时遇到最多的情况是自由度和 fpc 同时存在时应该用 t 分布而不是正态分布。样本量小的时候用 z 值算出来的区间偏窄覆盖率只有 90% 左右看着没什么大问题但刚好卡在边界上的结论很容易被带偏。这个模拟习惯比多算十道课后题都有用。它不依赖具体的题目数据纯粹检验你对抽样误差的理解是不是跟理论对得上。等你真正负责一个调查项目时也会需要做类似的事来验证方案的可行性。至于要不要把整本书的课后题全部做一遍——我的看法是挑 “推导题” 和 “比较题” 做纯计算题用软件复现即可。推导题逼你理解公式来源比较题逼你理解方法之间的逻辑关系这恰恰是实战里做方案选型时最需要的能力。计算题让软件代劳节省出来的时间用来做模拟验证。这套学习路径我自己走过确实比单纯对着答案改错效率高。希望帮到你。本文还有配套的精品资源点击获取