含p个参数的线性回归偏差-方差推导及误差公式证明问询
嘿,我来帮你把这两个线性回归的偏差-方差问题理清楚,尤其是你卡住的那个推导~
推导的核心是把预测误差拆成三个独立部分:噪声、偏差平方和方差,具体步骤如下:
- 先明确基础设定:真实模型为 $Y = f(X) + \epsilon$,其中 $\epsilon$ 是零均值、方差为 $\sigma^2_\epsilon$ 的独立噪声;含p个参数的线性预测模型是 $\hat{f}_p(x) = x^\top \hat{\beta}$,$\hat{\beta}=(X^\top X){-1}X\top Y$ 是基于训练集的参数估计量。
- 定义目标误差:我们要分析测试点 $x_0$ 处的期望预测误差 $Err(x_0) = \textbf{E}\left[(Y - \hat{f}_p(x_0))^2 \mid X = x_0\right]$,这里的期望覆盖训练集的随机性(不同训练集会得到不同的 $\hat{\beta}$)和测试点的噪声。
- 拆分误差项:把 $(Y - \hat{f}_p(x_0))$ 拆成 $(Y - f(x_0)) + (f(x_0) - \hat{f}_p(x_0))$,平方展开后取期望。利用噪声的零均值性质,交叉项的期望会直接消失,剩下三项:噪声的方差、$(f(x_0)-\hat{f}_p(x_0))^2$ 的期望。
- 分解偏差与方差:把 $(f(x_0)-\hat{f}_p(x_0))^2$ 的期望拆成偏差平方和方差:
- 偏差平方:$(f(x_0) - \textbf{E}\hat{f}_p(x_0))^2$,衡量预测值的平均水平和真实值的偏离程度;
- 方差:$\textbf{E}\left[(\hat{f}_p(x_0) - \textbf{E}\hat{f}_p(x_0))^2\right]$,衡量不同训练集得到的预测值的波动大小。
- 计算线性回归的方差项:结合 $\hat{\beta}$ 的表达式,推导出方差项的具体形式就是 $\sigma^2_\epsilon ||\textbf{h}(x_0)||^2$,其中 $\textbf{h}(x_0)=X(X^\top X)^{-1}x_0$,最终得到完整的偏差-方差分解式。
首先得指出你一开始展开时的小错误:$(a - b)^2 = a^2 - 2ab + b^2$,你写成了加号,这是卡住的原因之一~我顺着正确的思路帮你推下去:
首先明确前提:
- 真实模型:$Y = f(x_0) + \epsilon$,其中 $\textbf{E}[\epsilon]=0$,$Var(\epsilon)=\sigma^2_\epsilon$;
- 预测值:$\hat{f}p(x_0)=x_0^\top \hat{\beta}$,$\hat{\beta}=(X^\top X){-1}X\top Y{train}$,且测试点的 $\epsilon$ 与训练集的噪声独立。
我们从误差定义出发:
$$
Err(x_0) = \textbf{E}\left[(Y - \hat{f}_p(x_0))^2 \mid X=x_0\right]
$$
第一步:拆分误差项
把 $Y - \hat{f}_p(x_0)$ 拆成 $(Y - f(x_0)) + (f(x_0) - \hat{f}_p(x_0))$,平方展开:
$$
(Y - \hat{f}_p(x_0))^2 = (Y - f(x_0))^2 + (f(x_0) - \hat{f}_p(x_0))^2 + 2(Y - f(x_0))(f(x_0) - \hat{f}_p(x_0))
$$
对两边取期望:
$$
Err(x_0) = \textbf{E}\left[(Y - f(x_0))^2\right] + \textbf{E}\left[(f(x_0) - \hat{f}_p(x_0))^2\right] + 2\textbf{E}\left[(Y - f(x_0))(f(x_0) - \hat{f}_p(x_0))\right]
$$
第二步:计算每一项
第一项:噪声方差
$Y - f(x_0) = \epsilon$,所以:
$$
\textbf{E}\left[(Y - f(x_0))^2\right] = \textbf{E}[\epsilon^2] = \sigma^2_\epsilon
$$
(因为 $\textbf{E}[\epsilon]=0$,方差 $Var(\epsilon)=\textbf{E}[\epsilon^2] - (\textbf{E}[\epsilon])^2 = \sigma^2_\epsilon$)第三项:交叉项
$Y - f(x_0)=\epsilon$,而 $\hat{f}_p(x_0)$ 由训练集决定,和测试点的 $\epsilon$ 独立,所以:
$$
\textbf{E}\left[\epsilon(f(x_0)-\hat{f}_p(x_0))\right] = \textbf{E}[\epsilon] \cdot \textbf{E}\left[f(x_0)-\hat{f}_p(x_0)\right] = 0 \cdot \textbf{E}\left[f(x_0)-\hat{f}_p(x_0)\right] = 0
$$
因此第三项整体为0。第二项:偏差平方 + 方差
把 $(f(x_0)-\hat{f}_p(x_0))$ 拆成 $(f(x_0)-\textbf{E}\hat{f}_p(x_0)) + (\textbf{E}\hat{f}_p(x_0)-\hat{f}_p(x_0))$,平方展开:
$$
\textbf{E}\left[(f(x_0)-\hat{f}_p(x_0))^2\right] = (f(x_0)-\textbf{E}\hat{f}_p(x_0))^2 + \textbf{E}\left[(\textbf{E}\hat{f}_p(x_0)-\hat{f}_p(x_0))^2\right] + 2(f(x_0)-\textbf{E}\hat{f}_p(x_0))\textbf{E}\left[\textbf{E}\hat{f}_p(x_0)-\hat{f}_p(x_0)\right]
$$
最后一项中,$\textbf{E}\left[\textbf{E}\hat{f}_p(x_0)-\hat{f}_p(x_0)\right] = \textbf{E}\hat{f}_p(x_0) - \textbf{E}\hat{f}_p(x_0) = 0$,所以只剩下:
$$
(f(x_0)-\textbf{E}\hat{f}_p(x_0))^2 + Var(\hat{f}_p(x_0))
$$
第三步:计算方差项 $Var(\hat{f}_p(x_0))$
先看 $\hat{\beta}$ 的表达式:
$$
\hat{\beta} = (X^\top X){-1}X\top Y_{train} = (X^\top X){-1}X\top(f(X) + \epsilon_{train}) = \beta + (X^\top X){-1}X\top \epsilon_{train}
$$
其中 $\epsilon_{train}$ 是训练集的噪声向量,$\textbf{E}[\epsilon_{train}]=0$,协方差矩阵为 $\sigma^2_\epsilon I$。
代入 $\hat{f}p(x_0)=x_0^\top \hat{\beta}$:
$$
\hat{f}p(x_0) = x_0^\top \beta + x_0\top(X\top X){-1}X\top \epsilon{train} = f(x_0) + \textbf{h}(x_0)^\top \epsilon{train}
$$
这里 $\textbf{h}(x_0)=X(X^\top X)^{-1}x_0$,所以 $\textbf{h}(x_0)^\top = x_0\top(X\top X){-1}X\top$,完全符合题目给定的定义。
方差项就是:
$$
Var(\hat{f}p(x_0)) = \textbf{E}\left[(\hat{f}p(x_0)-\textbf{E}\hat{f}p(x_0))^2\right]
$$
因为 $\textbf{E}\hat{f}p(x_0)=f(x_0) + \textbf{h}(x_0)^\top \textbf{E}[\epsilon{train}]=f(x_0)$,所以:
$$
Var(\hat{f}p(x_0)) = \textbf{E}\left[(\textbf{h}(x_0)^\top \epsilon{train})^2\right] = \textbf{h}(x_0)^\top \textbf{E}[\epsilon{train}\epsilon{train}^\top] \textbf{h}(x_0)
$$
代入 $\textbf{E}[\epsilon{train}\epsilon_{train}\top]=\sigma2_\epsilon I$:
$$
Var(\hat{f}p(x_0)) = \textbf{h}(x_0)^\top \sigma^2\epsilon I \textbf{h}(x_0) = \sigma^2_\epsilon \cdot \textbf{h}(x_0)^\top \textbf{h}(x_0) = \sigma^2_\epsilon ||\textbf{h}(x_0)||^2
$$
第四步:合并所有项
把上面的结果代入,最终得到:
$$
Err(x_0) = \sigma^2_\epsilon + (f(x_0)-\textbf{E}\hat{f}p(x_0))^2 + ||\textbf{h}(x_0)||^2 \sigma^2\epsilon
$$
这样就完成了整个推导啦~
内容的提问来源于stack exchange,提问作者neringab

