Menu

残差是什么

残差就是一个点在最佳拟合直线上方或下方的距离。每个残差都只是一次简单的减法,合在一起,它们能告诉你这条直线到底好不好。

作者 Nethanel Bar, 联合创始人兼 CEO

最后更新

最佳拟合直线会为每一个 x 预测一个 y 值。大多数点并不正好落在直线上,一个点的实际值与直线认为它应该是的值之间的差距,就是这个点的残差。它是回归中最简单的量,只是一次减法,而解读残差,正是分辨一条直线是真的拟合得好、还是只是看起来拟合得好的方法。

拖动下面的点。每条竖直线段就是一个残差,蓝色表示直线上方的点,橙色表示直线下方的点,表格列出了每一个残差以及它们的平方和。

观测值减预测值

对于坐标为 (x, y) 的点,直线预测的值记作 ŷ,读作“y 帽”。残差是

e = y - ŷ

观测值减预测值,顺序永远是这样。

取五个点,x = 1、2、3、4、5,y = 2、4、5、4、5。它们的最佳拟合直线是 y = 0.6x + 2.2。在 x = 3 处,直线预测 0.6 × 3 + 2.2 = 4,而实际的点是 (3, 5),所以残差是 1。在 x = 1 处,直线预测 2.8,而点是 (1, 2),所以残差是 -0.8。

x观测值 y预测值 ŷ残差残差²
122.8-0.80.64
243.40.60.36
35411
444.6-0.60.36
555.2-0.20.04
合计02.4

符号说明了什么

正残差说明这个点在直线上方:实际值比预测值高,所以直线低估了它。负残差说明这个点在直线下方,直线高估了它。残差为零说明这个点正好在直线上。

残差的大小以 y 的单位计。如果 y 是以分为单位的考试成绩,残差为 -0.8 就表示这名学生的得分,比直线对他的 x 所预测的低 0.8 分。

为什么残差之和等于零

看表格中的残差那一列:-0.8、0.6、1、-0.6 和 -0.2 加起来正好是 0。这不是运气。每一条带截距的最小二乘直线都是这样。

这条直线的截距取 b = ȳ - m x̄。把所有 n 个点的残差 y - (mx + b) 加起来:y 值之和是 nȳ,mx 项之和是 mnx̄,b 项之和是 nb。代入 b 的公式,三部分相互抵消,结果为零。用文字说:直线的位置恰好让上方的点和下方的点完全平衡。

这也是为什么残差必须先平方,才能衡量拟合的好坏。它们直接相加的和总是 0,无论直线好坏。

残差平方和

把每个残差平方后加起来,就得到残差平方和,常记作 SSE。对于上面的五个点,它是 0.64 + 0.36 + 1 + 0.36 + 0.04 = 2.4。

最佳拟合直线的定义,就是让这个数尽可能小的那条直线。其他任何直线都会更差。直线 y = 0.5x + 2.5 也经过平均数点 (3, 4),在图上看起来几乎一样,但它的残差是 -1、0.5、1、-0.5 和 0,平方和为 2.5。直线 y = x + 1 得到的是 4。最小值 2.4 只属于 y = 0.6x + 2.2。

平方有一个值得了解的副作用。残差为 2 时给总和贡献 4,残差为 4 时贡献 16,所以一个远离其他点的点,会把整条直线往自己这边拉。把上图中的某一个点拖到角落里,看看平方和怎样猛增、直线怎样倾斜。

残差图

残差图把 x 放在横轴上,把每个点的残差放在纵轴上。拟合直线变成了零处的水平线,问题也随之变得简单:还剩下什么规律吗?

没有规律的带状分布,说明直线拟合得好。 残差在零的上下散布,没有形状,在每个 x 处宽度都差不多,说明直线已经抓住了趋势,剩下的只是噪声。

曲线形状说明直线不适合。 在 x = 0 到 5 处取平方数 0、1、4、9、16 和 25,拟合一条直线,得到 y = 5x - 10/3,r ≈ 0.9599,听起来拟合得非常好。残差却说出了真相:

Graph-112345-4-3-2-1123xy
直线 y = 5x - 10/3 对平方数 0 到 25 的残差:两端为正,中间为负。

它们依次是 10/3、-2/3、-8/3、-8/3、-2/3、10/3:一个 U 形。直线在中间总是偏高,在两端总是偏低,用直线去拟合曲线时总是这个样子。抛物线能完全拟合这些点,这正是二次回归计算器会找到的结果。

扇形说明离散程度在增大。 如果残差在一端很小、在另一端很大,直线平均来说可能仍然正确,但随着 x 增大,它的预测会越来越不精确。按百分比增长的数据,比如价格或人口,常常是这个样子,下一步通常会尝试指数模型。

残差与离群点

一个残差特别大的点,与其他点相比远在直线上方或下方,就是 y 方向上的离群点。它值得再看一眼:可能是录入错误,也可能是一个真正不同的情况。

一个在 x 方向上远离其他点的点,则是另一类问题。因为直线绕着平均数点转动,x 方向上很远的点有一根长长的杠杆,能把直线拉向自己,结果它的残差可能很小,尽管它对直线的改变最大。所以残差小并不能证明一个点是普通的。在上面的图中,把最右边的点直直往下拖,看直线怎样跟着它走。

试一题

直线预测 4.6,而点在 4,所以这个点在直线下方 0.6 处。如果你得到 0.6,说明减法的顺序弄反了:永远是观测值减预测值。对于你自己的数据,线性回归计算器能给出直线和它的残差平方和,而相关系数页面会说明,用一个数来表示的拟合强度是什么意思。

常见问题

残差是什么?

数据点到拟合直线的竖直距离:观测到的 y 减去直线在这个 x 处预测的 y。如果一个点是 (3, 5),而直线在 x = 3 处预测为 4,那么残差就是 5 减 4 = 1。

残差怎么算?

把这个点的 x 代入直线方程,得到预测值,再用这个点的实际 y 减去预测值。残差 = 观测值减预测值。顺序很重要:预测值减观测值,大小一样,符号却反了。

残差为负是什么意思?

这个点在直线下方,所以直线预测的值比观测值高:它高估了。残差为正说明这个点在直线上方,直线低估了。残差为 0 说明这个点正好在直线上。

为什么残差之和等于零?

对于带截距的最小二乘直线,残差之和总是零。截距取 b = y 的平均数减 m 乘 x 的平均数,这让直线经过平均数点;把所有点的 y 减 (mx + b) 加起来,得到 n 乘 y 的平均数,减去 m 乘 n 乘 x 的平均数,再减去 n 乘 b,结果正好是 0。

好的残差图应该是什么样子?

一条围绕零、没有规律的水平带,左边和右边差不多宽。如果残差呈曲线(U 形或倒 U 形),说明直线不适合这些数据。如果残差像扇子一样越往后越宽,说明 x 越大,预测越不可靠。

残差平方和是什么?

把每个残差平方后加起来。它衡量这些点整体上离直线有多远,也正是最小二乘法要让它尽可能小的量。当 x = 1 到 5、y = 2、4、5、4、5 时,最小二乘直线的残差平方和是 2.4,其他任何直线得到的值都更大。

相关概念

Coddy 编程语言插图

在 Coddy 学数学

开始