标题：最小二乘法
基本公式
最小二乘法的基本  title公式。[1]
历史简介
1801年，意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后，由于谷神星运行至太阳背后，使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星，但是根据大多数人计算的结果来寻找谷神星都没有结果。时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥尔伯斯根据高斯计算出来的轨道重新发现了谷神星。最小二乘法的应用(6张)
高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中。
法国科学家勒让德于1806年独立发现“最小二乘法”，但因不为世人所知而默默无闻。
勒让德曾与高斯为谁最早创立最小二乘法原理发生争执。
1829年，高斯提供了最小二乘法的优化效果强于其他方法的证明，因此被称为高斯-马尔可夫定理。（来自于wikipedia）[1]
原理
在我们研究两个变量（x,y）之间的相互关系时，通常可以得到一系列成对的数据（x1,y1.x2,y2... xm,ym）；将这些数据描绘在x -y直角坐标系中，若发现这些点在一条直线附近，可以令这条直线方程如（式1-1）。
Yj= a0 + a1 Xi （式1-1)
其中：a0、a1 是任意实数
为建立这直线方程就要确定a0和a1，应用《最小二乘法原理》，将实测值Yi与利用（式1-1）计算值（Yj=a0+a1X）的离差（Yi-Yj）的平方和〔∑（Yi - Yj）2〕最小为“优化判据”。
令：φ = ∑（Yi - Yj）2 （式1-2)
把（式1-1）代入（式1-2）中得：
φ = ∑（Yi - a0 - a1Xi)2 （式1-3)
当∑（Yi-Yj）平方最小时，可用函数 φ 对a0、a1求偏导数，令这两个偏导数等于零。
（式1-4)
（式1-5)
亦即：
m a0 + （∑Xi ) a1 = ∑Yi （式1-6)
（∑Xi ) a0 + （∑Xi2 ) a1 = ∑（Xi,Yi) （式1-7)
得到的两个关于a0、 a1为未知数的两个方程组，解这两个方程组得出：
a0 = （∑Yi) / m - a1（∑Xi) / m （式1-8)
a1 = [m∑Xi Yi - （∑Xi ∑Yi)] / [m∑Xi2 - （∑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-1）中，m为样本容量，即实验次数；Xi、Yi分别任意一组实验X、Y的数值。[1]
公式
最小二乘法公式　
注：以下“平”是指某参数的算术平均值。如：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），
b=Y平--kX平；
X平=1/n∑Xi，
(XY）平=1/n∑XiYi；[1]
拟合
对给定数据点{(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）的方法称为曲线拟合的最小二乘法。[1]
最小二乘法的矩阵形式
Ax=b，其中A为nxk的矩阵，x为kx1的列向量，b为nx1的列向量。如果n>k（方程的个数大于未知量的个数），这个方程系统称为Over Determined System，如果n<k（方程的个数小于未知量的个数），这个系统就是Under Determined System。
正常来看，这个方程是没有解的，但在数值计算领域，我们通常是计算 min ||Ax-b||，解出其中的x。比较直观的做法是求解A'Ax=A'b，但通常比较低效。其中一种常见的解法是对A进行QR分解（A=QR），其中Q是nxk正交矩阵（Orthonormal Matrix），R是kxk上三角矩阵（Upper Triangular Matrix），然后min ||Ax-b|| = min ||QRx-b|| = min ||Rx-Q'b||，用MATLAB命令x=R\(Q'*b）可解得x。[1]
最小二乘法的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.5614 0.8287 1.1560
即所得多项式为y=0.5614x^2+0.8287x+1.15560
③非线性函数使用 lsqcurvefit(fun,x0,x,y)[1]
最小二乘法在交通运输学中的运用
交通发生预测的目的是建立分区产生的交通量与分区土地利用、社会经济特征等变量之间的定量关系，推算规划年各分区所产生的交通量。因为一次出行有两个端点，所以我们要分别分析一个区生成的交通和吸引的交通。交通发生预测通常有两种方法：回归分析法和聚类分析法。[1]
回归分析法是根据对因变量与一个或多个自变量的统计分析，建立因变量和自变量的关系，最简单的情况就是一元回归分析，一般式为：Y=α+βX式中Y是因变量，X是自变量，α和β是回归系数。若用上述公式预测小区的交通生成，则以下标 i 标记所有变量；如果用它研究分区交通吸引，则以下标 j 标记所有变量。而运用公式的过程中需要利用最小二乘法来求解，上述公式中的回归系数根据最小二乘法可得：
  title  回归方程的最后结果  回归方程的最后结果
其中，式中的X拔是规划年的自变量值，Y拔是规划年分区交通生成（或吸引）预测值。[1]
课题
从前面的学习中, 我们知道最小二乘法可以用来处理一组数据, 可以从一组测定的数据中寻求变量之间的依赖关系, 这种函数关系称为经验公式. 本课题将介绍最小二乘法的精确定义及如何寻求 与 之间近似成线性关系时的经验公式. 假定实验测得变量之间的 个数据 , , …, , 则在 平面上, 可以得到 个点 , 这种图形称为“散点图”, 从图中可以粗略看出这些点大致散落在某直线近旁, 我们认为 与 之间近似为一线性函数, 下面介绍求解步骤.
考虑函数 , 其中 和 是待定常数. 如果 在一直线上, 可以认为变量之间的关系为 . 但一般说来, 这些点不可能在同一直线上. 记 , 它反映了用直线 来描述 , 时, 计算值 与实际值 产生的偏差. 当然要求偏差越小越好, 但由于 可正可负, 因此不能认为总偏差 时, 函数 就很好地反映了变量之间的关系, 因为此时每个偏差的绝对值可能很大. 为了改进这一缺陷, 就考虑用 来代替 . 但是由于绝对值不易作解析运算, 因此, 进一步用 来度量总偏差. 因偏差的平方和最小可以保证每个偏差都不会很大. 于是问题归结为确定 中的常数 和 , 使 为最小. 用这种方法确定系数 , 的方法称为最小二乘法.
由极值原理得 , 即
解此联立方程得
(*)
问题 I 为研究某一化学反应过程中, 温度 ℃)对产品得率 (%)的影响, 测得数据如下:
温度 ℃)
100 110 120 130 140 150 160 170 180 190
得率 (%)
45 51 54 61 66 70 74 78 85 89
(1) 利用“ListPlot”函数, 绘出数据 的散点图(采用格式: ListPlot[{ , , …, }, Prolog->AbsolutePointSize[3]] );
(2) 利用“Line”函数, 将散点连接起来, 注意观察有何特征? (采用格式: Show[Graphics[Line[{ , , …, }]] , Axes->True ]) ;
(3) 根据公式(*), 利用“Apply”函数及集合的有关运算编写一个小的程序, 求经验公式 ;
(程序编写思路为: 任意给定两个集合A (此处表示温度)、B(此处表示得率), 由公式(*)可定义两个二元函数(集合A和B为其变量)分别表示 和 . 集合A元素求和: Apply[Plus,A] 表示将加法施加到集合A上, 即各元素相加, 例如Apply[Plus,{1,2,3}]=6;Length[A]表示集合A 元素的个数, 即为n; A.B表示两集合元素相乘相加;A*B表示集合A与B元素对应相乘得到的新的集合.)
(4) 在同一张图中显示直线 及散点图;
(5) 估计温度为200时产品得率.
然而, 不少实际问题的观测数据 , , …, 的散点图明显地不能用线性关系来描叙, 但确实散落在某一曲线近旁, 这时可以根据散点图的轮廓和实际经验, 选一条曲线来近似表达 与 的相互关系.
问题 II 下表是美国旧轿车价格的调查资料, 今以 表示轿车的使用年数, (美元)表示相应的平均价格, 求 与 之间的关系.
使用年数
1 2 3 4 5 6 7 8 9 10
平均价格
2651 1943 1494 1087 765 538 484 290 226 204
(1) 利用“ListPlot”函数绘出数据 的散点图, 注意观察有何特征?
(2) 令 , 绘出数据 的散点图, 注意观察有何特征?
(3) 利用“Line”函数, 将散点 连接起来, 说明有何特征?
(4) 利用最小二乘法, 求 与 之间的关系;
(5) 求 与 之间的关系;
(6) 在同一张图中显示散点图及 关于 的图形.
思考与练习
1. 假设一组数据 : , , …, 变量之间近似成线性关系, 试利用集合的有关运算, 编写一简单程序: 对于任意给定的数据集合 , 通过求解极值原理所包含的方程组, 不需要给出 、 计算的表达式, 立即得到 、 的值, 并就本课题 I /(3)进行实验.
注: 利用Transpose函数可以得到数据A的第一个分量的集合, 命令格式为:
先求A的转置, 然后取第一行元素, 即为数据A的第一个分量集合, 例如
(A即为矩阵 )
= (数据A的第一个分量集合)
= (数据A的第二个分量集合)
B-C表示集合B与C对应元素相减所得的集合, 如 = .
2. 最小二乘法在数学上称为曲线拟合, 请使用拟合函数“Fit”重新计算 与 的值, 并与先前的结果作一比较.
注: Fit函数使用格式:
设变量为x, 对数据A进行线性拟合, 如对题1中的A拟合函数为: