最小二乘法是一种用于曲线拟合的数学方法。 曲线拟合就是根据给定的数据集找到最符合数据的分布规律的曲线,进而可以通过曲线预测分析数据的分布。 给定二维离散数据点集合\((x_i, y_i),i=1,2 \cdots N\)
,且分布遵守线性规律,即\(y = ax + b\)
,现在就要找出最优的系数t和b. 一般我们取\(\varDelta_y\)
作为误差,另外也有将数据点到曲线距离\(\sqrt{{\varDelta}_x^2+{\varDelta_y}^2}\)
作为误差的,但是由于x和y量纲的差别实际较少采用。最小二乘法就是指各个数据点与实际拟合曲线的误差的平方和最小,对此简单线性拟合可以表示为:
\begin{equation*}
\min_{a,b}\|aX+b-Y\|_2
\end{equation*}
误差的平方和可以计算为:
\begin{equation*}
\sum_{i=1}^{n}(ax_i+b-y_i)^2, i=1,2, \cdots N
\end{equation*}
二维函数求极值:
\begin{equation*}
\left\{
\begin{array}{l}
f_a = \sum 2(ax_i+b-y_i)x_i = 0 \\
f_b = \sum 2(ax_i+b-y_i) = 0
\end{array}
\right.
\end{equation*}
将上式简化可得线性方程组为:
\begin{equation*}
\begin{pmatrix} \Sigma {x_i}^2 & \Sigma x_i \\ \Sigma x_i & n \end{pmatrix}
\begin{pmatrix} a \\ b \end{pmatrix} = \begin{pmatrix} \Sigma {x_i}{y_i} \\ \Sigma y_i \end{pmatrix}
\end{equation*}
最终可以计算得到a和b的解为:
\begin{equation*}
\left\{
\begin{array}{l}
a = \frac{n\Sigma{x_i y_i} - \Sigma{x_i}\Sigma{y_i}}{n\Sigma{x_i}^2 - (\Sigma{x_i})^2} \\
b = \frac{-\Sigma{x_i}\Sigma{x_i y_i} + \Sigma{x_i}^2\Sigma{y_i}}{n\Sigma{x_i}^2 - (\Sigma{x_i})^2} = \bar y - a \bar x
\end{array}
\right.
\end{equation*}
其中,\(\bar x = \frac{\Sigma x_i}{n}, \bar y = \frac{\Sigma y_i}{n}\)
或者直接将解表示为矩阵形式:
\begin{equation*}
\begin{pmatrix} a \\ b \end{pmatrix} = (X^TX)^{-1}X^TY
\end{equation*}
其中:
\begin{align*}
\begin{array}{l}
X = \begin{pmatrix} x_1 & 1 \\ x_2 & 1 \\ \vdots & \vdots \\ x_n & 1 \end{pmatrix} \\
Y = \begin{pmatrix} y_1 \\ y_2 \\ \vdots \\ x_n \end{pmatrix}
\end{array}
\end{align*}