交互式推导 · 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\) 自身越分散(信息越多),分母越大、估计越稳。
代入本文这组数据
下面的数值由文档实时计算,正是上方实验台「求解」后会落到的位置:
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\)。「让残差最短」和「让残差垂直于列空间」是同一件事。
一次得到一切
令 \(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\)投影与正交性