量化交易中文教材

第 19c 章 多预测变量回归的矩阵推导:MSPE、岭回归与主成分(附书末附表)

学习目标

读完本章,你应当能够:

  1. 推导样本外均方预测误差 \(MSPE=\sigma_u^2+\mathrm{tr}\{E[(\hat{\boldsymbol\beta}-\boldsymbol\beta)(\hat{\boldsymbol\beta}-\boldsymbol\beta)']\mathbf Q_X\}\),以及 OLS 的近似 \(MSPE_{OLS}\approx(1+k/n)\sigma_u^2\),并把它与最终预测误差(FPE)联系起来。
  2. 推导岭回归的闭式解 \((\mathbf X'\mathbf X+\lambda\mathbf I)^{-1}\mathbf X'\mathbf Y\),说明它在正交回归元下就是向零收缩,以及它为什么依赖变量的尺度。
  3. 用拉格朗日乘子推导主成分:权重是 \(\mathbf X'\mathbf X\) 的特征向量,方差是特征值,主成分方差之和等于各变量方差之和。
  4. 正确地做主成分回归的样本外预测:沿用估计样本的特征向量。
  5. 会查原书书末的正态、t、卡方、F 分布表与大样本临界值速查表。

读前导读

这一章在解决什么问题。 第 14 章告诉你三个结论:预测变量太多时 OLS 样本外表现差;岭回归通过收缩改善它;主成分把大量变量压缩成几个。本章补上这三个结论背后的推导。第一个推导把「过拟合」变成一个数:每多一个预测变量,样本外均方误差大约多出 \(\sigma^2/n\)。你在回测里见过「样本内 \(R^2\) 很高、样本外一塌糊涂」,这里给出了它的定量版本。第二个推导说明岭回归就是在 OLS 的 \(\mathbf X'\mathbf X\) 上加一个 \(\lambda\mathbf I\),这和协方差矩阵收缩(如 Ledoit–Wolf,给样本协方差加一点对角阵)是同一个技巧。第三个推导说明主成分就是 \(\mathbf X'\mathbf X\) 的特征向量,这是统计风险模型、收益率曲线水平/斜率/曲率分解的数学来源。

需要先想起来的数学。

  • 迹与迹的循环性。迹 \(\mathrm{tr}(\mathbf A)\) 是方阵对角元之和。关键技巧:一个标量(\(1\times1\) 矩阵)等于它自己的迹,且 \(\mathrm{tr}(\mathbf A\mathbf B)=\mathrm{tr}(\mathbf B\mathbf A)\)。例:\(\mathbf a'\mathbf B\mathbf a\) 是标量,\(=\mathrm{tr}(\mathbf a'\mathbf B\mathbf a)=\mathrm{tr}(\mathbf B\mathbf a\mathbf a')\)。这一招把「二次型的期望」变成「矩阵期望的迹」,MSPE 推导全靠它。见 第 00 册第 06 章 线性代数速成。
  • 特征值与特征向量、谱分解。对称矩阵 \(\mathbf S\) 可分解为 \(\mathbf S=\mathbf W\boldsymbol\Lambda\mathbf W'\),\(\mathbf W\) 的列是两两正交的单位特征向量,\(\boldsymbol\Lambda\) 是特征值对角阵。直观上:换到特征向量构成的坐标系,\(\mathbf S\) 就变成对角阵,各方向互不干扰。例:\(\mathbf S=\begin{pmatrix}2&1\\1&2\end{pmatrix}\) 的特征值为 3 和 1,特征向量为 \((1,1)/\sqrt2\) 和 \((1,-1)/\sqrt2\)。见 第 00 册第 06 章。
  • 对向量求导。\(\frac{\partial}{\partial\mathbf b}\mathbf b'\mathbf b=2\mathbf b\),\(\frac{\partial}{\partial\mathbf b}\mathbf b'\mathbf S\mathbf b=2\mathbf S\mathbf b\)(\(\mathbf S\) 对称),是一元 \(\frac{d}{db}sb^2=2sb\) 的推广。见 第 00 册第 05 章 多元微积分与优化。
  • 拉格朗日乘子。在约束 \(g(\mathbf w)=0\) 下求 \(f(\mathbf w)\) 的极值:构造 \(f-\lambda g\),对 \(\mathbf w\) 求导令其为零。\(\lambda\) 是约束的「影子价格」,在主成分里它恰好就是特征值(方差)。CFA 里最小方差组合在「权重和为 1」约束下的求解用的就是它。见 第 00 册第 05 章。

怎么读这一章。 核心必读:1.2 节的 (19.97) 及解读、2.1–2.3 节(岭回归的推导与「必须先标准化」)、3.1 节 \(j=1\) 的推导、3.3 节的样本外预测。可以第一次只看结论的:3.1 节 \(j=2\) 的推导(理解思路即可:再加一个正交约束,结论是取第二大特征值)、2.3 节尺度依赖的矩阵推导(记住结论和「元换成分」的例子)。第四部分统计表当作工具查阅,不必通读。


19.7.0 本章的定位

原书附录 19.7 为第 14 章「用多个预测变量做预测」提供依赖矩阵运算的推导。第 14 章(本册第 14 章)给出了结论:预测变量多时 OLS 过拟合;岭回归、Lasso 通过收缩改善样本外表现;主成分把大量预测变量压缩成少数几个。本章补上三个关键推导,并顺带介绍书末的统计附表。17d 章的动态因子模型、第 06 册第 09 章的主成分与因子模型都以这里的主成分推导为数学基础;特征值、特征向量与 Rayleigh 商的一般理论见第 01 册(第 01 章与第 04a 章)。


一、OLS 的样本外均方预测误差

1.1 一般公式

设预测模型为 \(Y=\mathbf X'\boldsymbol\beta+u\),没有截距(或已经把变量去均值),\(\mathbf X\) 是 \(k\times1\)。\(\mathbf X^{oos}\) 是待预测的样本外观测的预测变量,\(Y^{oos}=\mathbf X^{oos\prime}\boldsymbol\beta+u^{oos}\)。用任意估计量 \(\hat{\boldsymbol\beta}\) 做预测 \(\hat Y^{oos}=\mathbf X^{oos\prime}\hat{\boldsymbol\beta}\),预测误差为 \(u^{oos}-(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mathbf X^{oos}\)。若 \(u^{oos}\) 与估计样本独立、与 \(\mathbf X^{oos}\) 不相关,则交叉项期望为零:

\[MSPE=\sigma_u^2+E[(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mathbf X^{oos}]^2.\tag{19.94}\]
第一项是不可避免的噪声,第二项是估计误差造成的额外损失。

推导拆解:(19.94) 的展开。预测误差 \(=Y^{oos}-\hat Y^{oos}=u^{oos}-(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mathbf X^{oos}\),记作 \(a-b\)。 平方取期望:\(E(a-b)^2=E(a^2)-2E(ab)+E(b^2)\)。 \(E(a^2)=\sigma_u^2\)。交叉项 \(E(ab)=E[u^{oos}(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mathbf X^{oos}]\):\(u^{oos}\) 与估计样本独立(因而与 \(\hat{\boldsymbol\beta}\) 独立),且与 \(\mathbf X^{oos}\) 不相关、均值为零,所以为零。剩下的 \(E(b^2)\) 就是第二项。

在预测的最小二乘假设下,样本外观测与估计样本独立同分布。利用 \(\mathbf a'\mathbf B\mathbf a=\mathrm{tr}(\mathbf B\mathbf a\mathbf a')\)(附录 19.1 的迹性质)和 \(E(\mathbf X^{oos}\mathbf X^{oos\prime})=\mathbf Q_X\),以及 \(\hat{\boldsymbol\beta}\) 与 \(\mathbf X^{oos}\) 独立:

\[E[(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mathbf X^{oos}]^2=E\,\mathrm{tr}[(\hat{\boldsymbol\beta}-\boldsymbol\beta)(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mathbf X^{oos}\mathbf X^{oos\prime}],\]
所以
\[MSPE=\sigma_u^2+\mathrm{tr}\{E[(\hat{\boldsymbol\beta}-\boldsymbol\beta)(\hat{\boldsymbol\beta}-\boldsymbol\beta)']\mathbf Q_X\}.\tag{19.95}\]
这个公式对任何估计量都成立:额外损失是估计量的均方误差矩阵(含偏差和方差)用 \(\mathbf Q_X\) 加权后的迹。收缩估计量引入偏差、减小方差,就是想让这一项变小。

推导拆解:从 (19.94) 的第二项到 (19.95),记 \(\mathbf e=\hat{\boldsymbol\beta}-\boldsymbol\beta\),\(\mathbf x=\mathbf X^{oos}\)。 第一步,\((\mathbf e'\mathbf x)^2=\mathbf e'\mathbf x\,\mathbf x'\mathbf e\)(标量的平方 = 标量乘它的转置)。 第二步,标量等于自己的迹,再用循环性:\(\mathrm{tr}(\mathbf e'\mathbf x\mathbf x'\mathbf e)=\mathrm{tr}(\mathbf e\mathbf e'\mathbf x\mathbf x')\)。 第三步,期望与迹交换(迹是线性的):\(E\,\mathrm{tr}(\cdot)=\mathrm{tr}\,E(\mathbf e\mathbf e'\mathbf x\mathbf x')\)。 第四步,\(\mathbf e\) 只依赖估计样本,\(\mathbf x\) 是独立的新观测,独立变量乘积的期望 = 期望的乘积:\(E(\mathbf e\mathbf e'\mathbf x\mathbf x')=E(\mathbf e\mathbf e')E(\mathbf x\mathbf x')=E(\mathbf e\mathbf e')\mathbf Q_X\)。练习 6 问的「独立性用在哪里」就是这一步。 \(E(\mathbf e\mathbf e')\) 叫均方误差矩阵,它 = 协方差矩阵 + 偏差向量的外积,所以偏差和方差都在里面。

1.2 OLS 的情形

同方差下,OLS 无偏,\(E[(\hat{\boldsymbol\beta}-\boldsymbol\beta)(\hat{\boldsymbol\beta}-\boldsymbol\beta)'\mid\mathbf X]=(\mathbf X'\mathbf X)^{-1}\sigma_u^2\),所以

\[MSPE_{OLS}=\sigma_u^2+\frac1n\mathrm{tr}\left\{E\left[\left(\frac{\mathbf X'\mathbf X}{n}\right)^{-1}\right]\mathbf Q_X\right\}\sigma_u^2.\tag{19.96}\]
\(n\) 相对 \(k\) 很大时,\(\mathbf X'\mathbf X/n\approx\mathbf Q_X\),迹 \(\approx\mathrm{tr}(\mathbf I_k)=k\):
\[MSPE_{OLS}\approx\left(1+\frac kn\right)\sigma_u^2.\tag{19.97}\]

推导拆解:(19.96) 到 (19.97)。\((\mathbf X'\mathbf X)^{-1}\sigma_u^2=\frac1n(\mathbf X'\mathbf X/n)^{-1}\sigma_u^2\),代入 (19.95) 得 (19.96)。\(n\) 大时 \(\mathbf X'\mathbf X/n\approx\mathbf Q_X\),迹里变成 \(\mathbf Q_X^{-1}\mathbf Q_X=\mathbf I_k\),而 \(k\) 阶单位阵的迹是 \(k\)。 金融直觉:拿一个数字感受一下。月度收益的可预测部分 \(R^2\) 通常只有 1%–2%,即「信号方差」约为 \(0.01\sigma^2\)–\(0.02\sigma^2\)。用 120 个月、12 个预测变量做 OLS,估计误差带来的额外损失约 \(0.1\sigma^2\),是信号本身的 5–10 倍。这就是为什么多变量收益预测在样本外常常输给「预测为零」(练习 1)。

解读:每多一个预测变量,样本外 MSPE 约增加 \(\sigma_u^2/n\)。这是过拟合成本最直接的度量。当 \(k/n\) 不小时(比如 \(n=250\)、\(k=50\)),近似会低估真实损失:对高斯回归元,\(E[(\mathbf X'\mathbf X)^{-1}]=\mathbf Q_X^{-1}/(n-k-1)\),精确值是 \((1+\frac{k}{n-k-1})\sigma_u^2\),随 \(k\) 接近 \(n\) 急剧上升。本章示例会验证这两个公式。

与最终预测误差 FPE 的联系。(19.97) 正是第 15 章(本册第 15a 章)时间序列最终预测误差 (15.21) 的来源:把 \(n\) 换成 \(T\)、\(k\) 换成 \(p+1\)(AR(\(p\)) 的系数个数)。区别在于:截面中样本内外独立;时间序列中,用于样本外预测的末尾观测与样本内观测相关。但样本大时,估计系数与样本外预测变量之间的依赖很小,(19.97) 仍近似成立。


二、岭回归

2.1 闭式解

岭回归(ridge regression)最小化带惩罚的残差平方和:

\[S^{Ridge}(\mathbf b;\lambda^{Ridge})=(\mathbf Y-\mathbf X\mathbf b)'(\mathbf Y-\mathbf X\mathbf b)+\lambda^{Ridge}\mathbf b'\mathbf b.\tag{19.98}\]
对 \(\mathbf b\) 求导,一阶条件为 \(-2\mathbf X'(\mathbf Y-\mathbf X\hat{\boldsymbol\beta}^{Ridge})+2\lambda^{Ridge}\hat{\boldsymbol\beta}^{Ridge}=\mathbf 0\),解得
\[\hat{\boldsymbol\beta}^{Ridge}=(\mathbf X'\mathbf X+\lambda^{Ridge}\mathbf I_k)^{-1}\mathbf X'\mathbf Y.\tag{19.99}\]
只要 \(\lambda>0\),\(\mathbf X'\mathbf X+\lambda\mathbf I\) 就正定可逆,即使 \(k>n\) 或回归元完全共线也有唯一解。这是岭回归在高维中的数值优势。

推导拆解:(19.98) 的求导。展开第一项 \((\mathbf Y-\mathbf X\mathbf b)'(\mathbf Y-\mathbf X\mathbf b)\),对 \(\mathbf b\) 求导得 \(-2\mathbf X'(\mathbf Y-\mathbf X\mathbf b)\)(和 19a 章 OLS 的正规方程相同);惩罚项 \(\lambda\mathbf b'\mathbf b=\lambda\sum b_j^2\) 对每个 \(b_j\) 的导数是 \(2\lambda b_j\),合起来是 \(2\lambda\mathbf b\)。令梯度为零:\(\mathbf X'\mathbf X\mathbf b+\lambda\mathbf b=\mathbf X'\mathbf Y\),把 \(\lambda\mathbf b\) 写成 \(\lambda\mathbf I\mathbf b\) 后合并同类项,得 \((\mathbf X'\mathbf X+\lambda\mathbf I)\mathbf b=\mathbf X'\mathbf Y\)。 为什么一定可逆:对任意非零 \(\mathbf c\),\(\mathbf c'(\mathbf X'\mathbf X+\lambda\mathbf I)\mathbf c=\|\mathbf X\mathbf c\|^2+\lambda\|\mathbf c\|^2>0\),第二项严格为正。

2.2 推论一:正交回归元下的收缩

若回归元在样本中互不相关,\(\mathbf X'\mathbf X\) 是对角阵,(19.99) 逐个分量求解:

\[\hat\beta_j^{Ridge}=\left(1+\frac{\lambda^{Ridge}}{\sum_iX_{ji}^2}\right)^{-1}\hat\beta_j,\]
即把 OLS 估计值按比例向 0 收缩(第 14 章式 14.8)。若回归元已用样本标准差标准化,\(\sum_iX_{ji}^2=n-1\),所有系数的收缩因子相同,为 \([1+\lambda^{Ridge}/(n-1)]^{-1}\)。

一般(非正交)情形下,用 \(\mathbf X'\mathbf X=\mathbf W\boldsymbol\Lambda\mathbf W'\) 的谱分解可以看到:岭回归在第 \(j\) 个主成分方向上的收缩因子是 \(\lambda_j/(\lambda_j+\lambda^{Ridge})\)。方差小(特征值小)的方向收缩得最狠,而这些方向正是 OLS 估计最不稳定的方向。这把岭回归与下一节的主成分回归联系起来:主成分回归对小特征值方向做「硬截断」(直接丢掉),岭回归做「软收缩」。

推导拆解(练习 7 的思路):把 \(\mathbf X'\mathbf X=\mathbf W\boldsymbol\Lambda\mathbf W'\) 代入,并利用 \(\mathbf W\mathbf W'=\mathbf I\) 把 \(\lambda^{Ridge}\mathbf I\) 写成 \(\mathbf W(\lambda^{Ridge}\mathbf I)\mathbf W'\): \(\mathbf X'\mathbf X+\lambda^{Ridge}\mathbf I=\mathbf W(\boldsymbol\Lambda+\lambda^{Ridge}\mathbf I)\mathbf W'\),其逆为 \(\mathbf W(\boldsymbol\Lambda+\lambda^{Ridge}\mathbf I)^{-1}\mathbf W'\)。 换到主成分坐标 \(\boldsymbol\theta=\mathbf W'\mathbf b\):岭回归给出 \(\theta_j^{Ridge}=\frac{1}{\lambda_j+\lambda^{Ridge}}(\mathbf W'\mathbf X'\mathbf Y)_j\),OLS 给出 \(\theta_j^{OLS}=\frac1{\lambda_j}(\mathbf W'\mathbf X'\mathbf Y)_j\)。二者之比就是 \(\frac{\lambda_j}{\lambda_j+\lambda^{Ridge}}\)。 数值例:\(\lambda^{Ridge}=10\)。大特征值 \(\lambda_1=500\) 的方向保留 \(500/510\approx98\%\);小特征值 \(\lambda_k=5\) 的方向只保留 \(5/15=33\%\)。

2.3 推论二:岭回归依赖变量的尺度

OLS 的预测不受预测变量线性变换的影响;岭回归不同。用 \(\mathbf X\mathbf A\)(\(\mathbf A\) 为 \(k\times k\) 非奇异矩阵)代替 \(\mathbf X\):

\[\hat{\boldsymbol\beta}^{Ridge}_A=\mathbf A^{-1}[\mathbf X'\mathbf X+\lambda(\mathbf A\mathbf A')^{-1}]^{-1}\mathbf X'\mathbf Y,\]
对应的样本外预测(样本外预测变量也变换为 \(\mathbf A'\mathbf X^{OOS}\))为
\[\hat Y^{OOS}_A=\mathbf X^{OOS\prime}[\mathbf X'\mathbf X+\lambda(\mathbf A\mathbf A')^{-1}]^{-1}\mathbf X'\mathbf Y,\]
而原始预测是 \(\mathbf X^{OOS\prime}(\mathbf X'\mathbf X+\lambda\mathbf I_k)^{-1}\mathbf X'\mathbf Y\)。二者只有当 \(\mathbf A\) 正交(\(\mathbf A\mathbf A'=\mathbf I_k\))时才相同。\(\lambda=0\)(OLS)时与 \(\mathbf A\) 无关。

推导要点:\((\mathbf X\mathbf A)'(\mathbf X\mathbf A)+\lambda\mathbf I=\mathbf A'[\mathbf X'\mathbf X+\lambda(\mathbf A')^{-1}\mathbf A^{-1}]\mathbf A\),求逆后左右两端的 \(\mathbf A\) 与预测中的 \(\mathbf A'\)、\(\mathbf X'\mathbf Y\) 前的 \(\mathbf A'\) 相消。

实践含义:岭回归的结果依赖变量的单位和组合方式,所以必须先标准化(且标准化参数只能用估计样本计算)。把价格从「元」换成「分」,岭回归的预测就会变;OLS 不会。


三、主成分分析

3.1 定义与推导

第 14 章 Key Concept 14.2 定义第 \(j\) 个主成分为 \(\mathbf X\) 列的线性组合,满足:(a) 权重平方和为 1;(b) 与前 \(j-1\) 个主成分不相关;(c) 在 (a)(b) 约束下方差最大。设 \(\mathbf X\) 已标准化、均值为零,\(PC_j=\mathbf X\mathbf W_j\)(\(n\times1\)),\(PC_j'PC_j/(n-1)\) 是它的样本方差。问题是

\[\max_{\mathbf W_j}\ PC_j'PC_j=\mathbf W_j'\mathbf X'\mathbf X\mathbf W_j\quad\text{s.t. }\mathbf W_j'\mathbf W_j=1,\ PC_j'PC_i=0\ (i<j).\tag{19.100}\]

\(j=1\):拉格朗日函数 \(\mathbf W_1'\mathbf X'\mathbf X\mathbf W_1-\lambda_1(\mathbf W_1'\mathbf W_1-1)\),一阶条件

\[\mathbf X'\mathbf X\mathbf W_1=\lambda_1\mathbf W_1,\tag{19.101}\]
所以 \(\mathbf W_1\) 是 \(\mathbf X'\mathbf X\) 的特征向量,\(\lambda_1\) 是对应的特征值。左乘 \(\mathbf W_1'\) 得 \(PC_1'PC_1=\mathbf W_1'\mathbf X'\mathbf X\mathbf W_1=\lambda_1\)。要方差最大,取最大特征值对应的单位特征向量。

推导拆解:对拉格朗日函数求导,用导读里的规则:\(\frac{\partial}{\partial\mathbf W_1}\mathbf W_1'\mathbf X'\mathbf X\mathbf W_1=2\mathbf X'\mathbf X\mathbf W_1\),\(\frac{\partial}{\partial\mathbf W_1}\lambda_1\mathbf W_1'\mathbf W_1=2\lambda_1\mathbf W_1\)。令差为零,约去 2,即 (19.101)。 金融直觉:这就是「在权重平方和为 1 的约束下,找方差最大的组合」。与最小方差组合问题结构相同,只是方向相反(求最大而非最小),约束也不同(平方和为 1 而非权重和为 1)。所以第一主成分就是数据中「波动最大的那个组合」,在股票收益上它通常接近市场组合。拉格朗日乘子 \(\lambda_1\) 恰好就是这个最大方差(乘以 \(n-1\))。

\(j=2\):拉格朗日函数再加约束项 \(-\gamma_{21}\mathbf W_2'\mathbf X'\mathbf X\mathbf W_1\)(\(PC_2'PC_1=0\)),一阶条件

\[\mathbf X'\mathbf X\mathbf W_2=\lambda_2\mathbf W_2+\tfrac12\gamma_{21}\mathbf X'\mathbf X\mathbf W_1.\tag{19.102}\]
先由 (19.101) 左乘 \(\mathbf W_2'\):\(\mathbf W_2'\mathbf X'\mathbf X\mathbf W_1=\lambda_1\mathbf W_2'\mathbf W_1\),而左边由约束为 0,故 \(\mathbf W_2'\mathbf W_1=0\)。再对 (19.102) 左乘 \(\mathbf W_1'\):左边 \(=\mathbf W_1'\mathbf X'\mathbf X\mathbf W_2=0\),右边 \(=\lambda_2\cdot0+\frac12\gamma_{21}\lambda_1\),所以 \(\gamma_{21}=0\)。于是 \(\mathbf X'\mathbf X\mathbf W_2=\lambda_2\mathbf W_2\),\(\mathbf W_2\) 是第二大特征值的特征向量,\(PC_2'PC_2=\lambda_2\)。

一般地:\(\mathbf W_j\) 是 \(\mathbf X'\mathbf X\) 第 \(j\) 大特征值 \(\lambda_j\) 的单位特征向量,\(PC_j'PC_j=\lambda_j\),\(PC_j'PC_i=0\)。\(k<n\) 时 \(\mathbf X'\mathbf X\) 有 \(k\) 个非零特征值(满秩时);一般主成分的个数是 \(\min(n,k)\)。

这就是第 01 册第 04a 章中对称矩阵的 Rayleigh 商极值原理(Courant–Fischer)在统计中的直接应用。

3.2 方差守恒与碎石图

由「迹等于特征值之和」,

\[\mathrm{tr}(\mathbf X'\mathbf X)=\sum_{j=1}^{\min(n,k)}\lambda_j=\sum_{j=1}^{\min(n,k)}PC_j'PC_j.\tag{19.103}\]
两边除以 \(n-1\) 即得第 14 章的 (14.10):主成分的方差之和等于各 \(X\) 的方差之和。标准化后每个 \(X\) 方差为 1,总方差就是 \(k\),第 \(j\) 个主成分解释的比例是 \(\lambda_j/\sum\lambda_i\)。碎石图画的就是这个比例(17d 章)。

白话解释:主成分只是把坐标轴「旋转」了,没有创造也没有丢失任何方差,就像把一个组合的风险从「按资产」重新拆成「按因子」,总风险不变。\(\mathrm{tr}(\mathbf X'\mathbf X)\) 的对角元是每个变量的平方和(即 \((n-1)\times\) 方差),所以左边是「按原变量算的总方差」;右边是「按主成分算的总方差」。 第二个等号为什么成立:\(\mathrm{tr}(\mathbf X'\mathbf X)=\mathrm{tr}(\mathbf W\boldsymbol\Lambda\mathbf W')=\mathrm{tr}(\boldsymbol\Lambda\mathbf W'\mathbf W)=\mathrm{tr}(\boldsymbol\Lambda)=\sum\lambda_j\),用的又是迹的循环性和 \(\mathbf W'\mathbf W=\mathbf I\)。

3.3 样本外预测

前 \(r\) 个样本外主成分为 \(PC^{OOS}_{1:r}=\mathbf W_{1:r}'\mathbf X^{OOS}\),其中 \(\mathbf W_{1:r}\) 是估计样本中 \(\mathbf X'\mathbf X\) 的前 \(r\) 个特征向量。设 \(\hat{\boldsymbol\gamma}\) 是 \(Y\) 对前 \(r\) 个主成分的 OLS 系数,则

\[\hat Y^{OOS}=\hat{\boldsymbol\gamma}'\mathbf W_{1:r}'\mathbf X^{OOS}.\tag{19.104}\]
(原书表 14.4 的主成分预测就是这样做的。)这里 \(\mathbf X^{OOS}\) 也要用估计样本的均值和标准差标准化。用样本外数据重新算特征向量,或用全样本统计量标准化,都会破坏预测的一致性或引入前视偏差。17d 章对此有详细讨论。

由于 \(PC\) 之间正交,\(\hat{\boldsymbol\gamma}\) 的各分量就是 \(Y\) 对每个主成分单独回归的系数,\(\hat\gamma_j=PC_j'\mathbf Y/\lambda_j\)。主成分回归等价于在原变量上的系数 \(\hat{\boldsymbol\beta}^{PC}=\mathbf W_{1:r}\hat{\boldsymbol\gamma}\)。


四、书末统计附表与速查

原书书末提供以下内容,做大样本推断时常用。

表 1 标准正态累积分布函数 \(\Phi(z)=\Pr(Z\le z)\)(PDF p.764–765)。行为 \(z\) 的整数位与第一位小数(\(-2.9\) 到 \(2.9\)),列为第二位小数。例:\(z=1.17\) 查 1.1 行、7 列得 0.8790;\(\Phi(-2.0)=0.0228\),\(\Phi(-1.5)=0.0668\)。

表 2 Student t 分布临界值(PDF p.766)。自由度 1–30、60、90、120、\(\infty\);列为双侧 20%/10%/5%/2%/1%(对应单侧 10%/5%/2.5%/1%/0.5%)。

自由度 双侧 20% 10% 5% 2% 1%
1 3.08 6.31 12.71 31.82 63.66
15 — — 2.13 — —
30 1.31 1.70 2.04 2.46 2.75
\(\infty\) 1.28 1.64 1.96 2.33 2.58

表 3 卡方分布临界值(PDF p.767)。自由度 1–30 的 90%/95%/99% 分位数:

自由度 90% 95% 99%
1 2.71 3.84 6.63
2 4.61 5.99 9.21
5 9.24 11.07 15.09
10 15.99 18.31 23.21
30 40.26 43.77 50.89

表 4 \(F_{m,\infty}\) 临界值(PDF p.768,同封底内页)。即 \(\chi^2_m/m\) 的分位数,用于大样本联合检验:

\(m\) 10% 5% 1%
1 2.71 3.84 6.63
2 2.30 3.00 4.61
3 2.08 2.60 3.78
4 1.94 2.37 3.32
5 1.85 2.21 3.02
10 1.60 1.83 2.32
30 1.34 1.46 1.70

表 5A/5B/5C \(F_{n_1,n_2}\) 临界值(PDF p.769–771)。分别为 10%、5%、1% 显著性水平;分子自由度 \(n_1=1\)–10,分母自由度 \(n_2\) 从 1 到 \(\infty\)。例(10%):\(F_{1,1}=39.86\),\(F_{2,10}=2.92\),\(F_{1,20}=2.97\)。

封底内页:大样本 t 临界值(PDF p.799–800)。双侧检验 10%/5%/1% 为 1.64/1.96/2.58;单侧右尾 1.28/1.64/2.33;单侧左尾 \(-1.28/-1.64/-2.33\)。

其他书末内容:参考文献(PDF p.772–775),按作者字母序列出全书文献,涵盖因果推断、时间序列与金融计量(Engle 1982、Bollerslev 1986、Engle & Granger 1987、Hansen 1982、Bai & Ng 2002 等)、稳健标准误(Eicker、Huber、White)、收缩估计与机器学习应用;术语表(PDF p.776–784),全书术语的英文定义;索引(PDF p.786–798),页码为印刷页码(= PDF 页码 − 1)。

量化提醒:这些临界值都针对单次检验。挖掘大量因子时(数百上千次检验),单一的 1.96 门槛远远不够,应使用 Bonferroni 调整(原书术语表收录了 Bonferroni 检验)、控制错误发现率,或采用更高的 t 门槛(如 3.0)。\(F_{m,\infty}\) 表适合大样本下多个因子的联合显著性检验。


量化实战

1. 本章内容在量化中的用途

过拟合成本的定量直觉。 \(MSPE\approx(1+k/n)\sigma^2\) 告诉你:用 5 年月度数据(\(n=60\))拟合 10 个因子的收益预测模型,仅估计误差就让样本外 MSPE 增加约 17%,而收益预测的真实 \(R^2\) 往往只有 1%–2%。这解释了为什么高维收益预测几乎必须用收缩或降维。

收缩估计。 岭回归用于因子收益预测、组合权重估计(对协方差矩阵加 \(\lambda\mathbf I\) 正则化与岭回归同构)、多信号合成。「必须先标准化」直接对应工程实践:因子暴露要截面标准化,标准化参数只能用当时可得的数据。

主成分的数学基础。 统计风险模型、协方差降维、收益率曲线的水平/斜率/曲率、宏观因子构造,都是本章 3.1 节的特征分解。小特征值方向的估计最不稳定,这也是组合优化中「误差最大化」现象的根源:\(\boldsymbol\Sigma^{-1}\) 放大了小特征值方向,样本协方差的逆在这些方向上噪声极大。

样本外必须用估计样本的特征向量(19.104),否则引入前视偏差。

2. 示例:验证 MSPE 公式、岭回归的尺度依赖与主成分的性质

import numpy as np
from sklearn.linear_model import Ridge
rng = np.random.default_rng(99)

# (1) MSPE_OLS ≈ (1 + k/n) sigma^2
n, sigma, nsim = 250, 1.0, 4000
for k in [5, 25, 50, 100]:
    loss = []
    for _ in range(nsim):
        X = rng.standard_normal((n, k)); beta = rng.standard_normal(k) * 0.05
        y = X @ beta + sigma * rng.standard_normal(n)
        b = np.linalg.lstsq(X, y, rcond=None)[0]
        xo = rng.standard_normal(k)
        loss.append((xo @ beta + sigma * rng.standard_normal() - xo @ b) ** 2)
    print(f"k={k:3d}: 模拟 MSPE={np.mean(loss):.3f}, (1+k/n)={1+k/n:.3f}, 高斯回归元下精确值 1+k/(n-k-1)={1+k/(n-k-1):.3f}")

# (2) 岭回归闭式解与尺度依赖
X = rng.standard_normal((100, 5)); y = X @ np.array([1, 0.5, 0, 0, -0.5]) + rng.standard_normal(100)
lam = 20.0
b_closed = np.linalg.solve(X.T @ X + lam * np.eye(5), X.T @ y)
b_sk = Ridge(alpha=lam, fit_intercept=False).fit(X, y).coef_
print("岭回归闭式解与 sklearn 一致:", np.allclose(b_closed, b_sk))
A = np.diag([100, 1, 1, 1, 1.0])          # 把第一个变量的单位从"元"换成"分"
xo = rng.standard_normal(5)
p_ridge = xo @ b_closed
p_ridge_A = (xo @ A) @ np.linalg.solve((X @ A).T @ (X @ A) + lam * np.eye(5), (X @ A).T @ y)
p_ols = xo @ np.linalg.lstsq(X, y, rcond=None)[0]
p_ols_A = (xo @ A) @ np.linalg.lstsq(X @ A, y, rcond=None)[0]
print(f"换单位前后预测: 岭 {p_ridge:.4f} -> {p_ridge_A:.4f};  OLS {p_ols:.4f} -> {p_ols_A:.4f}")

# (3) 主成分 = X'X 的特征向量;方差之和守恒
Xs = rng.standard_normal((300, 6)) @ rng.standard_normal((6, 6))
Xs = (Xs - Xs.mean(0)) / Xs.std(0, ddof=1)
evals, W = np.linalg.eigh(Xs.T @ Xs); evals, W = evals[::-1], W[:, ::-1]
PC = Xs @ W
print("PC 两两正交:", np.allclose(PC.T @ PC, np.diag(evals)),
      "; trace(X'X) =", round(np.trace(Xs.T @ Xs), 3), "= sum(lambda) =", round(evals.sum(), 3))

输出:

k=  5: 模拟 MSPE=1.011, (1+k/n)=1.020, 高斯回归元下精确值 1+k/(n-k-1)=1.020
k= 25: 模拟 MSPE=1.117, (1+k/n)=1.100, 高斯回归元下精确值 1+k/(n-k-1)=1.112
k= 50: 模拟 MSPE=1.242, (1+k/n)=1.200, 高斯回归元下精确值 1+k/(n-k-1)=1.251
k=100: 模拟 MSPE=1.617, (1+k/n)=1.400, 高斯回归元下精确值 1+k/(n-k-1)=1.671
岭回归闭式解与 sklearn 一致: True
换单位前后预测: 岭 -0.6361 -> -0.8185;  OLS -0.7915 -> -0.7915
PC 两两正交: True ; trace(X'X) = 1794.0 = sum(lambda) = 1794.0

解读:

  • \(k\) 小时 (19.97) 很准;\(k=100\)、\(n=250\) 时,模拟 MSPE 为 1.62,近似公式只给出 1.40,精确公式 1.67 更接近(模拟有抽样误差)。预测变量占样本量 40% 时,估计误差让样本外误差增加六成以上。
  • 岭回归闭式解与 sklearn 完全一致。把第一个变量乘以 100(相当于换单位),岭回归预测从 \(-0.636\) 变成 \(-0.819\),OLS 不变。原因是同样的 \(\lambda\) 对一个「数值放大 100 倍」的变量几乎不构成惩罚。
  • 主成分两两正交、平方和等于特征值,\(\mathrm{tr}(\mathbf X'\mathbf X)=\sum\lambda_j=6\times299=1794\)(6 个标准化变量,每个平方和为 \(n-1=299\))。

本章小结

样本外均方预测误差等于噪声方差加上估计误差的均方误差矩阵经 \(\mathbf Q_X\) 加权后的迹;对 OLS 约为 \((1+k/n)\sigma_u^2\),每多一个预测变量多付出约 \(\sigma_u^2/n\),这也是时间序列 FPE 的来源。岭回归在残差平方和上加 \(\lambda\mathbf b'\mathbf b\) 惩罚,闭式解为 \((\mathbf X'\mathbf X+\lambda\mathbf I)^{-1}\mathbf X'\mathbf Y\),正交回归元下就是按比例向零收缩,一般情形下对小特征值方向收缩最多;它不具备线性变换不变性,必须先标准化。主成分的权重是 \(\mathbf X'\mathbf X\) 按特征值从大到小排列的单位特征向量,方差等于特征值,主成分方差之和等于各变量方差之和;样本外预测必须沿用估计样本的特征向量与标准化参数。书末附表提供正态、t、卡方、F 分布的临界值,大样本推断最常用的是 \(\pm1.96\) 和 \(F_{m,\infty}\) 表,大规模因子挖掘时需要更严格的门槛。

概念 公式 / 要点
MSPE(一般) \(\sigma_u^2+\mathrm{tr}\{E[(\hat{\boldsymbol\beta}-\boldsymbol\beta)(\hat{\boldsymbol\beta}-\boldsymbol\beta)']\mathbf Q_X\}\)
MSPE(OLS) \(\approx(1+k/n)\sigma_u^2\);高斯回归元精确值 \((1+\frac{k}{n-k-1})\sigma_u^2\)
岭回归 \((\mathbf X'\mathbf X+\lambda\mathbf I)^{-1}\mathbf X'\mathbf Y\)
正交时的收缩 \(\hat\beta_j^{Ridge}=\hat\beta_j/(1+\lambda/\sum X_{ji}^2)\)
主成分方向收缩 岭:\(\lambda_j/(\lambda_j+\lambda)\);PCR:前 \(r\) 个为 1,其余为 0
主成分 \(\mathbf X'\mathbf X\mathbf W_j=\lambda_j\mathbf W_j\),\(PC_j'PC_j=\lambda_j\)
方差守恒 \(\mathrm{tr}(\mathbf X'\mathbf X)=\sum\lambda_j\)
样本外 PC 预测 \(\hat Y^{OOS}=\hat{\boldsymbol\gamma}'\mathbf W_{1:r}'\mathbf X^{OOS}\),\(\mathbf W\) 来自估计样本
大样本临界值 双侧 1.64/1.96/2.58;\(F_{1,\infty}\):2.71/3.84/6.63

练习

基础

  1. 用 (19.97) 估计:\(n=120\) 个月、\(k=12\) 个预测变量的 OLS 收益预测,样本外 MSPE 比噪声方差大多少?若真实可预测部分的方差只占收益方差的 2%,OLS 预测在样本外是否可能比「预测为零」更差? 答案要点:约大 10%;会更差,因为估计误差(约 \(0.1\sigma^2\))远大于可预测部分(\(0.02\) 倍收益方差)。
  2. 从 (19.98) 推导 (19.99)。
  3. 回归元已标准化、互不相关,\(n=101\),\(\lambda=50\)。岭回归的收缩因子是多少? 答案要点:\(1/(1+50/100)=2/3\)。
  4. 证明 \(\mathrm{tr}(\mathbf X'\mathbf X)=\sum_j\lambda_j\),并解释标准化后 \(k\) 个变量的「总方差」为什么是 \(k\)。
  5. 为什么查 t 表时自由度 \(\infty\) 一行就是正态分布的临界值?为什么 \(F_{1,\infty}\) 的 5% 临界值 3.84 等于 \(1.96^2\)? 提示:\(t_\infty=N(0,1)\);\(F_{1,\infty}=\chi^2_1=Z^2\)。

进阶

  1. 推导 (19.95) 中由 (19.94) 到迹形式的每一步,指出哪里用了「样本外观测与估计样本独立」。
  2. 推导岭回归在主成分方向上的收缩因子 \(\lambda_j/(\lambda_j+\lambda^{Ridge})\)。 提示:令 \(\mathbf X'\mathbf X=\mathbf W\boldsymbol\Lambda\mathbf W'\),在 \(\boldsymbol\theta=\mathbf W'\mathbf b\) 坐标下求解。
  3. 推导用 \(\mathbf X\mathbf A\) 代替 \(\mathbf X\) 时的岭回归预测公式,并证明 \(\mathbf A\) 正交时预测不变。
  4. 对第 \(j=3\) 个主成分重复 (19.102) 的论证,证明 \(\mathbf W_3\) 是第三大特征值的特征向量。
  5. 在示例 (1) 中加入岭回归(\(\lambda\) 用估计样本内的 5 折交叉验证选择),比较 \(k=100\) 时岭回归与 OLS 的样本外 MSPE。真实系数很小(\(0.05\) 量级)这一设定对结果有什么影响? 提示:真实信号弱时岭回归大幅优于 OLS,表现接近甚至略好于「全部预测为零」(其 MSPE 为 \(\sigma^2+\|\boldsymbol\beta\|^2\))。

原书推荐习题:第 14 章关于岭回归与主成分的习题(本章为其推导基础);附录 19.7 的推导本身可作为练习逐步复现。


原书对照

本章内容 原书章节 PDF 页码
OLS 的 MSPE 与 FPE(式 19.94–19.97) 附录 19.7 p.759–763
岭回归闭式解、收缩与尺度依赖(式 19.98–19.99) 附录 19.7 p.759–763
主成分推导、方差守恒、样本外预测(式 19.100–19.104) 附录 19.7 p.759–763
统计附表 1–5 Appendix Tables p.764–771
参考文献 References p.772–775
术语表 Glossary p.776–784
索引 Index p.786–798
大样本临界值速查 封底内页 p.799–800
岭回归的主成分方向收缩、精确 MSPE、多重检验提醒(本教材补充) — —

注:原书页码 = PDF 页码 − 1。