数学 / 概率与统计 · 从样本空间到成对数据 / 一元线性回归:最小二乘、残差与决定系数 待审核 15 / 16
OLS · residual plot · R²

一元线性回归:最小二乘、残差与决定系数

散点若呈线性趋势,便可以用一条直线概括它,并据以预测。一元线性回归 (simple linear regression) 要回答的是:无穷多条直线里取哪一条。最小二乘法 (least squares) 给出的判据是让各点到直线的竖直偏差平方和最小,由此解出的直线称为回归直线。

1 · 最小二乘解

偏差平方和 · 正规方程

设直线为 y^=bx+a\hat y = bx + a。第 ii 个点的竖直偏差是 yi(bxi+a)y_i - (b x_i + a),平方后求和得 Q(a,b)=i(yibxia)2Q(a, b) = \sum_i (y_i - b x_i - a)^2QQaabb 的二元二次函数,对两个变量分别求偏导并令其为零,整理即得

b^=i(xixˉ)(yiyˉ)i(xixˉ)2,a^=yˉb^xˉ.\hat b = \frac{\sum_i (x_i - \bar x)(y_i - \bar y)}{\sum_i (x_i - \bar x)^2}, \qquad \hat a = \bar y - \hat b \bar x .

分子正是 样本相关系数 里的 SxyS_{xy},分母是 SxxS_{xx},于是 b^\hat brr 必定同号。

演示数据取某小卖部六天的记录:气温 xx(单位:℃)依次为 26、18、13、10、4、−1,当日热饮销量 yy(单位:杯)依次为 20、24、34、38、50、64。代入后得 b^=1.6477\hat b = -1.6477a^=57.5568\hat a = 57.5568r=0.9696r = -0.9696

图 1-1 · 六天记录的散点、最小二乘直线与配套的残差图。可拖动预测气温,开关促销日那一点与残差竖线。

2 · 回归直线过样本中心

样本中心 · 截距的几何含义

a^=yˉb^xˉ\hat a = \bar y - \hat b \bar x 直接得到 b^xˉ+a^=yˉ\hat b \bar x + \hat a = \bar y,即点 (xˉ,yˉ)(\bar x, \bar y) 必在回归直线上,这个点称为样本中心。它给出一条便于手算的自检:算完 b^\hat ba^\hat a,把 xˉ\bar x 代回方程,结果应当等于 yˉ\bar y

几何上,最小二乘先把直线钉在样本中心,再绕这个点旋转到偏差平方和最小的角度。a^\hat a 只是这次旋转在纵轴上的截距,单独解读它往往没有意义:x=0x = 0 常常远在数据范围之外。

3 · 残差与残差图

residual · residual plot

ii 个点的残差 (residual) 是 ei=yiy^ie_i = y_i - \hat y_i,其中 y^i=b^xi+a^\hat y_i = \hat b x_i + \hat a。最小二乘的一阶条件保证 iei=0\sum_i e_i = 0:残差有正有负,总和恒为零,判断拟合好坏因此不能看残差之和。残差图把 eie_ixix_i 描点,若残差在零线上下随机散布、幅度大致均匀,线性模型就是合适的;若残差呈现弯曲的走向,或幅度随 xx 系统性放大,说明还有未被直线吸收的结构。

注 ·「残差之和为零」是代数恒等式,浮点算术里却只是近似成立。六点数据的残差实测为 5.2841、−3.8977、−2.1364、−3.0795、−0.9659、4.7955,加起来是 2.49×1014-2.49 \times 10^{-14} 而非 0。单测里若直接断言残差和严格等于 0,用例会挂在这个尾数上,判据得放宽到十位小数。

4 · 决定系数

R² = 1 − SSE / Syy

总偏差平方和 Syy=i(yiyˉ)2S_{yy} = \sum_i (y_i - \bar y)^2 度量 yy 自身的波动,残差平方和 SSE=iei2\mathrm{SSE} = \sum_i e_i^2 度量直线没能解释掉的那一部分。二者之比的补数称为决定系数 (coefficient of determination):

R2=1SSESyy.R^2 = 1 - \frac{\mathrm{SSE}}{S_{yy}} .

它取值在 0 与 1 之间,越大说明直线解释掉的波动越多。一元线性回归里 R2R^2 恰等于 r2r^2。演示数据的 SSE=81.09\mathrm{SSE} = 81.09Syy=1355.33S_{yy} = 1355.33R2=0.9402R^2 = 0.9402

5 · 外推的风险

interpolation vs extrapolation

回归方程只在数据覆盖的区间里有证据支持。演示数据的气温从 −1 ℃ 到 26 ℃,在这个区间内预测称为内插;跨出去就是外推,直线在那一段的形状从未被任何观测检验过。把 xx 推到 40 ℃,方程给出 y^=8.35\hat y = -8.35 杯——销量为负,模型在该段已经失效。区间之外的失效未必都这样显眼,多数时候只是悄悄给出一个看似合理却毫无依据的数。

警示 · 离群点对最小二乘的影响远大于直觉。给演示数据添上一个促销日 (20,60)(20, 60)(气温不低而销量畸高),斜率 b^\hat b1.6477-1.6477 变到 1.1696-1.1696R2R^2 由 0.9402 跌到 0.4116,rr0.9696-0.9696 变到 0.6416-0.6416。这一个点只占七分之一的权重,却改写了近一半的结论。平方惩罚放大远点的代价,这一性质可在 从取平均到最小二乘拟合线 里与绝对值惩罚、最大距离惩罚对照。

6 · 参考文献

  1. Simple linear regression. Wikipedia. 最小二乘解、回归直线过样本中心。https://en.wikipedia.org/wiki/Simple_linear_regression
  2. Ordinary least squares. Wikipedia. 正规方程与一阶条件。https://en.wikipedia.org/wiki/Ordinary_least_squares
  3. Coefficient of determination. Wikipedia. 决定系数的定义及它同 r2r^2 的关系。https://en.wikipedia.org/wiki/Coefficient_of_determination
  4. Errors and residuals. Wikipedia. 残差、残差图与模型诊断。https://en.wikipedia.org/wiki/Errors_and_residuals