Menu

最佳拟合直线

无论散点怎样分布,用最小二乘的标准来衡量,总有且只有一条直线偏离它们最少。拖动这些点,这条线会跟着移动,始终保持最佳。

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

最后更新

把任何真实数据画出来,这些点都不肯乖乖落在一条直线上。你仍然可以穿过这团点画一条直线来表现趋势,但不同的人拿着尺子,画出的线会略有不同。最佳拟合直线结束了这场争论:按一个精确的标准,有一条直线是最好的,而且有公式能把它找出来。

拖动下面任意一个点,直线会跟着移动,始终保持最佳拟合。把一个点拉得离其他点很远,看看它把直线往自己这边拽得有多厉害。

“最佳”是什么意思

直线与每个点之间都有一段竖直距离:该点的实际 y 值,减去直线在这个 x 处预测的 y 值。这段距离就是这个点的残差。好的直线应该让残差都很小,但不能直接把残差加起来,因为直线上方的偏差是正的,下方的偏差是负的,它们会相互抵消。

所以先把每个残差平方,这样每一次偏离都会被算进去,而且大的偏离比小的偏离分量重得多。最佳拟合直线就是让残差平方和尽可能小的那条直线。这就是它被称为最小二乘直线的原因,而且只要这些点的 x 值不全相同,这样的直线有且只有一条。

两个公式

把直线写成 y = mx + b,数据的平均数记作 x̄ 和 ȳ。让平方和最小,就能直接得到斜率和截距:

m = Σ(x - x̄)(y - ȳ) / Σ(x - x̄)²

b = ȳ - m x̄

斜率公式的分子,和相关系数公式分子上的乘积之和是同一个,所以斜率和 r 的符号总是相同。分母只和 x 有关:它衡量的是 x 值有多分散。

一个完整的例子

五个点:x = 2、4、6、8、10,y = 3、7、8、12、15。x 的平均数是 6,y 的平均数是 9。

xyx - 6y - 9乘积(x - 6)²
23-4-62416
47-2-244
680-100
8122364
1015462416
合计5840

斜率是 m = 58/40 = 29/20,也就是 1.45。求截距时,把平均数点代入直线方程,解出 b:

所以 b = 3/10,最佳拟合直线是 y = 1.45x + 0.3。线性回归计算器用公式的累加和形式做同样的计算,并列出每一个和。

它总是经过平均数点

把截距公式移项,得到 ȳ = m x̄ + b。这说明无论数据是什么,点 (x̄, ȳ) 都恰好在这条直线上。在上面的例子中,1.45 × 6 + 0.3 = 9。

这可以用来检查你算出的任何直线,也是用眼睛估画直线时的好起点:先标出平均数点,再绕着它转动尺子,直到两侧的点大致平衡。

不过,仅仅经过平均数点还不够。当 x = 1、2、3、4、5,y = 2、4、5、4、5 时,平均数点是 (3, 4),最小二乘直线是 y = 0.6x + 2.2,残差平方和为 2.4。直线 y = 0.5x + 2.5 和 y = x + 1 也都经过 (3, 4),它们的残差平方和分别是 2.5 和 4。在所有经过这个点的直线中,只有斜率为 0.6 的那条能降到 2.4。

用直线做预测

有了直线,预测就是代入。用 y = 1.45x + 0.3,x 取 7 时得到 1.45 × 7 + 0.3 = 10.45。

这个预测是内插:7 在数据范围以内,位于 6 和 8 两个点之间,两侧都有证据表明趋势在那里成立。在数据范围以外做预测就是外推,数据中没有任何证据支撑它。

举个具体的例子。六名学生分别学习了 1 到 6 小时,得分为 52、58、61、67、70 和 76。最佳拟合直线是 y = 162/35x + 47.8,斜率约为每小时 4.63 分,r ≈ 0.9959。在数据范围内它预测得很好:4.5 小时约得 68.63 分。外推到 12 小时,它预测约 103.34 分,而试卷满分只有 100 分。直线本身没有问题,只是它描述的趋势在数据之外的某处就停止了,而直线无从知道是在哪里。

直线不是合适形状的时候

最佳拟合直线总是存在的,即使直线根本不是合适的模型。在 x = 0 到 5 处取平方数 0、1、4、9、16、25,它们的最佳拟合直线是 y = 5x - 10/3,r ≈ 0.9599,听起来非常好,可这些点其实落在一条曲线上。残差会暴露这一点:两端为正,中间为负。残差页面讲了怎样解读这种规律,而二次回归计算器可以改为拟合这条曲线。

试一题

x = 4 处的实际点是 (4, 7),所以直线与它相差 0.9。这个偏差就是该点的残差,而五个偏差的平方和 1.9,是任何直线对这些点所能达到的最小值。

常见问题

最佳拟合直线是什么?

在散点图上画的一条直线,用来概括这些点的趋势。严格意义上的最佳拟合直线就是最小二乘回归直线:在所有可能的直线中,它与各点的竖直偏差平方后相加,总和最小。

怎样求最佳拟合直线?

先求 x 的平均数和 y 的平均数。斜率等于(x 减 x 的平均数)乘(y 减 y 的平均数)之和,除以(x 减 x 的平均数)的平方之和。截距等于 y 的平均数减去斜率乘 x 的平均数。当 x = 2、4、6、8、10,y = 3、7、8、12、15 时,斜率为 58/40 = 1.45,截距为 9 减 1.45 × 6 = 0.3,所以 y = 1.45x + 0.3。

最佳拟合直线一定经过原点吗?

不一定。它经过的是平均数点,而不是原点。强制让它经过 (0, 0) 是另一种模型,只有在有理由认为 x 为 0 时 y 必须为 0 的情况下才用,而且它对这些点的拟合通常更差。

最佳拟合直线一定经过某个数据点吗?

不一定,而且通常一个都不经过。它唯一必定经过的点是(x 的平均数,y 的平均数),而这个点往往不是数据点之一。为了碰到尽可能多的点而画出的直线,并不是最小二乘直线。

内插和外推有什么区别?

内插是对数据范围以内的 x 预测 y,那里直线两侧都有数据点支撑。外推是在这个范围以外做预测,数据中没有任何证据表明趋势会延续下去。拟合良好时,内插一般可信;而外推即使在 r 接近 1 时也可能错得离谱。

最佳拟合直线和线性回归是一回事吗?

通常意义上是的。线性回归是方法,它得出的最小二乘直线就是最佳拟合直线。在学校里,用眼睛估计着在图上画的直线也叫最佳拟合直线,但那只是回归直线的估计,而不是回归直线本身。

相关概念

Coddy 编程语言插图

在 Coddy 学数学

开始