Menu

二次回归计算器

穿过你的数据点的最佳拟合抛物线,给出精确系数和 R²。

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

最后更新

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

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

二次回归拟合的是离各点偏差最小的抛物线

有些数据先升后降,或者先降后升:抛出的球的高度,不同价格下的利润,汽车在不同速度下的油耗。对这样的数据,直线无论放在哪里,形状都不对。二次回归改用抛物线 y = ax² + bx + c 来拟合,并选择 a、b、c,使各点的竖直偏差的平方和尽可能小。这和线性回归是同一种最小二乘思想,只是多了一个系数要确定。

让偏差平方和最小,会得到关于 a、b、c 的三个方程,叫作正规方程,它们由 x、x²、x³、x⁴、y、xy 和 x²y 的和构成。图形计算器用浮点数求解。这个页面用精确分数求解,所以系数 -8/7 会显示为 -8/7,而不是 -1.142857,R² 同样是精确分数。

答案下方列出了每个点的预测值和残差。好的二次拟合留下的残差看起来像噪声,在零的上下随机分布,没有规律。如果残差仍然呈弯曲状,或者在表格中稳定地增大,说明抛物线也不是合适的形状,值得换一个模型试试。

关于抛物线,需要注意的地方

  • a 的符号决定形状:a 为负时开口向下,有最高点;a 为正时开口向上,有最低点。
  • x 值各不相同的三个点总能被精确拟合。点 (1, 4)、(2, 9) 和 (3, 20) 都在 y = 3x² - 4x + 5 上,每个残差都是 0,但这说明不了数据的任何性质。
  • 抛物线的 R² 等于 1 减去残差平方和除以 y 的总变差。在同一组数据上,它永远不会低于直线的 r²,因为直线就是 a = 0 的抛物线。
  • 拟合曲线的顶点在 x = -b/(2a) 处。对于 x = 1 到 6、y 为 2, 6, 11, 13, 12, 8 的数据,顶点在 x = 33/8,曲线在那里达到峰值,约为 12.45。
  • 拟合曲线只在最小 x 和最大 x 之间可信。超出两端后,无论数据如何变化,抛物线都会转向,奔向正无穷或负无穷。

如何手算二次回归

  1. 计算各项之和

    对每个点计算 x、x²、x³、x⁴、y、xy 和 x²y,然后把每一列相加,并数出点的个数。对于 x = 0, 1, 2, 3 和 y = 1, 2, 5, 11:n = 4,Σx = 6,Σx² = 14,Σx³ = 36,Σx⁴ = 98,Σy = 19,Σxy = 45,Σx²y = 121。

  2. 写出正规方程

    aΣx⁴ + bΣx³ + cΣx² = Σx²y,aΣx³ + bΣx² + cΣx = Σxy,以及 aΣx² + bΣx + cn = Σy。代入上面的和:98a + 36b + 14c = 121,36a + 14b + 6c = 45,14a + 6b + 4c = 19。

  3. 解这三个方程

    每次消去一个未知数,并保持分数精确。这个方程组的解是 a = 1.25,b = -0.45,c = 1.05,所以 y = 1.25x² - 0.45x + 1.05。

  4. 用残差检验

    把每个 x 代入曲线,用实际的 y 减去预测值。这里的残差是 -0.05、0.15、-0.15 和 0.05,它们的平方和是 0.05,R² = 1214/1215,约为 0.9992。

小数据集的最佳拟合抛物线

每一行都是输入上方计算器的一组数据,以及计算器给出的精确系数和 R²。

x 值y 值最佳拟合抛物线R²
0, 1, 2, 31, 2, 5, 11y = 1.25x² - 0.45x + 1.051214/1215 ≈ 0.9992
-2, -1, 0, 1, 2, 39, 4, 1, 0, 1, 4y = x² - 2x + 11
1, 2, 3, 4, 5, 62, 6, 11, 13, 12, 8y = -(8/7)x² + (66/7)x - 7887/917 ≈ 0.9673
0, 1, 2, 3, 42, 17, 22, 17, 2y = -5x² + 20x + 21
1, 2, 34, 9, 20y = 3x² - 4x + 51
0, 1, 2, 3, 4, 50, 1, 4, 9, 16, 25y = x²1

例题详解

系数为小数的良好拟合

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

正规方程给出 a = 1.25,b = -0.45,c = 1.05,所以 y = 1.25x² - 0.45x + 1.05。预测值是 1.05、1.85、5.15 和 10.95,残差是 -0.05、0.15、-0.15 和 0.05,R² = 1214/1215,约为 0.9992。

先升后降的数据

plain
x: 1, 2, 3, 4, 5, 6; y: 2, 6, 11, 13, 12, 8

最佳拟合抛物线是 y = -(8/7)x² + (66/7)x - 7,R² = 887/917,约为 0.9673。因为 a 为负,曲线有一个峰值,位于 x = 33/8 = 4.125,y = 697/56,约为 12.45。同样这些点用直线拟合,r² 只有 375/917,约为 0.4089,因为直线不会转弯。

抛出的球

plain
x: 0, 1, 2, 3, 4; y: 2, 17, 22, 17, 2

每隔一秒记录的高度,单位为米。拟合是精确的:y = -5x² + 20x + 2,每个残差都是 0,R² = 1。-5 是重力加速度(取 10 m/s²)的一半,20 是抛出速度,2 是抛出高度。峰值在 x = 2,y = 22。

本来就在抛物线上的点

plain
x: -2, -1, 0, 1, 2, 3; y: 9, 4, 1, 0, 1, 4

这些是 (x - 1)² 的值,计算器返回 y = x² - 2x + 1,就是同一条抛物线展开后的形式,R² = 1,每个残差都是 0。用这种方法可以快速检验一组数值是否真的来自同一个二次函数。

常见错误

  • 只用三个点,就把 R² = 1 当成拟合得很好。任意三个 x 值不同的点都在某条抛物线上。
  • 在计算中途把和或系数四舍五入。正规方程很敏感,Σx⁴ 上一点小小的舍入误差就可能让 c 明显变化。分数要保留到最后。
  • 方程中各项和的位置写错。左上角是 Σx⁴,右下角是 n;每往下一行,幂次就降一。
  • 在数据范围之外做远距离预测。超出两端后,抛物线会转向并奔向无穷,不管实际的量是否如此。
  • 因为 R² 变大了就选择抛物线。在同一组数据上,抛物线的 R² 总是不低于直线的 r²;真正的问题是残差是否不再有规律。

二次回归常见问题

二次回归是什么?

用最小二乘法给数据拟合一条抛物线 y = ax² + bx + c:选择 a、b、c,使各点到曲线的竖直距离的平方和尽可能小。当散点图先升后降或先降后升,而不是沿一条直线分布时,就该用这种方法。

怎么求二次回归方程?

对所有点求 x、x²、x³、x⁴、y、xy 和 x²y 的和,然后解三个正规方程 aΣx⁴ + bΣx³ + cΣx² = Σx²y,aΣx³ + bΣx² + cΣx = Σxy,以及 aΣx² + bΣx + cn = Σy。对于 x = 0, 1, 2, 3 和 y = 1, 2, 5, 11,解为 a = 1.25,b = -0.45,c = 1.05。

二次回归需要多少个点?

至少三个,而且至少要有三个不同的 x 值。正好三个点时,抛物线会穿过所有点,R² 自然等于 1,所以要有四个或更多点,拟合结果才能说明数据的情况。

二次拟合中的 R² 是什么意思?

R² = 1 减去(残差平方和)除以(y 围绕其均值的总变差)。它表示 y 的变化中有多大比例能被抛物线解释。对于 x = 1 到 6、y = 2, 6, 11, 13, 12, 8,R² = 887/917,约为 0.9673。

二次回归和多项式回归是一回事吗?

二次回归就是 2 次的多项式回归。3 次拟合会增加一个 x³ 项和第四个正规方程,依此类推。次数越高,对数据点的拟合总是越紧密,但超过一定程度后拟合的就是噪声而不是趋势,所以对小数据集来说,通常到 2 次就够了。

怎么求拟合抛物线的顶点?

和求任何抛物线的顶点一样:x = -b/(2a),再把这个 x 代入方程求 y。对于 y = -(8/7)x² + (66/7)x - 7,得到 x = 33/8,y = 697/56,约为 12.45,这就是拟合趋势的峰值所在。

为什么系数是分数?

因为对你能输入的数据求解正规方程,得到的总是有理数,而分数就是精确答案。-8/7 才是首项系数;-1.142857 只是它的近似值。点击“复制”按钮,可以得到小数形式的曲线方程,方便粘贴到电子表格中。

更多数学工具

Coddy 编程语言插图

和 Coddy 一起学数学

开始