Menu

线性回归计算器

精确求出穿过你的数据点的最佳拟合直线,给出 r 和每一步计算过程。

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

最后更新

想不用计算器也能解出这些题?

Coddy 数学课程教的是方法本身:你在交互式白板上完成每一步,哪一步出错都会准确告诉你。

线性回归找的是离所有点偏差最小的那一条直线

真实数据从来不会恰好落在一条直线上,所以你画的任何直线都会偏离大部分点。每一次偏离都是一个残差:实际的 y 减去直线预测的 y。线性回归把每个残差平方、再相加,然后选出让总和最小的那一条直线。这条直线就是最小二乘回归直线,也叫最佳拟合直线;只要 x 值不全相同,任何一组点都恰好只有一条。

求它需要五个数:点的个数 n,以及 x、y、xy 和 x² 各自的和。斜率 m = (nΣxy 减去 ΣxΣy) 除以 (nΣx² 减去 (Σx)²),截距 b = (Σy 减去 mΣx) 除以 n。这个页面会列出这些求和的表格,把你的数据代入两个公式,并展示每一行计算过程,因为老师检查的正是这张表。

斜率和截距都保留为精确分数。当数据由整数、小数和分数组成时,它们一定是有理数,所以斜率 162/35 就显示为 162/35,而不是它的近似值 4.6286。相关系数 r 是一个平方根,所以会以根式显示,旁边附上小数。点“复制”按钮可以得到小数形式的直线方程,直接粘贴进表格软件。

关于这条直线,值得注意的几点

  • 它一定经过均值点。x = 1 到 5、y = 2, 4, 5, 4, 5 时,均值分别是 3 和 4,直线是 y = 0.6x + 2.2,而 0.6 × 3 + 2.2 = 4。
  • 它的残差加起来一定正好为零。直线上方和下方的偏差相互抵消,这就是这种方法要先平方再相加的原因。
  • 斜率是有单位的:每个 x 单位对应多少 y 单位。用学习时长对考试分数做回归,斜率为 162/35,意味着每多学一小时,大约多得 4.63 分。
  • 交换 x 和 y 会得到另一条直线,而不是同一条直线换个写法。y 对 x 回归让竖直方向的偏差最小;x 对 y 回归让水平方向的偏差最小。
  • 斜率说明趋势有多陡,r 说明点跟这条趋势贴得有多紧。两者的符号总是相同,但陡峭的直线可能 r 很弱,平缓的直线也可能 r 很强。
  • 两个点总是完美拟合,r = 1 或 -1。这对数据说明不了什么;回归直线要有三个或更多的点才开始有意义。

如何手算回归直线

  1. 列表

    把每个点写成一行,共四列:x、y、xy 和 x²。把每一列加起来,再数一数点的个数。x = 1, 2, 3, 4, 5、y = 2, 4, 5, 4, 5 时,得到 n = 5,Σx = 15,Σy = 20,Σxy = 66,Σx² = 55。

  2. 计算斜率

    m = (nΣxy 减去 ΣxΣy) / (nΣx² 减去 (Σx)²)。这里是 (5 × 66 减去 15 × 20) / (5 × 55 减去 15²) = 30 / 50 = 0.6。如果结果不是简短的小数,就保留为分数。

  3. 计算截距

    b = (Σy 减去 mΣx) / n。这里是 (20 减去 0.6 × 15) / 5 = 11/5 = 2.2。要用上一步的精确斜率,不要用四舍五入后的。

  4. 写出直线并检验

    y = 0.6x + 2.2。检查它是否经过均值点 (3, 4):0.6 × 3 + 2.2 = 4。如果不经过,说明某个和算错了。

  5. 判断拟合效果

    算出 r,或者看残差。这里 r = √15/5,约为 0.7746,残差是 -0.8、0.6、1、-0.6 和 -0.2,它们的平方和为 2.4。

小数据集的最佳拟合直线

每一行都是输入上方计算器的一组数据。斜率和截距是精确值;r 以根式显示,并附上小数。

x 值y 值最佳拟合直线rr²
1, 2, 3, 4, 52, 4, 5, 4, 5y = 0.6x + 2.2√15/5 ≈ 0.77460.6
0, 1, 2, 37, 5, 3, 1y = -2x + 7-11
2, 4, 6, 8, 103, 7, 8, 12, 15y = 1.45x + 0.329√215/430 ≈ 0.9889841/860
1, 2, 3, 4, 5, 652, 58, 61, 67, 70, 76y = (162/35)x + 47.89√15/35 ≈ 0.9959243/245
1, 2, 3, 4, 53, 1, 4, 1, 5y = 0.4x + 1.6√2/4 ≈ 0.35360.125
1, 32, 8y = 3x - 111
-2, -1, 0, 1, 24, 1, 0, 1, 4y = 200

例题详解

课本上的经典数据

plain
x: 1, 2, 3, 4, 5; y: 2, 4, 5, 4, 5

各项之和为 Σx = 15,Σy = 20,Σxy = 66,Σx² = 55,n = 5。斜率是 30/50 = 0.6,截距是 11/5 = 2.2,所以直线是 y = 0.6x + 2.2。残差是 -0.8、0.6、1、-0.6 和 -0.2,加起来为 0,平方和为 2.4。相关系数 r = √15/5,约为 0.7746:较强的正相关。

斜率是分数的情况:学习时长与考试分数

plain
x: 1, 2, 3, 4, 5, 6; y: 52, 58, 61, 67, 70, 76

均值分别是 3.5 小时和 64 分。斜率是 162/35,约每小时 4.63 分;截距是 64 减去 (162/35) × 3.5 = 47.8,所以 y = (162/35)x + 47.8,r ≈ 0.9959。学习 4.5 小时,直线预测 2402/35,约 68.63 分。学习 12 小时,它预测约 103.34 分,而试卷满分只有 100:这是数据无法支撑的外推。

本来就在一条直线上的点

plain
x: 0, 1, 2, 3; y: 7, 5, 3, 1

x 每增加 1,y 就减少 2,所以这些点正好落在 y = -2x + 7 上。计算器会找到这条直线,每个残差都是 0,残差平方和也是 0,r = -1:完全负相关。

在数据范围内外做预测

plain
x: 2, 4, 6, 8, 10; y: 3, 7, 8, 12, 15

直线是 y = 1.45x + 0.3,r ≈ 0.9889,并且经过均值点 (6, 9)。在数据范围内的 x = 7 处,它预测 10.45,这是内插,可信程度大致和拟合效果相当。在 x = 60 处,它预测 87.3,已经超出最后一个点五十个单位,数据里没有任何东西能说明趋势还会延续。

r 很高,却藏着一条曲线

plain
x: 0, 1, 2, 3, 4, 5; y: 0, 1, 4, 9, 16, 25

最佳拟合直线是 y = 5x - 10/3,r ≈ 0.9599,听起来非常好。可残差是 10/3、-2/3、-8/3、-8/3、-2/3 和 10/3:两端为正,中间为负。这种 U 形说明点落在一条曲线上,二次回归会精确拟合为 y = x²。

常见错误

  • 先把斜率四舍五入,再算截距。斜率是 162/35 时,用 4.63 算出的截距是 47.795,而不是 47.8。全程使用精确斜率,最后只取一次近似。
  • 把 nΣx² 和 (Σx)² 搞混。x = 1 到 5 时,前者是 5 × 55 = 275,后者是 15² = 225。弄反了,分母的符号就会变。
  • 数据没有一一对应。第一个 x 对应第一个 y。只给一列排序而不动另一列,得到的直线穿过的是根本不存在的点。
  • 远远超出数据范围做外推。直线描述的是拟合时用到的范围;即使 r 接近 1,范围之外很远的预测也可能错得离谱。
  • 把高 r 当作直线模型正确的证据。0 到 25 的平方数 r ≈ 0.96,却仍然落在一条曲线上。要看残差。
  • 把斜率理解为因果。直线说明的是在这组数据里 y 随 x 变化的趋势,而不是改变 x 就会改变 y。
  • 题目要求 y 对 x 回归,却做成了 x 对 y 回归。除非所有点都在一条直线上,这两条回归直线是不同的。

线性回归常见问题

线性回归怎么手算?

为每个点列出 x、y、xy 和 x²,再把各列加起来。斜率 m = (nΣxy 减去 ΣxΣy) / (nΣx² 减去 (Σx)²),截距 b = (Σy 减去 mΣx) / n。x = 1 到 5、y = 2, 4, 5, 4, 5 时,得到 m = 30/50 = 0.6,b = 11/5 = 2.2,所以 y = 0.6x + 2.2。这个页面会列出同样的表格并代入两个公式,方便你逐行核对。

什么是最小二乘回归直线?

让残差平方和尽可能小的那条直线,其中残差是某个点的实际 y 减去直线预测的 y。只要 x 值不全相等,这条直线就是唯一的。对上面那五个点来说,没有任何其他直线能让平方和低于 2.4。

斜率和截距分别代表什么?

斜率表示 x 每增加 1,y 平均变化多少,单位是每个 x 单位对应的 y 单位。截距是 x 为 0 时预测的 y。只有当 x = 0 在数据范围内或附近时,截距才有意义;用身高预测体重的回归,身高为 0 时的截距描述的不是任何真实的人。

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

是的。在统计学中,最佳拟合直线就是最小二乘回归直线,也就是这个计算器算出的直线。在纸上凭眼睛画的拟合直线只是它的估计,而且应该经过均值点,计算出的直线总是经过这个点。

回归直线的 r² 多少才算好?

要看领域。r² 是 y 的变化中能被这条直线解释的比例,所以 0.9 表示 90%。受控的物理实验测量常常能达到 0.99;关于人的数据往往只有 0.3 到 0.5,但仍然有用。r² 高并不能证明直线就是正确的形状,所以也要检查残差。

线性回归需要多少个点?

两个点就能确定一条直线,所以计算器接受两个点;但穿过两个点的直线总是完美拟合,对数据说明不了什么。有三个或更多的点时,残差、r 和 r² 才开始带有信息,点越多,斜率就越可靠。

可以用回归直线做预测吗?

在 x 值的范围内可以:这叫内插,可靠程度和拟合效果相当。超出范围就是外推,数据里没有任何东西能说明趋势会延续。本页的考试分数例子在学习 12 小时时预测约 103 分,而试卷满分是 100。

为什么答案是分数而不是小数?

因为对有理数数据做最小二乘拟合,得到的斜率和截距都是有理数,而分数就是精确值。162/35 才是斜率,4.6286 只是它的近似值,用近似值做的每一次预测都会带上误差。需要小数时,点“复制”按钮即可。

更多数学工具

Coddy 编程语言插图

和 Coddy 一起学数学

开始