最小二乘法

最小二乘法是一种用于曲线拟合的数学方法。 曲线拟合就是根据给定的数据集找到最符合数据的分布规律的曲线,进而可以通过曲线预测分析数据的分布。 给定二维离散数据点集合\((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*}
comments powered by Disqus