最小二乘法:原理详解与公式推导

最小二乘法是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。这种方法在统计学、工程学和机器学习中被广泛使用,特别是在线性回归分析中。以下是最小二乘法的原理和详细推导。

原理

最小二乘法的基本思想是找到一组参数,使得模型预测值与实际观测值之间的差异(残差)的平方和最小。这种方法假设误差是随机的,并且服从正态分布,误差的期望值为零。

问题表述

假设我们有一组观测数据 ( x i , y i ) (x_i,y_i) (xi,yi),其中 i=1,2,…,n。我们想要找到一个模型(例如线性模型)来拟合这些数据。对于线性模型,我们可以表示为:

y = a x + b y=ax+b y=ax+b

其中,ab 是我们想要估计的参数。

目标函数

我们定义目标函数(或损失函数)为残差的平方和:

S ( a , b ) = ∑ i = 1 n ( y i − ( a x i + b ) ) 2 S(a, b) = \sum_{i=1}^{n} (y_i - (ax_i + b))^2 S(a,b)=i=1n(yi(axi+b))2

我们的目标是找到 ab 的值,使得 S(a,b) 最小。

推导

为了找到 S(a,b) 的最小值,我们需要对 ab 分别求偏导数,并令这些偏导数等于零。

  1. a 求偏导数:

∂ S ∂ a = − 2 ∑ i = 1 n x i ( y i − ( a x i + b ) ) \frac{\partial S}{\partial a} = -2 \sum_{i=1}^{n} x_i (y_i - (ax_i + b)) aS=2i=1nxi(yi(axi+b))

  1. b 求偏导数:

∂ S ∂ b = − 2 ∑ i = 1 n ( y i − ( a x i + b ) ) \frac{\partial S}{\partial b} = -2 \sum_{i=1}^{n} (y_i - (ax_i + b)) bS=2i=1n(yi(axi+b))

令这两个偏导数等于零,我们得到两个方程:

∑ i = 1 n x i y i − a ∑ i = 1 n x i 2 − b ∑ i = 1 n x i = 0 ∑ i = 1 n y i − a ∑ i = 1 n x i − n b = 0 \begin{align*} \sum_{i=1}^{n} x_i y_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{align*} i=1nxiyiai=1nxi2bi=1nxii=1nyiai=1nxinb=0=0

这是一个线性方程组,我们可以通过求解这个方程组来找到 ab 的值。

解线性方程组

我们可以将这个方程组表示为矩阵形式:

[ ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i n ] [ a b ] = [ ∑ i = 1 n x i y i ∑ i = 1 n y i ] \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_i y_i \\ \sum_{i=1}^{n} y_i \end{bmatrix} [i=1nxi2i=1nxii=1nxin][ab]=[i=1nxiyii=1nyi]

解这个方程组,我们得到:

a = n ∑ i = 1 n x i y i − ∑ i = 1 n x i ∑ i = 1 n y i n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 b = ∑ i = 1 n x i 2 ∑ i = 1 n y i − ∑ i = 1 n x i ∑ i = 1 n x i y i n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 \begin{align*} a &= \frac{n \sum_{i=1}^{n} x_i y_i - \sum_{i=1}^{n} x_i \sum_{i=1}^{n} y_i}{n \sum_{i=1}^{n} x_i^2 - \left(\sum_{i=1}^{n} x_i\right)^2} \\ b &= \frac{\sum_{i=1}^{n} x_i^2 \sum_{i=1}^{n} y_i - \sum_{i=1}^{n} x_i \sum_{i=1}^{n} x_i y_i}{n \sum_{i=1}^{n} x_i^2 - \left(\sum_{i=1}^{n} x_i\right)^2} \end{align*} ab=ni=1nxi2(i=1nxi)2ni=1nxiyii=1nxii=1nyi=ni=1nxi2(i=1nxi)2i=1nxi2i=1nyii=1nxii=1nxiyi

这就是最小二乘法的解,它给出了使得残差平方和最小的参数 ab 的值。

当我们使用最小二乘法拟合一个二次函数时,模型可以表示为:

y = a x 2 + b x + c y=ax^2+bx+c y=ax2+bx+c

其中,abc 是我们想要估计的参数。

目标函数

我们定义目标函数(或损失函数)为残差的平方和:

S ( a , b , c ) = ∑ i = 1 n ( y i − ( a x i 2 + b x i + c ) ) 2 S(a, b, c) = \sum_{i=1}^{n} (y_i - (ax_i^2 + bx_i + c))^2 S(a,b,c)=i=1n(yi(axi2+bxi+c))2

我们的目标是找到 abc 的值,使得 S(a,b,c) 最小。

推导

为了找到 S(a,b,c) 的最小值,我们需要对 abc 分别求偏导数,并令这些偏导数等于零。

  1. a 求偏导数:

∂ S ∂ a = − 2 ∑ i = 1 n x i 2 ( y i − ( a x i 2 + b x i + c ) ) = 0 \frac{\partial S}{\partial a} = -2 \sum_{i=1}^{n} x_i^2 (y_i - (ax_i^2 + bx_i + c)) = 0 aS=2i=1nxi2(yi(axi2+bxi+c))=0

  1. b 求偏导数:

∂ S ∂ b = − 2 ∑ i = 1 n x i ( y i − ( a x i 2 + b x i + c ) ) = 0 \frac{\partial S}{\partial b} = -2 \sum_{i=1}^{n} x_i (y_i - (ax_i^2 + bx_i + c)) = 0 bS=2i=1nxi(yi(axi2+bxi+c))=0

  1. c 求偏导数:

∂ S ∂ c = − 2 ∑ i = 1 n ( y i − ( a x i 2 + b x i + c ) ) = 0 \frac{\partial S}{\partial c} = -2 \sum_{i=1}^{n} (y_i - (ax_i^2 + bx_i + c)) = 0 cS=2i=1n(yi(axi2+bxi+c))=0

这是一个线性方程组,我们可以通过求解这个方程组来找到 abc 的值。

解线性方程组

我们可以将这个方程组表示为矩阵形式:

[ ∑ i = 1 n x i 4 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 2 ∑ i = 1 n x i n ] [ a b c ] = [ ∑ i = 1 n x i 2 y i ∑ i = 1 n x i y i ∑ i = 1 n y i ] \begin{bmatrix} \sum_{i=1}^{n} x_i^4 & \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 \\ \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\ \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i & n \end{bmatrix} \begin{bmatrix} a \\ b \\ c \end{bmatrix}= \begin{bmatrix} \sum_{i=1}^{n} x_i^2 y_i \\ \sum_{i=1}^{n} x_i y_i \\ \sum_{i=1}^{n} y_i \end{bmatrix} i=1nxi4i=1nxi3i=1nxi2i=1nxi3i=1nxi2i=1nxii=1nxi2i=1nxin abc = i=1nxi2yii=1nxiyii=1nyi

解这个方程组,我们得到 abc 的值。

a = ∣ ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 2 ∑ i = 1 n x i n ∑ i = 1 n x i 2 y i ∑ i = 1 n x i y i ∑ i = 1 n y i ∣ ∣ ∑ i = 1 n x i 4 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 2 ∑ i = 1 n x i n ∣ a = \frac{\begin{vmatrix} \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\ \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i & n \\ \sum_{i=1}^{n} x_i^2 y_i & \sum_{i=1}^{n} x_i y_i & \sum_{i=1}^{n} y_i \end{vmatrix}}{\begin{vmatrix} \sum_{i=1}^{n} x_i^4 & \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 \\ \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\ \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i & n \end{vmatrix}} \\ a= i=1nxi4i=1nxi3i=1nxi2i=1nxi3i=1nxi2i=1nxii=1nxi2i=1nxin i=1nxi3i=1nxi2i=1nxi2yii=1nxi2i=1nxii=1nxiyii=1nxini=1nyi

b = ∣ ∑ i = 1 n x i 4 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 3 y i ∑ i = 1 n x i 2 y i ∑ i = 1 n x i y i ∣ ∣ ∑ i = 1 n x i 4 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 2 ∑ i = 1 n x i n ∣ b = \frac{\begin{vmatrix}\sum_{i=1}^{n} x_i^4 & \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 \\\sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\\sum_{i=1}^{n} x_i^3 y_i & \sum_{i=1}^{n} x_i^2 y_i & \sum_{i=1}^{n} x_i y_i\end{vmatrix}}{\begin{vmatrix}\sum_{i=1}^{n} x_i^4 & \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 \\\sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\\sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i & n\end{vmatrix}} b= i=1nxi4i=1nxi3i=1nxi2i=1nxi3i=1nxi2i=1nxii=1nxi2i=1nxin i=1nxi4i=1nxi3i=1nxi3yii=1nxi3i=1nxi2i=1nxi2yii=1nxi2i=1nxii=1nxiyi

c = ∣ ∑ i = 1 n x i 4 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 2 y i ∑ i = 1 n x i 1 y i ∑ i = 1 n y i ∣ ∣ ∑ i = 1 n x i 4 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i 3 ∑ i = 1 n x i 2 ∑ i = 1 n x i ∑ i = 1 n x i 2 ∑ i = 1 n x i n ∣ c = \frac{\begin{vmatrix}\sum_{i=1}^{n} x_i^4 & \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 \\\sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\\sum_{i=1}^{n} x_i^2 y_i & \sum_{i=1}^{n} x_i^1 y_i & \sum_{i=1}^{n} y_i\end{vmatrix}}{{\begin{vmatrix}\sum_{i=1}^{n} x_i^4 & \sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 \\\sum_{i=1}^{n} x_i^3 & \sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i \\\sum_{i=1}^{n} x_i^2 & \sum_{i=1}^{n} x_i & n\end{vmatrix}}} c= i=1nxi4i=1nxi3i=1nxi2i=1nxi3i=1nxi2i=1nxii=1nxi2i=1nxin i=1nxi4i=1nxi3i=1nxi2yii=1nxi3i=1nxi2i=1nxi1yii=1nxi2i=1nxii=1nyi

以上就是使用最小二乘法拟合二次函数的推导过程。这个过程与拟合线性函数类似,只是模型和方程的形式更复杂一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值