文章目录
最小二乘法问题
by AlphaDog
引言:最小二乘法是一种数学优化技术。它通过最小化误差平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 。
最小二乘法还可用于曲线拟合,其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
实例1:线性模型
在经济学中,个人的收入与消费之间存在着密切的关系。收入越多,消费水平也越高;收入较少,消费水平也较低。从一个社会整体来看,个人的平均收入u与平均消费v之间大致呈线性关系,若u表示收入,v表示支出,则u,v适合
u = a + b v u=a+bv u=a+bv
其中a,b是两个常数。现要根据一组统计数字,求出a,b
年 | 1 | 2 | 3 |
---|---|---|---|
u | 1.6 | 1.7 | 2.0 |
v | 1.2 | 1.4 | 1.8 |
将u,v的值代入上式得到一个非齐次线性方程组
{ a + 1.2 b = 1.6 , a + 1.4 b = 1.7 , a + 1.8 b = 2.0 \begin{cases}a+1.2b=1.6,\\a+1.4b=1.7,\\a+1.8b=2.0\end{cases} ⎩⎪⎨⎪⎧a+1.2b=1.6,a+1.4b=1.7,a+1.8b=2.0
从第一、第二个方程解出a=1,b=0.5,代入第三个方程:
1 + 1.8 × 0.5 = 1.9 ≠ 2.0 1+1.8\times0.5=1.9\ne 2.0 1+1.8×0.5=1.9=2.0
这说明上述线性方程组无解。现要求a和b尽可能符合实际情形,即使得平方偏差
[ ( a + 1.2 b ) − 1.6 ] 2 + [ ( a + 1.4 b ) − 1.7 ] 2 + [ ( a + 1.8 b ) − 2.0 ] 2 [(a+1.2b)-1.6]^2+[(a+1.4b)-1.7]^2+[(a+1.8b)-2.0]^2 [(a+1.2b)−1.6]2+[(a+1.4b)−1.7]2+[(a+1.8b)−2.0]2
取最小值。这就是最小二乘问题。
下面我们分别用三种方法(极值法
、代数法
、回归法
)讨论:
方法一:极值法
设通过观测或实验得到一列点 ( x i , y i ) ( i = 1 , 2 , ⋯ , n ) (x_{i},y_{i})(i=1,2,\cdots,n) (xi,yi)(i=1,2,⋯,n),它们大体上在一条直线上,即大体上可用直线方程来反映变量x与y之间的对应关系(见图1)。现要确定一直线使得与这 n n n个点的偏差平方和最小(最小二乘方)。
解:设所求直线方程为 y = a x + b y=ax+b y=ax+b,所观测的n个点为 ( x i , y i ) ( i = 1 , 2 , ⋯ , n ) (x_{i},y_{i})(i=1,2,\cdots,n) (xi,yi)(i=1,2,⋯,n)。现要确定a,b使得
f ( a , b ) = ∑ i = 1 n ( a x i + b − y i ) 2 f(a,b)=\displaystyle\sum_{i=1}^{n}(ax_{i}+b-y_{i})^{2} f(a,b)=i=1∑n(axi+b−yi)2
最小。为此,根据二元函数取极值的必要条件,令
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \begin{cases}\…
整理得
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \begin{cases}\…
运用Cramer法则,即得 f ( a , b ) f(a,b) f(a,b)的稳定点
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 y i ∑ i = 1 n x i n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 \bar{a}=\frac{n\displaystyle \sum_{i=1}^{n}x_{i}y_{i}-\sum_{i=1}^{n}x_{i}\sum_{i=1}^{n}y_{i}}{n\displaystyle \sum_{i=1}^{n}x_{i}^{2}-(\sum_{i=1}^{n}x_{i})^{2}}, \bar{b}=\frac{\displaystyle \sum_{i=1}^{n}x_{i}^{2}\sum_{i=1}^{n}y_{i}-\sum_{i=1}^{n}x_{i}y_{i}\sum_{i=1}^{n}x_{i}}{n\displaystyle \sum_{i=1}^{n}x_{i}^{2}-(\sum_{i=1}^{n}x_{i})^{2}} aˉ=ni=1∑nxi2−(i=1∑nxi)2ni=1∑nxiyi−i=1∑nxii=1∑nyi,bˉ=ni=1∑nxi2−(i=1∑nxi)2i=1∑nxi2i=1∑nyi−i=1∑nxiyii=1∑nxi
当 x 1 , x 2 , ⋯ , x n x_{1},x_{2},\cdots,x_{n} x1,x2,⋯,xn不全相等时,由Cauchy不等式可得 n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 > 0 n\displaystyle\sum_{i=1}^{n}x_{i}^{2}-(\sum_{i=1}^{n}x_{i})^{2}>0 ni=1∑nxi2−(i=1∑nxi)2>0。
为确定点 ( a ˉ , b ˉ ) (\bar{a},\bar{b} ) (aˉ,bˉ)是极小值点,计算Hessian矩阵
H = ( f a a f a b f b a f b b ) H=\begin{pmatrix} f_{aa}&f_{ab}\\ f_{ba}&f_{bb} \end{pmatrix} H=(faafbafabfbb)
又因为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ \begin{cases} …
所以Hessian矩阵为正定矩阵,故 f ( a , b ) f(a,b) f(a,b)在点 ( a ˉ , b ˉ ) (\bar{a},\bar{b}) (aˉ,bˉ)取得极小值,也为最小值。
根据式(8)算出实例1的 a = 0.68 , b = 0.77 a=0.68,b=0.77 a=0.68,b=0.77,即
u = 0.77 + 0.68 v u=0.77+0.68v u=0.77+0.68v
方法二:代数方法
**例1:**设n阶矩阵 A = ( a i j ) m × n A=(a_{ij})_{m\times n} A=(aij)m×n,n元二次型
f ( x 1 , x 2 , ⋯ , x n ) = ∑ i = 1 m ( a i 1 x 1 + a i 2 x 2 + ⋯ + a i n x n ) 2 f(x_{1},x_{2},\cdots,x_{n})=\displaystyle\sum_{i=1}^{m}(a_{i1}x_{1}+a_{i2}x_{2}+\cdots+a_{in}x_{n})^{2} f(x1,x2,⋯,xn)=i=1∑m(ai1x1+ai2x2+⋯+ainxn)2
证:1)该二次型对应的对称方阵为A’A;
2)r(A)=r(A’A).
易证。 f ( x 1 , x 2 , ⋯ , x n ) = ( A X ) ′ A X = X ′ A ′ A X f(x_{1},x_{2},\cdots,x_{n})=(AX)'AX=X'A'AX f(x1,x2,⋯,xn)=(AX)′AX=X′A′AX
最小二乘法问题:线性方程组
{ a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 , a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 , ⋱ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m \begin{cases} a_{11}x_{1}+a_{12}x_{2}+\cdots+a_{1n}x_{n}=b_{1},\\ a_{21}x_{1}+a_{22}x_{2}+\cdots+a_{2n}x_{n}=b_{2},\\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ddots\\ a_{m1}x_{1}+a_{m2}x_{2}+\cdots+a_{mn}x_{n}=b_{m} \end{cases} ⎩⎪⎪⎪⎨⎪⎪⎪⎧a11