什么是线性最小二乘拟合?
设 \( (x_1, y_1), (x_2, y_2), \dots, (x_N, y_N) \) 为如下图所示的实验数据点,假设我们想使用以下形式的线性模型,通过自变量 \( x \) 的不同取值来预测因变量 \( y \):
\[ y = ax + b \]
数学中广泛使用的程序是最小化数学模型 \( y = f(x) \) 与实验点之间垂直距离 \( d_1, d_2, \dots \) 的平方和 \( D \),如下图所示。
数学推导
设 \( f(x) = ax + b \) 为所使用的线性模型。因此,垂直距离 \( d_1, d_2, \dots \) 由下式给出:
\[ d_1 = |y_1 - (ax_1 + b)|, \quad d_2 = |y_2 - (ax_2 + b)|, \quad \dots \]垂直距离平方和 \( D \) 可以写为:
\[ D = \sum_{i=1}^{N} (y_i - (ax_i + b))^2 \]使 \( D \) 最小化的 \( a \) 和 \( b \) 的值,是使 \( D \) 关于 \( a \) 和 \( b \) 的一阶偏导数同时等于 0 的值。因此,我们计算偏导数:
\[ \dfrac{\partial D}{\partial a} = \sum_{i=1}^{N} -2x_i(y_i - ax_i - b) \] \[ \dfrac{\partial D}{\partial b} = \sum_{i=1}^{N} -2(y_i - ax_i - b) \]将两个导数设为零并除以 \( -2 \),得到正规方程组:
\[ \begin{cases} \sum_{i=1}^{N} x_i(y_i - ax_i - b) = 0 \\ \sum_{i=1}^{N} (y_i - ax_i - b) = 0 \end{cases} \]展开求和项:
\[ \begin{cases} \sum_{i=1}^{N} x_iy_i - a \sum_{i=1}^{N} x_i^2 - b \sum_{i=1}^{N} x_i = 0 \\ \sum_{i=1}^{N} y_i - a \sum_{i=1}^{N} x_i - Nb = 0 \end{cases} \]将包含 \( a \) 和 \( b \) 的项移到左边:
\[ \begin{cases} a \sum_{i=1}^{N} x_i^2 + b \sum_{i=1}^{N} x_i = \sum_{i=1}^{N} x_iy_i \\ a \sum_{i=1}^{N} x_i + Nb = \sum_{i=1}^{N} y_i \end{cases} \]矩阵形式:
\[ \begin{bmatrix} \sum_{i=1}^{N} x_i^2 & \sum_{i=1}^{N} x_i \\ \sum_{i=1}^{N} x_i & N \end{bmatrix} \begin{bmatrix} a \\ b \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^{N} x_iy_i \\ \sum_{i=1}^{N} y_i \end{bmatrix} \]使用 \( 2 \times 2 \) 矩阵的逆矩阵公式,我们求解 \( a \) 和 \( b \):
\[ a = \dfrac{N \sum_{i=1}^{N} x_iy_i - (\sum_{i=1}^{N} x_i)(\sum_{i=1}^{N} y_i)}{N \sum_{i=1}^{N} x_i^2 - (\sum_{i=1}^{N} x_i)^2} \] \[ b = \dfrac{-(\sum_{i=1}^{N} x_i)(\sum_{i=1}^{N} x_iy_i) + (\sum_{i=1}^{N} x_i^2)(\sum_{i=1}^{N} y_i)}{N \sum_{i=1}^{N} x_i^2 - (\sum_{i=1}^{N} x_i)^2} \]线性最小二乘拟合应用例题
求给定实验数据点的线性最小二乘拟合 \( y = ax + b \):
\[ \{(1, 2), (3, 4), (2, 6), (4, 8), (5, 12), (6, 13), (7, 15)\} \]显示例题解答
建立包含所需数量的表格:
| \( x_i \) | \( y_i \) | \( x_i y_i \) | \( x_i^2 \) |
|---|---|---|---|
| 1 | 2 | 2 | 1 |
| 3 | 4 | 12 | 9 |
| 2 | 6 | 12 | 4 |
| 4 | 8 | 32 | 16 |
| 5 | 12 | 60 | 25 |
| 6 | 13 | 78 | 36 |
| 7 | 15 | 105 | 49 |
总点数为 \( N = 7 \)。
\( \sum_{i=1}^{7} x_i = 1 + 3 + 2 + 4 + 5 + 6 + 7 = 28 \)
\( \sum_{i=1}^{7} y_i = 2 + 4 + 6 + 8 + 12 + 13 + 15 = 60 \)
\( \sum_{i=1}^{7} x_iy_i = 2 + 12 + 12 + 32 + 60 + 78 + 105 = 301 \)
\( \sum_{i=1}^{7} x_i^2 = 1 + 9 + 4 + 16 + 25 + 36 + 49 = 140 \)
代入公式:
\[ a = \dfrac{7 \times 301 - 28 \times 60}{7 \times 140 - 28^2} = \dfrac{2107 - 1680}{980 - 784} = \dfrac{427}{196} \approx 2.1786 \] \[ b = \dfrac{-28 \times 301 + 140 \times 60}{7 \times 140 - 28^2} = \dfrac{-8428 + 8400}{196} = \dfrac{-28}{196} \approx -0.1429 \]线性最小二乘拟合计算器
给定实验点,该计算器计算系数 \( a \) 和 \( b \)、直线方程 \( y = ax + b \) 以及相关系数。它还会绘制实验点以及最佳拟合直线。
以 \((x_1, y_1), (x_2, y_2), \dots\) 的形式输入点,用逗号分隔,或使用默认数据集。
将鼠标悬停在图表右上角即可下载 PNG 格式的图表。
更多参考资料与链接
- Edwards, A. L. An Introduction to Linear Regression and Correlation. San Francisco, CA: W. H. Freeman.
- 微积分中的偏导数
- 逆矩阵问题与解答
- 多元函数教程与问题
- 线性回归问题与解答
- 维基百科上的线性最小二乘法