计算统计
2026-09-11
引言
统计学的许多核心对象都由公式定义:估计量可能是某个方程的解,极大似然估计是目标函数的最大点,分布、概率和期望往往由求和或积分给出。公式说明需要计算什么,却未必告诉我们怎样在有限精度、有限时间和有限存储条件下可靠地得到结果。计算统计研究的正是这一步。
本书面向统计学、经济统计学及相关专业本科生,也可供希望系统理解统计软件内部计算过程的研究生和数据分析人员使用。全书以 R 为主要计算语言,把数值方法、随机模拟和统计建模放在同一条学习路径中:不仅介绍算法怎样运行,也说明算法为什么这样构造、可能在哪里失败,以及应当用什么证据核对结果。
本书的初始材料来自康雁飞老师在北京航空航天大学经济管理学院讲授的《统计计算》(2019 年春)、《贝叶斯统计》(2019 年秋)和《贝叶斯统计与计算》(2020 年春至今)等本科课程。经过重新组织后,本书不以某一门课程的讲义为边界,而是围绕“统计目标怎样变成可靠计算”展开。
学习基础与使用方式
读者最好已经学习过微积分、线性代数、概率论和数理统计,并接触过回归模型。书中不要求预先掌握复杂的软件开发知识;第 2 章会介绍后续计算所需的 R 基础。正文中的矩阵推导用于说明算法结构,代码用于把推导落实为可运行步骤,诊断与练习则用于判断结果是否可信。三者应当结合阅读。
建议读者亲自运行示例,再改变样本量、初值、容差、变量尺度或随机种子,观察哪些结果改变、为什么改变。只抄录函数输出,很难形成计算统计所需要的判断能力。涉及随机模拟的例子均应记录种子;涉及计时的结论只在给定硬件、软件版本和问题规模下解释。
本书结构
全书分为五个部分。第一部分建立 R、浮点数、误差和稳定性的基础;第二部分讨论矩阵分解、求根、优化、数值积分和 EM 等确定性方法;第三部分介绍随机数生成、Monte Carlo 和重采样;第四部分把前述方法用于线性模型、广义线性模型、模型评价和正则化;第五部分讨论贝叶斯建模及其计算,包括后验近似、MCMC、贝叶斯回归、模型比较和后验预测。
这些部分不是相互独立的专题。矩阵分解会进入回归和高斯模型,优化方法会进入极大似然、EM 和后验众数计算,随机模拟会进入积分、重采样和 MCMC。各部分之间的依赖关系及建议学习次序见第1.9 节。
记号、代码与资料
除非另有说明,正文用普通斜体字母表示标量,用小写粗体拉丁字母或粗体希腊字母表示列向量,如\(\mathbf x\)、\(\mathbf y\) 和 \(\boldsymbol\theta\),用大写粗体字母表示矩阵,如 \(\mathbf X\);向量和矩阵的分量不加粗。转置写作\(\mathbf X^\top\),二范数写作 \(\lVert\mathbf x\rVert_2\),零向量、全 1 向量与单位矩阵分别写作\(\mathbf 0\)、\(\mathbf 1\) 和 \(\mathbf I\),事件 \(A\) 的指标函数写作 \(\mathbb I\{A\}\)。需要区分随机变量(或随机向量)及其观测值时,分别使用大写与小写字母,如 \(Y_i\) 与 \(y_i\)、\(\mathbf Y\) 与 \(\mathbf y\)。
标量估计量用帽号,如 \(\hat\theta\);向量估计量用宽帽号,如\(\widehat{\boldsymbol\beta}\)。参数或向量的第 \(t\) 次迭代通常用上标 \((t)\),数值算法按惯例也会用下标 \(k\) 表示迭代序号,但同一算法内不混用。第 \(s\) 个模拟样本用上标 \((s)\);MCMC 的候选值写作\(x^\ast\),第 \(b\) 个 Bootstrap 或置换重复写作上标 \(\ast(b)\)。贝叶斯章节用\(\mathbf y^{\mathrm{rep}}\) 表示在原协变量处生成的复制数据,用 \(\widetilde y\) 或\(\widetilde{\mathbf y}\) 表示未来观测。期望、方差和协方差分别写作 \(\operatorname{E}\)、\(\operatorname{Var}\) 和 \(\operatorname{Cov}\),概率写作 \(P\)。一元正态分布写作 \(N(\mu,\sigma^2)\),\(d\) 维正态分布写作 \(N_d(\boldsymbol\mu,\boldsymbol\Sigma)\),均匀分布写作\(\operatorname{Unif}(a,b)\);标准正态密度和分布函数分别记为 \(\phi\) 与 \(\Phi\),带参数的\(\phi(y;\mu,\sigma^2)\) 表示相应的一元正态密度。其他具名分布也用直立字体。独立同分布与相互独立分别标作\(\overset{\mathrm{iid}}{\sim}\) 和 \(\overset{\mathrm{ind}}{\sim}\)。各章仍会在首次出现时说明局部使用的特殊记号。
涉及随机计算时,\(n\) 通常表示观测数,\(N\) 表示独立 Monte Carlo 模拟次数,\(M\) 表示 MCMC 正式样本数,\(B\) 表示重采样或置换次数,\(S\) 表示直接后验模拟或重要性抽样次数;若某章另有用途,会在当地重新说明。
R 代码尽量只依赖常用软件包,并保留生成结果所需的随机种子、数据处理和诊断步骤。书中案例的目的首先是说明计算方法,不把观察性关联直接解释为因果关系,也不把样本内拟合自动视为样本外预测能力。
阅读时若只需要概念,可先阅读每章的推导、例子解释和小结;若用于完整课程,建议按目录顺序学习并完成上机实验。每章末尾的思考题侧重原理与判断,上机实验侧重实现、核对和报告。