最小平方法是十九世纪统计学的主题曲。 从许多方面来看, 它之于统计学就相当于十八世纪的微积分之于数学。
----乔治·斯蒂格勒的《The History of Statistics》
1.日用而不知
来看一个生活中的例子。比如说,有五把尺子:
![](https://img-blog.csdnimg.cn/img_convert/c6ff8059a592622e1cb06d386b313831.png)
用它们来分别测量一线段的长度,得到的数值分别为(颜色指不同的尺子):
![](https://img-blog.csdnimg.cn/img_convert/5535dba3d0e743ce18604504f96ef96f.png)
之所以出现不同的值可能因为:
不同厂家的尺子的生产精度不同
尺子材质不同,热胀冷缩不一样
测量的时候心情起伏不定
......
总之就是有误差,这种情况下,一般取平均值来作为线段的长度:
![](https://img-blog.csdnimg.cn/img_convert/0f875f6f60c3bc3780818deea049a058.png)
日常中就是这么使用的。可是作为很事'er的数学爱好者,自然要想下:
这样做有道理吗?
用调和平均数行不行?
用中位数行不行?
用几何平均数行不行?
2. 最小二乘法
换一种思路来思考刚才的问题。
首先,把测试得到的值画在笛卡尔坐标系中,分别记作yi:
![](https://img-blog.csdnimg.cn/img_convert/6c31826c497af53c86d723adffc8e042.png)
其次,把要猜测的线段长度的真实值用平行于横轴的直线来表示(因为是猜测的,所以用虚线来画),记作y:
![](https://img-blog.csdnimg.cn/img_convert/3d8c52b187989d4971d1507fcc493002.png)
每个点都向y做垂线,垂线的长度就是|y-yi|,也可以理解为测量值和真实值之间的误差:
![](https://img-blog.csdnimg.cn/img_convert/0939bf44f2cd38cbc56c20caab3d55ae.png)
因为误差是长度,还要取绝对值,计算起来麻烦,就干脆用平方来代表误差:
![](https://img-blog.csdnimg.cn/img_convert/b5b00695df23669943ace36d30aac0f2.png)
总的误差的平方就是:
![](https://img-blog.csdnimg.cn/img_convert/4594fcdf1ed321bc8022253deca29bcc.png)
因为y是猜测的,所以可以不断变换:
![](https://img-blog.csdnimg.cn/img_convert/cd4dfd483b885d2e456f49ca342a9f97.gif)
自然,总的误差也是在不断变化的。
![](https://img-blog.csdnimg.cn/img_convert/d6474d8989dfb4672d63398100ac6e73.png)
法国数学家,阿德里安-馬里·勒讓德(1752-1833,这个头像有点抽象)提出让总的误差的平方最小的y就是真值,这是基于,如果误差是随机的,应该围绕真值上下波动(关于这点可以看下“如何理解无偏估计?”)。
这就是最小二乘法,即:
![](https://img-blog.csdnimg.cn/img_convert/351cbfcbcd1c82cfaf63f873fb97ba53.png)
这个猜想也蛮符合直觉的,来算一下。
这是一个二次函数,对其求导,导数为0的时候取得最小值:
![](https://img-blog.csdnimg.cn/img_convert/22a1157c365997f53cd9d57c4dd452c8.png)
正好是算术平均数。
原来算术平均数可以让误差最小啊,这下看来选用它显得讲道理了。
以下这种方法:
![](https://img-blog.csdnimg.cn/img_convert/a29ab8aef58d46cb4a4000b85d384722.png)
就是最小二乘法,所谓“二乘”就是平方的意思,台湾直接翻译为最小平方法。
3. 推广
算术平均数只是最小二乘法的特例,适用范围比较狭窄。而最小二乘法用途就广泛。
比如温度与冰淇淋的销量:
![](https://img-blog.csdnimg.cn/img_convert/fbcc48cedaeb66884fe0de7274a7cc7a.png)
看上去像是某种线性关系:
![](https://img-blog.csdnimg.cn/img_convert/858fd3b0c763eb88f47efff83f2f6256.png)
可以假设这种线性关系为:
![](https://img-blog.csdnimg.cn/img_convert/6137885c6c263be5c328035d8869b8e9.png)
通过最小二乘法的思想:
![](https://img-blog.csdnimg.cn/img_convert/dfff45a130a99a20ff517b483fbc92f6.png)
上图的i,x,y分别为:
![](https://img-blog.csdnimg.cn/img_convert/b4932fcc543a00f2b3d4f77bc9a45076.png)
总误差的平方为:
![](https://img-blog.csdnimg.cn/img_convert/a0c37db52c66c6cbc0e12d8a0a661f65.png)
![](https://img-blog.csdnimg.cn/img_convert/41ac3cd19e04d8ad9fd7c442a35e0b7c.png)
这个时候误差取最小值。
对于a,b而言,上述方程组为线性方程组,用之前的数据解出来:
![](https://img-blog.csdnimg.cn/img_convert/6390835d0d33b1aed7ca69bffaa348ea.png)
也就是这根直线:
![](https://img-blog.csdnimg.cn/img_convert/9e98013cad64cbe38b04e9e31cd55e5a.png)
其实,还可以假设:
![](https://img-blog.csdnimg.cn/img_convert/f6e8e484375c0b9340b564968fe3d5b8.png)
在这个假设下,可以根据最小二乘法,算出a,b,c,得到下面这根红色的二次曲线:
![](https://img-blog.csdnimg.cn/img_convert/6327f83afc75fab3e2235f83e8fee356.png)
同一组数据,选择不同的f(x), 通过最小二乘法可以得到不一样的拟合曲线(出处):
![](https://img-blog.csdnimg.cn/img_convert/ff7c9b9528d321fd592e9bc87f9cf8e0.gif)
不同的数据,更可以选择不同的f(x), 通过最小二乘法可以得到不一样的拟合曲线:
![](https://img-blog.csdnimg.cn/img_convert/3637747e6640127827f7ac5c6bb02e58.png)
f(x)也不能选择任意的函数,还是有一些讲究的,这里就不介绍了。
4. 最小二乘法与正态分布
我们对勒让德的猜测,即最小二乘法,仍然抱有怀疑,万一这个猜测是错误的怎么办?
![](https://img-blog.csdnimg.cn/img_convert/c9055525e3a17a14697ccc04fef02335.png)
数学王子高斯(1777-1855)也像我们一样心存怀疑。
高斯换了一个思考框架,通过概率统计那一套来思考。
让我们回到最初测量线段长度的问题。高斯想,通过测量得到了这些值:
![](https://img-blog.csdnimg.cn/img_convert/9404f278f02aa0f11b5b8336d13042a3.png)
每次的测量值xi都和线段长度的真值x之间存在一个误差:
![](https://img-blog.csdnimg.cn/img_convert/1d9bb24ae624a0c2ba6a6cb69e61f0bf.png)
这些误差最终会形成一个概率分布,只是现在不知道误差的概率分布是什么。假设概率密度函数为:
![](https://img-blog.csdnimg.cn/img_convert/5bfebd0b4a1013f0f772cf5abf1b9eda.png)
再假设一个联合概率密度函数,这样方便把所有的测量数据利用起来:
![](https://img-blog.csdnimg.cn/img_convert/9068e048c864be4e5cff998753205f1f.png)
讲到这里,有些同学可能已经看出来了上面似然函数了(关于似然函数以及马上要讲到的极大似然估计,可以参考“如何理解极大似然估计法?”)。
因为L(x)是关于x的函数,并且也是一个概率密度函数(下面分布图形是随便画的):
![](https://img-blog.csdnimg.cn/img_convert/2e687f92257beba88793593223bb3fcd.png)
根据极大似然估计的思想,概率最大的最应该出现(既然都出现了,而我又不是“天选之才”,那么自然不会是发生了小概率事件),也就是应该取到下面这点:
![](https://img-blog.csdnimg.cn/img_convert/6e3b4e7c95239bb3773c7a597374e215.png)
当下面这个式子成立时,取得最大值:
![](https://img-blog.csdnimg.cn/img_convert/339a7a7d0fd977f7eae90fb2b4ce16ad.png)
然后高斯想,最小二乘法给出的答案是:
![](https://img-blog.csdnimg.cn/img_convert/166a5228620d0199e8b598f6212f2be1.png)
![](https://img-blog.csdnimg.cn/img_convert/372785bc443380d49eea2c43637d4dc5.png)
好,现在可以来解这个微分方程了。最终得到:
![](https://img-blog.csdnimg.cn/img_convert/2eb7ed3b36d786b9056a27be37abc7fd.png)
这是什么?这就是正态分布啊。
并且这还是一个充要条件:
![](https://img-blog.csdnimg.cn/img_convert/9f114b00023a90ff20dde74b793e5b88.png)
也就是说,如果误差的分布是正态分布,那么最小二乘法得到的就是最有可能的值。
那么误差的分布是正态分布吗?
我们相信,误差是由于随机的、无数的、独立的、多个因素造成的,比如之前提到的:
不同厂家的尺子的生产精度不同
尺子材质不同,热胀冷缩不一样
测量的时候心情起伏不定
......
那么根据中心极限定理(参考“为什么正态分布如此常见?”),误差的分布就应该是正态分布。
因为高斯的努力,才真正奠定了最小二乘法的重要地位。
例子
最小二乘法也被称作最小平方法,最常用的是普通最小二乘法(Ordinary Least Square),它是一种数学中的优化方法,试图找到一个或一组估计值,使得实际值与估计值的尽可能相似,距离最小,目的是通过已有的数据来预测未知数据。一般通过一条多元一次的直线方程,在二维坐标中即二元一次方程,例如在二维坐标中,有非常多的点分散在其中,试图绘制一条直线,使得这些分散的点到直线上的距离最小。这里的距离最小并非点到直线的垂直距离最短,而是点到直接的y轴距离最短,即通过该点并与y轴平行的直线,点到该y轴平行线与直线交点的距离最短,如下图所示的双向箭头。
![](https://img-blog.csdnimg.cn/img_convert/0c196349cd236482b07ad13b36b9905c.png)
最小二乘法的核心思想是通过最下化误差的平方和,试图找到最可能的函数方程 。例如在二维坐标系中存在五个数据点(10,20)、(11,23)、(12,25)、(13,27)、(14,26),希望找出一条该五个点距离最短的直线,根据二元一次方程:y=ax+b
因此,将五个点分别带入该二元方程得到如下:
20=10a+b
23=11a+b
25=12a+b
27=13a+b
26=14a+b
由于最小二乘法是尽可能使得等号两边的方差值最小,因此 :
![](https://img-blog.csdnimg.cn/img_convert/8968955cbde8055c60e358f4ac6f0279.png)
因此求最小值即可通过对S(a,b)求偏导数获得,并使得一阶倒数的值为0,则:
![](https://img-blog.csdnimg.cn/img_convert/301f164935a818fd50320912455b8594.png)
最小二乘法虽然看似是一个直线方程的问题,但是在实际应用中却应用非常广泛,因为它得到的方程可以视为一个函数模型,该函数模型可以对后续的工作带来极大的便利。例如在某种疾病是在两种条件下发生的,但是需要当这两种条件满足一定关系时才会促发疾病,因此医生就可以通过患病样本获得患病情况下的两种条件值,标记到一个二维坐标中,通过最小二乘法,可以将患病的两种条件通过函数表达出来,从而当有另外一个新疑似患者就医时,则可以根据二元一次方程确定是否可能患有该疾病。
上述过程均是通过线性问题的求解方式进行阐述,但是在更多的时候,需要解决的问题不是一个线性问题,它需要通过多项式拟合的方式进行处理,但是原理和求解方式均一致。虽然最小二乘法易于实现,在各行各业中都被广泛使用,但是它的计算量也比较大,当样本数据不断增加后,计算量会明显增加,在阶数更高时计算量则更为复杂。为解决更多问题,后来也基于最小二乘法衍生出了移动最小二乘法、加权最小二乘法以及偏最小二乘法等。