最小二乘法推导

545 阅读1分钟

这是我参与8月更文挑战的第17天,活动详情查看:8月更文挑战

最小二乘法

定义

根据维基百科的定义,最小二乘法通过最小化误差的平方和,寻找数据的最佳函数参数。也可用于曲线拟合。可以理解为拟合参数的一种方法。

推导

我们结合线性回归来理解。假设现在有一元线性回归问题,已知 x,yx,y,我们让 yyxx 上回归,可得到:

y^=αx+β\hat{y}=\alpha x+\beta

显然此时的误差(或者叫残差)r=yy^r = y-\hat{y}。那么最小二乘法就是通过最小化这个误差项的平方和,来拟合出参数 αβ\alpha、\beta。假设我们有 nn 个样本,那问题也就是:

argminα,βi=1n(yiy^i)2=argminα,βi=1n(yiαxiβ)2\mathop{argmin} \limits_{\alpha,\beta}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2=\mathop{argmin} \limits_{\alpha,\beta}\sum_{i=1}^{n}(y_i-\alpha{x}_i-\beta)^2

我们可以用求导的方法来求这个二元函数的极小值,即分别对αβ\alpha、\beta求导:

αJ(α,β)=2i=1nxiyi+2αi=1nxi2+2βi=1nxiβJ(α,β)=2i=1nyi+2αi=1nxi+2nβ\partial_\alpha{J(\alpha,\beta)}=-2\sum_{i=1}^nx_iy_i+2\alpha\sum_{i=1}^nx_i^2+2\beta\sum_{i=1}^nx_i \\ \partial_\beta{J(\alpha,\beta)}=-2\sum_{i=1}^ny_i+2\alpha\sum_{i=1}^nx_i+2n\beta

令这个两个导数为0,可求出:

βJ(α,β)=01ni=1nyi=1nαi=1nxi+βy=αx+βαJ(α,β)=0i=1nxiyi=αi=1nxi2+βi=1nxii=1nxiyi=αi=1nxi2+(yαx)i=1nxiα=i=1nxiyiyi=1nxii=1nxi2xi=1nxiα=i=1n(xix)(yiy)i=1n(xix)2\begin{aligned} \partial_\beta{J(\alpha,\beta)}=0 & \Longrightarrow \dfrac{1}{n}\sum_{i=1}^ny_i=\dfrac{1}{n}\alpha\sum_{i=1}^nx_i+\beta \\ & \Longrightarrow \overline{y}=\alpha\overline{x}+\beta \end{aligned} \\ \begin{aligned} \partial_\alpha{J(\alpha,\beta)}=0 & \Longrightarrow \sum_{i=1}^nx_iy_i=\alpha\sum_{i=1}^nx_i^2+\beta\sum_{i=1}^nx_i \\ & \Longrightarrow \sum_{i=1}^nx_iy_i=\alpha\sum_{i=1}^nx_i^2+(\overline{y}-\alpha\overline{x})\sum_{i=1}^nx_i \\ & \Longrightarrow \alpha=\dfrac{\sum_{i=1}^nx_iy_i-\overline{y}\sum_{i=1}^nx_i}{\sum_{i=1}^nx_i^2-\overline{x}\sum_{i=1}^nx_i} \\ & \Longrightarrow \alpha=\dfrac{\sum_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})}{\sum_{i=1}^n(x_i-\overline{x})^2} \end{aligned}

我们回顾一下协方差和方差的概念,

对单个随机变量来说,协方差与方差:

cov(x,y)=E((xμ)(yv))var(x)=cov(x,x)=E((xμ)2)cov(x,y)=E((x-\mu)(y-v)) \\ var(x)=cov(x,x)=E((x-\mu)^2)

对随机变量序列来说,协方差与方差:

cov(i=1nxi,j=1myj)=i=1nj=1mcov(xi,yj)var(i=1nxi)=i=1nvar(xi)+2i,j;i<jcov(xi,xj)cov(\sum_{i=1}^{n}x_i,\sum_{j=1}^my_j)=\sum_{i=1}^{n}\sum_{j=1}^mcov(x_i,y_j) \\ var(\sum_{i=1}^{n}x_i)=\sum_{i=1}^{n}var(x_i)+2\sum_{i,j;i<j} cov(x_i,x_j)

我们发现,α\alpha 其实可以写成 cov(x,y)var(x)\dfrac{cov(x,y)}{var(x)}

矩阵形式

对于一般多元线性回归问题,

Ab=YAb=Y

其中,

A=[1A11...A1n1A21...A2n............1Am1...Amn],b=[b0b1...bn],y=[y1...ym]A=\begin{bmatrix}1&A_{11}&...&A_{1n}\\1&A_{21}&...&A_{2n}\\...&...&...&...\\1&A_{m1}&...&A_{mn}\end{bmatrix},b=\begin{bmatrix}b_0\\b_1\\...\\b_n\end{bmatrix},y=\begin{bmatrix}y_1\\...\\y_m\end{bmatrix}

那最小二乘法的目标就是:

minbAbY2\min_b||Ab-Y||^2

按简单的解法,对其求解,

AbT=YATAbT=ATYATAbT=ATY(ATA)1ATAbT=(ATA)1ATYAb^T=Y\\ A^TAb^T=A^TY\\ A^TAb^T=A^TY\\ (A^TA)^{-1}A^TAb^T=(A^TA)^{-1}A^TY\\

最终的解:

bT=(ATA)1ATyb^T=(A^TA)^{-1}A^Ty