交互式推导 · Interactive Derivation

最小二乘法的数学推导 Ordinary Least Squares · From Intuition to Closed Form

从一团散点,到一条「最好」的直线。本文把 OLS 的每一步——目标函数、求导、正规方程、闭式解、矩阵形式——都和一个可以亲手拨动的图像绑在一起。 下面这条线正在自己「落位」,注意那些橙色正方形:它们的边长就是残差,面积就是残差的平方,而 OLS 做的事,就是让它们的总面积最小。

橙色方块 = 残差平方 SSR — · 蓝线 = 当前拟合  ŷ = β₀ + β₁x · 总面积最小 ⇒ 最优直线

向下滚动开始 ↓

00 直觉

我们到底在拟合什么?

手上有 \(n\) 个数据点 \((x_i, y_i)\)。我们相信 \(y\) 大致随 \(x\) 线性变化,于是想画一条直线 \(\hat y = \hat\beta_0 + \hat\beta_1 x\) 来概括这个关系。

没有一条直线能穿过所有点,所以每个点都会留下一段「没解释掉」的偏差——这就是残差 \(e_i\):实际值减去直线给出的预测值。

残差 Residual
\[ e_i \;=\; y_i - \hat y_i \;=\; y_i - \hat\beta_0 - \hat\beta_1 x_i \]
为什么是竖直距离 OLS 量的是竖直方向的差距 \(y_i-\hat y_i\),而不是点到直线的垂直距离。原因在于我们的目标是「用 \(x\) 预测 \(y\)」——犯错的是 \(y\) 这个方向。改成垂直距离会得到另一种方法(正交回归 / TLS),结论不同。

01 目标函数

把「最好」翻译成一个可以最小化的数

残差有正有负,直接相加会互相抵消。OLS 的选择是:把每个残差平方后再相加,得到残差平方和(Sum of Squared Residuals, SSR)。它是 \((\beta_0,\beta_1)\) 的函数,我们要让它最小。

目标函数 Objective
\[ S(\beta_0,\beta_1)\;=\;\sum_{i=1}^{n} e_i^{2}\;=\;\sum_{i=1}^{n}\bigl(y_i-\beta_0-\beta_1 x_i\bigr)^{2} \]

动手试一试

拖动两个滑块改变直线;左图里每个橙色正方形的边长正是该点的残差,面积就是它对 SSR 的贡献。右图是整张成本曲面 \(S(\beta_0,\beta_1)\)——你可以直接在上面点击或拖动来挪动直线。试着把橙色总面积调到最小,再按下「求解最优解」对答案。

最小二乘实验台 Least-Squares Workbench
数据 · 拟合线 · 残差²(橙色方块)
成本曲面 S(β₀,β₁) · ★=最优 · ●=当前(可点击)
β₀ = 0.00 β₁ = 0.00 SSR = 0.00 最小 SSR = 0.55
平方 vs 绝对值 为什么是平方而不是 \(\sum|e_i|\)?平方处处可导、对大误差惩罚更重,最终能解出一个漂亮的闭式解;它还恰好对应正态误差下的最大似然估计。绝对值给出的是中位数回归(LAD),更稳健但没有简洁的解析解。

02 微积分

下到碗底:一阶条件与正规方程

右上那张成本曲面是一个开口向上的「碗」。最低点处,沿任何方向的坡度都为零——也就是对 \(\beta_0\) 和 \(\beta_1\) 的偏导数同时为零。这就是一阶条件(First-Order Conditions)。

对截距求偏导
\[ \frac{\partial S}{\partial \beta_0}\;=\;-2\sum_{i=1}^{n}\bigl(y_i-\beta_0-\beta_1 x_i\bigr)\;=\;0 \]
对斜率求偏导
\[ \frac{\partial S}{\partial \beta_1}\;=\;-2\sum_{i=1}^{n} x_i\bigl(y_i-\beta_0-\beta_1 x_i\bigr)\;=\;0 \]

两式各除以 \(-2\) 并展开求和,就得到联立的正规方程(Normal Equations):

正规方程组 Normal Equations
\[ \begin{aligned} \textstyle\sum y_i &= n\,\beta_0 + \beta_1 \textstyle\sum x_i \\[2pt] \textstyle\sum x_i y_i &= \beta_0 \textstyle\sum x_i + \beta_1 \textstyle\sum x_i^{2} \end{aligned} \]
为什么这一定是最小值 目标函数对参数是凸的二次型,二阶导(Hessian)正定,所以唯一的驻点必是全局最小,而不是最大或鞍点。直观上就是:碗只有一个底。

03 闭式解

解出来:斜率是协方差除以方差

由第一条正规方程除以 \(n\),立刻得到截距的表达式——它保证直线穿过样本均值点 \((\bar x,\bar y)\):

截距 Intercept
\[ \hat\beta_0 \;=\; \bar y - \hat\beta_1\,\bar x \]

把它代回第二条方程并整理,斜率落定为:

斜率 Slope(闭式解)
\[ \hat\beta_1 \;=\; \frac{\sum_{i=1}^{n}(x_i-\bar x)(y_i-\bar y)}{\sum_{i=1}^{n}(x_i-\bar x)^{2}} \;=\; \frac{S_{xy}}{S_{xx}} \;=\; \frac{\widehat{\operatorname{Cov}}(x,y)}{\widehat{\operatorname{Var}}(x)} \]

读法很有经济直觉:斜率 = \(x\) 与 \(y\) 的样本协方差 ÷ \(x\) 的样本方差。\(x\) 和 \(y\) 越是同向变动,斜率越大;\(x\) 自身越分散(信息越多),分母越大、估计越稳。

代入本文这组数据

下面的数值由文档实时计算,正是上方实验台「求解」后会落到的位置:

样本量 n
ȳ
Sxx
Sxy
β̂₁ = Sxy/Sxx
β̂₀ = ȳ − β̂₁x̄
最小 SSR

04 矩阵形式

一步通向多元回归

当解释变量不止一个时,逐个求偏导太笨重。把所有数据堆成矩阵,整套推导会变得异常干净。设 \(\mathbf y\) 为 \(n\times1\),设计矩阵 \(\mathbf X\) 为 \(n\times k\)(含一列全 1 表示截距),系数 \(\boldsymbol\beta\) 为 \(k\times1\):

矩阵模型
\[ \mathbf y \;=\; \mathbf X\boldsymbol\beta + \boldsymbol\varepsilon \]

残差平方和就是残差向量与自身的内积,展开为关于 \(\boldsymbol\beta\) 的二次型:

目标函数
\[ S(\boldsymbol\beta)=(\mathbf y-\mathbf X\boldsymbol\beta)^{\!\top}(\mathbf y-\mathbf X\boldsymbol\beta) =\mathbf y^{\!\top}\mathbf y-2\,\boldsymbol\beta^{\!\top}\mathbf X^{\!\top}\mathbf y+\boldsymbol\beta^{\!\top}\mathbf X^{\!\top}\mathbf X\boldsymbol\beta \]

对向量 \(\boldsymbol\beta\) 求梯度并令其为零:

梯度 = 0
\[ \frac{\partial S}{\partial\boldsymbol\beta}=-2\,\mathbf X^{\!\top}\mathbf y+2\,\mathbf X^{\!\top}\mathbf X\boldsymbol\beta=\mathbf 0 \]

整理即得矩阵形式的正规方程,进而得到 OLS 的闭式解(当 \(\mathbf X\) 列满秩时 \(\mathbf X^{\!\top}\mathbf X\) 可逆):

正规方程
\[ \mathbf X^{\!\top}\mathbf X\,\hat{\boldsymbol\beta}=\mathbf X^{\!\top}\mathbf y \]
OLS 估计量
\[ \hat{\boldsymbol\beta}=\bigl(\mathbf X^{\!\top}\mathbf X\bigr)^{-1}\mathbf X^{\!\top}\mathbf y \]

几何视角:投影

把拟合值写出来:\(\hat{\mathbf y}=\mathbf X\hat{\boldsymbol\beta}=\mathbf X(\mathbf X^{\!\top}\mathbf X)^{-1}\mathbf X^{\!\top}\mathbf y=\mathbf P\,\mathbf y\)。这里 \(\mathbf P\) 是投影矩阵:它把观测向量 \(\mathbf y\) 垂直投影到 \(\mathbf X\) 的列空间上。残差 \(\mathbf e=\mathbf y-\hat{\mathbf y}\) 与列空间正交,即 \(\mathbf X^{\!\top}\mathbf e=\mathbf 0\)。「让残差最短」和「让残差垂直于列空间」是同一件事。

col(X) O y ŷ = Py e = y − ŷ
一次得到一切 令 \(k=2\)、\(\mathbf X=[\mathbf 1\ \ \mathbf x]\),把 \(\hat{\boldsymbol\beta}=(\mathbf X^{\!\top}\mathbf X)^{-1}\mathbf X^{\!\top}\mathbf y\) 展开,就会逐字还原第 03 节那两个一元公式。矩阵法不是另一种方法,而是同一推导的紧凑写法。

05 性质验证

三条「免费」恒等式

一阶条件不只给出解,还顺手保证了三条关于残差的恒等式。它们对任何含截距的 OLS 拟合都精确成立——你可以在实验台「求解」后回头验证。

① 残差和为零
\[ \sum_{i=1}^{n} e_i = 0 \]

直接来自对 β₀ 的一阶条件。

② 残差与 x 正交
\[ \sum_{i=1}^{n} x_i\,e_i = 0 \]

来自对 β₁ 的一阶条件,即 \(\mathbf X^{\!\top}\mathbf e=\mathbf 0\)。

③ 直线过均值点
\[ \bar y = \hat\beta_0 + \hat\beta_1\bar x \]

由 ① 推出,回归线必经 \((\bar x,\bar y)\)。

用本文数据在最优解处实测:  Σeᵢ =  ·  Σxᵢeᵢ =  ——数值上等于零,恒等式成立。

06 速查

一页带走

核心公式

\(S(\boldsymbol\beta)=\sum (y_i-\beta_0-\beta_1x_i)^2\)目标:最小化残差平方和
\(\partial S/\partial\boldsymbol\beta=\mathbf 0 \Rightarrow \mathbf X^{\!\top}\mathbf X\hat{\boldsymbol\beta}=\mathbf X^{\!\top}\mathbf y\)一阶条件 → 正规方程
\(\hat\beta_1=S_{xy}/S_{xx},\quad \hat\beta_0=\bar y-\hat\beta_1\bar x\)一元闭式解
\(\hat{\boldsymbol\beta}=(\mathbf X^{\!\top}\mathbf X)^{-1}\mathbf X^{\!\top}\mathbf y\)多元闭式解
\(\hat{\mathbf y}=\mathbf P\mathbf y,\quad \mathbf X^{\!\top}\mathbf e=\mathbf 0\)投影与正交性