残差公式证明
郝伟 2020/01/03

简介

在线性回归计算(Linear Regression) 中,有三个非常重要的概念:

重要关系:SST=SSE+SSR

三者存在下重要关系
SST=SSE+SSRSST=SSE+SSR

即:
i=1n(yiyˉ)2=i=1n(yiy^i)2+i=1n(y^iyˉ)2\sum_{i=1}^n (y_i-\bar y)^2=\sum_{i=1}^n (y_i-\hat y_i)^2+\sum_{i=1}^n (\hat y_i-\bar y)^2

这个结论很重要,表明了三者的关系,同时也简化了计算。但是结论似乎很奇怪,因为根据常识,当 a+b=ca + b = c 成立的时候,a2+b2=c2a^2 + b^2 = c^2 是不能保证一定成立的。我们将上面的等式展开,化简后可以得到以下等式:
(yi^yiˉ)(yiyi^)=0\sum \left(\hat{y_i} - \bar{y_i} \right) \left( y_i - \hat{y_i} \right) = 0
所以,我们只要证明这个等式成立,即可证明 SST=SSE+SSRSST = SSE + SSR,然而发现这个等式还真不好证明,在查阅了大量资料后,总算完成了证明,过程如下所示。

证明

最小二乘回归的基本原理是将误差的平方和最小化。实际上公式中所要求的就是 ei=yiyi^e_i=y_i - \hat{y_i},我们可以使用微积分找到参数β0\beta_0β1\beta_1 的方程式,以使0nei2\sum_0^n e_i^2 的值最小。(注:为书写和显示方便直观,在证明过程中省略求和的上下限。)

yi^=β0+β1xi\hat{y_i} = \beta_0 + \beta_1x_i,则:
S=i=1nei2=(yiyi^)2=(yiβ0β1xi)2S = \displaystyle\sum\limits_{i=1}^n e_i^2 = \sum \left(y_i - \hat{y_i} \right)^2= \sum \left(y_i - \beta_0 - \beta_1x_i\right)^2

我们的目的就是找到 β0\beta_0β1\beta_1 使总和 SS 最小的值。根据高等数据的基本原理,一个函数取得最值的点的导数为0。由此可得,SS 求相对于 β0\beta_0 的偏导数为零,即:

Sβ0=2(yiβ0β1xi)1(1)=0\frac{\partial{S}}{\partial{\beta_0}} = \sum 2\left(y_i - \beta_0 - \beta_1x_i\right)^1(-1) = 0

化简后得到:
(yiβ0β1xi)=0\sum \left(y_i - \beta_0 - \beta_1x_i\right) = 0


(yiyi^)=0(Eq.1)\tag{Eq.1} \sum \left(y_i - \hat{y_i} \right) = 0 \qquad

然后,再重新排列并求解 β0\beta_0
β0=yiβ1xi\sum \beta_0 = \sum y_i -\beta_1 \sum x_i

nβ0=yiβ1xin\beta_0 = \sum y_i -\beta_1 \sum x_i

β0=1nyiβ11nxi\beta_0 = \frac{1}{n}\sum y_i -\beta_1 \frac{1}{n}\sum x_i

在求完β0\beta_0的偏导数以后,我们再求 SS 相对 β1\beta_1 的偏导数,同理有:
Sβ1=2(yiβ0β1xi)1(xi)=0\frac{\partial{S}}{\partial{\beta_1}} = \sum 2\left(y_i - \beta_0 - \beta_1x_i\right)^1 (-x_i) = 0

等式两边同时除以 2-2 再重新排列,可得:

xi(yiβ0β1xi)=0\sum x_i \left(y_i - \beta_0 - \beta_1x_i\right) = 0


xi(yiyi^)=0\sum x_i \left(y_i - \hat{y_i} \right) = 0

又因为 yi^=β0+β1xi\hat{y_i} = \beta_0 + \beta_1x_i,所以
xi=1β1(yi^β0)=1β1yi^β0β1x_i = \frac{1}{\beta_1}\left( \hat{y_i} - \beta_0 \right) = \frac{1}{\beta_1}\hat{y_i} -\frac{\beta_0}{\beta_1}

最后,再将其代入上面的方程式,即可得到预期的表达式:
xi(yiyi^)=0\sum x_i \left(y_i - \hat{y_i} \right) = 0

(1β1yi^β0β1)(yiyi^)=0\sum \left(\frac{1}{\beta_1}\hat{y_i} - \frac{\beta_0}{\beta_1}\right) \left(y_i - \hat{y_i} \right) = 0

1β1yi^(yiyi^)β0β1(yiyi^)=0\frac{1}{\beta_1}\sum \hat{y_i} \left(y_i - \hat{y_i} \right) - \frac{\beta_0}{\beta_1} \sum \left(y_i - \hat{y_i} \right)= 0

现在,第二项为零(由 eqn.1eqn.1 表示),因此,我们立即得到所需的结果:
yi^(yiyi^)=0(Eq. 2)\tag{Eq. 2}\sum \hat{y_i} \left(y_i - \hat{y_i} \right) = 0 \qquad

最终,根据 Eq.2yˉEq.1Eq.2 - \bar y * Eq.1 可得
yi^(yiyi^)yˉ(yiyi^)=0\sum \hat{y_i} \left(y_i - \hat{y_i} \right) - \bar y \sum \left(y_i - \hat{y_i} \right) = 0


(yi^yiˉ)(yiyi^)=0\sum \left(\hat{y_i} - \bar{y_i} \right) \left( y_i - \hat{y_i} \right) = 0

综上,我们最终可以得到以下结论:
i=1n(yiyˉ)2=i=1n(yiy^i)2+i=1n(y^iyˉ)2\sum_{i=1}^n (y_i-\bar y)^2=\sum_{i=1}^n (y_i-\hat y_i)^2+\sum_{i=1}^n (\hat y_i-\bar y)^2

结论

通过以上证明过程,我们证明了 SST=SSE+SSRSST=SSE+SSR。但是正如前言所说,当 a+b=ca + b = c 成立的时候,a2+b2=c2a^2 + b^2 = c^2 是不能保证一定成立的,这里的等式之所以成立,是因为有个重要的前提就是拟合值最小,所以我们才可以用Sβ0=0\frac{\partial{S}}{\partial{\beta_0}} = 0Sβ1=0\frac{\partial{S}}{\partial{\beta_1}} =0 两式联立进行求解。如果没有这个条件,即拟合过程中没有取得最值,这个结论是不能保证成立的。

参考资料

[1] https://stats.stackexchange.com/questions/207841/why-is-sst-sse-ssr-one-variable-linear-regression/401299#401299
[2] https://math.stackexchange.com/questions/709419/prove-sst-ssessr
[3] https://web.njit.edu/~wguo/Math644_2012/Math644_Chapter 1_part4.pdf
[4] https://365datascience.com/sum-squares/