历史
1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。
高斯使用的最小二乘法的方法发表于1809年他的着作《天体运动论》中。
法国科学家勒让德于1806年独立发明“最小二乘法”,但因不为世人所知而默默无闻。
勒让德曾与高斯为谁最早创立最小二乘法原理发生争执。
1829年,高斯提供了最小二乘法的优化效果强于其他方法的证明,因此被称为高斯-马尔可夫定理。(来自于wikipedia)
原理
在我们研究两个变量(x,y)之间的相互关系时,通常可以得到一系列成对的数据(x1,y1.x2,y2...xm,ym);将这些数据描绘在x-y直角坐标系中,若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。
其中:a0、a1是任意实数
为建立这直线方程就要确定a0和a1,应用《最小二乘法原理》,将实测值Yi与利用计算值Yj(Yj=a0+a1X)(式1-1)的离差(Yi-Yj)的平方和
最小为“优化判据”。
把(式1-1)代入(式1-2)中得:
当最小时,可用函数φ对a0、a1求偏导数,令这两个偏导数等于零。
∑(a0+a1*Xi-Yi)=0(式1-4)
∑Xi(a0+a1*Xi-Yi)=0(式1-5)
亦即:
na0+(∑Xi)a1=∑Yi(式1-6)
(∑Xi)a0+(∑Xi^2)a1=∑(Xi*Yi)(式1-7)
得到的两个关于a0、a1为未知数的两个方程组,解这两个方程组得出:
a0=(∑Yi)/n-a1(∑Xi)/n(式1-8)
a1=[n∑(XiYi)-(∑Xi∑Yi)]/[n∑(Xi^2)-(∑Xi)^2)](式1-9)
这时把a0、a1代入(式1-1)中,此时的(式1-1)就是我们回归的一元线性方程即:数学模型。
在回归过程中,回归的关联式不可能全部通过每个回归数据点(x1,y1.x2,y2...xm,ym),为了判断关联式的好坏,可借助相关系数“R”,统计量“F”,剩余标准偏差“S”进行判断;“R”越趋近于1越好;“F”的绝对值越大越好;“S”越趋近于0越好。
R=[∑XiYi-m(∑Xi/m)(∑Yi/m)]/SQR{[∑Xi2-m(∑Xi/m)2][∑Yi2-m(∑Yi/m)2]}(式1-10)*
在(式1-10)中,m为样本容量,即实验次数;Xi、Yi分别为任意一组实验数据X、Y的数值。
公式
最小二乘法公式
注:以下“平”是指某参数的算数平均值。如:X平——x的算术平均值。
1、∑(X--X平)(Y--Y平)=
∑(XY--X平Y--XY平+X平Y平)=
∑XY--X平∑Y--Y平∑X+nX平Y平=
∑XY--nX平Y平--nX平Y平+nX平Y平=∑XY--nX平Y平;
2、∑(X--X平)^2=
∑(X^2--2XX平+X平^2)=
∑X^2--2nX平^2+nX平^2=∑X^2--nX平^2;
3、Y=kX+b
k=((XY)平--X平*Y平)/((X^2)平--(X平)^2),
=Y平--kX平;
X平=1/n∑Xi,
(XY)平=1/n∑XiYi;
拟合
对给定数据点{(Xi,Yi)}(i=0,1,…,m),在取定的函数类Φ中,求p(x)∈Φ,使误差的平方和E^2最小,E^2=∑[p(Xi)-Yi]^2。从几何意义上讲,就是寻求与给定点{(Xi,Yi)}(i=0,1,…,m)的距离平方和为最小的曲线y=p(x)。函数p(x)称为拟合函数或最小二乘解,求拟合函数p(x)的方法称为曲线拟合的最小二乘法。
最小二乘法的矩阵形式
最小二乘法的矩阵形式为:
其中为的矩阵,为的列向量,为的列向量。如果(方程的个数大于未知量的个数),这个方程系统称为矛盾方程组(OverDeterminedSystem),如果(方程的个数小于未知量的个数),这个系统就是UnderDeterminedSystem。
正常来看,这个方程是没有解的,但在数值计算领域,我们通常是计算,解出其中的。比较直观的做法是求解,但通常比较低效。其中一种常见的解法是对进行QR分解(),其中是正交矩阵(OrthonormalMatrix),是上三角矩阵(UpperTriangularMatrix),则有用MATLAB命令可解得。
最小二乘法的Matlab实现
①一次函数线性拟合使用polyfit(x,y,1)
②多项式函数线性拟合使用polyfit(x,y,n),n为次数
拟合曲线
x=[0.5,1.0,1.5,2.0,2.5,3.0],
y=[1.75,2.45,3.81,4.80,7.00,8.60]。
解:MATLAB程序如下:
x=[0.5,1.0,1.5,2.0,2.5,3.0];
y=[1.75,2.45,3.81,4.80,7.00,8.60];
p=polyfit(x,y,2)
x1=0.5:0.5:3.0;
y1=polyval(p,x1);
plot(x,y,'*r',x1,y1,'-b')
计算结果为:
p=0.56140.82871.1560
即所得多项式为y=0.5614x^2+0.8287x+1.15560
③非线性函数使用
lsqcurvefit(fun,x0,x,y)
a=nlinfit(x,y,fun,b0)
最小二乘法在交通运输学中的运用
交通发生预测的目的是建立分区产生的交通量与分区土地利用、社会经济特征等变量之间的定量关系,推算规划年各分区所产生的交通量。因为一次出行有两个端点,所以我们要分别分析一个区生成的交通和吸引的交通。交通发生预测通常有两种方法:回归分析法和聚类分析法。
回归分析法是根据对因变量与一个或多个自变量的统计分析,建立因变量和自变量的关系,最简单的情况就是一元回归分析,一般式为:Y=α+βX式中Y是因变量,X是自变量,α和β是回归系数。若用上述公式预测小区的交通生成,则以下标i标记所有变量;如果用它研究分区交通吸引,则以下标j标记所有变量。而运用公式的过程中需要利用最小二乘法来求解,上述公式中的回归系数根据最小二乘法可得:
其中,式中的X拔是规划年的自变量值,Y拔是规划年分区交通生成(或吸引)预测值。