最小二乘法及应用实例

最小二乘法是数学优化技术,用于寻找数据最佳函数匹配。本文详细介绍了最小二乘法在解决线性模型、统计回归和曲线拟合等问题中的应用,包括线性模型的实例、Logistic模型和y=a+blnx+csinx模型的上机实例,通过极值法、代数方法和统计回归模型三种方法进行求解,并提供了相关代码实现。
摘要由CSDN通过智能技术生成

最小二乘法问题

by AlphaDog

引言:最小二乘法是一种数学优化技术。它通过最小化误差平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小 。

最小二乘法还可用于曲线拟合,其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。

实例1:线性模型

在经济学中,个人的收入与消费之间存在着密切的关系。收入越多,消费水平也越高;收入较少,消费水平也较低。从一个社会整体来看,个人的平均收入u与平均消费v之间大致呈线性关系,若u表示收入,v表示支出,则u,v适合
u = a + b v u=a+bv u=a+bv
其中a,b是两个常数。现要根据一组统计数字,求出a,b

表1 收入支出表
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个点的偏差平方和最小(最小二乘方)。

图1

解:设所求直线方程为 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=1n(axi+byi)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=1nxi2(i=1nxi)2ni=1nxiyii=1nxii=1nyi,bˉ=ni=1nxi2(i=1nxi)2i=1nxi2i=1nyii=1nxiyii=1nxi

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=1nxi2(i=1nxi)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=1m(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=XAAX


最小二乘法问题:线性方程组
{ 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值