最小二乘法在线性和非线性回归中的应用(12.15)

  • 格式:ppt
  • 大小:1.95 MB
  • 文档页数:38

下载文档原格式

  / 38
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
首先求二次多项式拟合:
f ( x) a1x2 a2 x a3
中 的 A (a1, a2, a3) 使得:
10
[ f (xi ) yi ]2 最小
i 1
21
利用MATLAB编程并仿真(二次拟合)
程序法一(利用现成的函数):
clear all;close all; x=2006:1:2015; y=[7689,9440,11555,13060,16038,19670,22154,24622, 27037,29047.2]; %plot,x,y,'o'); hold on p=polyfit(x,y,2); Y=polyval(p,x); plot(x,Y,'r-',x,y,'o'); xlabel(‘x-年份'); ylabel(‘y-亿元'); title(‘湖南省GDP'); r=y-Y; e=r*r';
p=[2.1092, -2.1203e+04, 8.5263e+07, -1.7143e+11, 1.7234e+14, -6.9300e+16]’ 残差平方和:
e=4.149e+05
26
用MATLAB作非线性最小二乘拟合
Matlab的提供了两个求非线性最小二乘拟合的函数: lsqcurvefit和lsqnonlin。两个命令都要先建立M-文件fun.m, 在其中定义函数f(x),但两者定义f(x)的方式是不同的,可参 考例题.
两变量间的关系
确定性关系:两变量间的函数关系 圆的周长与半径的关系:C=2πR 速度时间与路程的关系:L=ST 非确定性关系:两变量在宏观上存在关系, 但并未精确到可以用函数关系式来表达。 青少年的升高与年龄关系 升高与体重的关系 药物浓度与反应率的关系
6
7
8
多元线性回归
第一步:先选定一组函数 r1(x), r2(x), …rm(x), m<n, 令
lsqnonlin用以求含参量x(向量)的向量值函数 f(x)=(f1(x),f2(x),…,fn(x))T 中的参量x,使得
f T (x) f (x) f1(x)2 f2 (x)2 fn (x)2
最小。 其中 fi(x)=f(x,xdatai,ydatai)
=F(x,xdatai)-ydatai
22
程序一仿真结果:
p=[33.0311, -1.3032e+05, 1.2852e+08]’ 残差平方和: e=2.8924e+06
23
clear all; close all;
程序法二(未借用函数):
n=input(‘n=?’); %多项式次数即拟合曲线次数
%x=[1,2,3,4,5,6,7,8,9,10]';
2
线性回归
在统计学中,线性回归(Linear Regression)是利用称为线 性回归方程的最小平方函数对一个或多个自变量和因变量 之间关系进行建模的一种回归分析。这种函数是一个或多 个称为回归系数的模型参数的线性组合。只有一个自变量 的情况称为简单回归,大于一个自变量情况的叫做多元回归。 回归分析中,只包括一个自变量和一个因变量,且二者的 关系可用一条直线近似表示,这种回归分析称为一元线性 回归分析。如果回归分析中包括两个或两个以上的自变量, 且因变量和自变量之间是线性关系,则称为多元线性回归 分析。
f(x)=a1r1(x)+a2r2(x)+ …+amrm(x)
(1)
其中 a1,a2, …am 为待定系数。 第二步: 确定a1,a2, …am 的准则(最小二乘准则):
使n个点(xi,yi) 与曲线 y=f(x) 的距离i 的平方和最小 。
n
n
记 J (a1, a2 , am )
2 i
[ f (xi ) yi ]2
InS InACt
记 InS y, InA a0,C1 a1, x t 则等式变成
y a0 a1x
这样仍可用最小二乘法定出(从而也就定 出了A,C ),得到近似函数
S AeCt
14
下面列出几种常用的线性处理方法,利用最小 二乘法的原理对直线型、抛物线型和指数曲线 型的方程的参数估计方法 。
3
非线性回归 有一类模型,其回归参数不是线性的,也 不能通过转换的方法将其变为线性的参数。 这类模型称为非线性回归模型。在许多实 际问题中,回归函数往往是较复杂的非线 性函数。非线性函数的求解一般可分为将 非线性变换成线性和不能变换成线性两大 类。这里主要讨论可以变换为线性方程的 非线性问题。
4
5
Ins Inp qInt
记 Ins y, Inp a0, a1 q, x Int, 则等式变成
y a0 a1x
这是一个一次多项式,它的系数和可以用最小二乘法求得.
13
二、我们经常希望用函数
S AeCt
去近似一个以给定的列表函数,其中 A,C是待定的参数,这时,我们可以对 等式的两端取对数
所以,曲线拟合的最小二乘法要解决的问题,实际上就是 求以下超定方程组的最小二乘解的问题。
Ra=y
(3)
其中
r1 ( x1 ) rm ( x1 )
R
,
r1 ( xn ) rm ( xn )
a1
a
,
am
y1
y
wk.baidu.com
yn
定理:当RTR可逆时,超定方程组(3)存在最小二乘解, 且即为方程组
即 Ra=y
r11 r12 其中 R
rn1 rn2
r1m , rnm
a1
a
,
am
y1
y
yn
超定方程一般是不存在解的矛盾方程组。
n
如果有向量a使得
(ri1a1 ri2a2 rimam yi )2 达到最小,
i 1
则称a为上述超定方程的最小二乘解。
10
线性最小二乘法的求解
24
程序二仿真结果:(n=2)
p=[33.0311, -1.3032e+05, 1.2852e+08]’ 残差平方和: e=2.8924e+06
两个程序得出的结 论是一致的!
25
五次多项式拟合
p=polyfit(x,y,5);
仿真结果
p=polyfit(x,y,m) m=5
残差平方和: e=4.149e+05
令 (Y C)2 (a bX C)2 为最小值,分别为 a、b、c求
偏导数,并令导数等于0,得到联立方程组解方程组,即 可得到参数的计算公式。
Y na b X c X 2 0 Y X 2 a X b X 2 c X 3 0 Y X 2 a X 2 b X 3 c X 4 0
for j = n:-1:1
X(:,j) = x.*X(:,j+1);%提取第j列元素从j=n最后一列开始
end
p=X\y;%多项式系数
%Y=polyval(p',x);
Y=X*p;
r=y-Y;
e=r'*r;
plot(x,Y,'-',x,y,'ro');
xlabel(‘x')
ylabel(‘y')
title(‘曲线拟合')
可得最小二乘意义下的解。
左除
3.多项式在x处的值y可用以下命令计算:
y=polyval(a,x)
20
例 对湖南省近10年来(2006-2015)的生产总值(GDP) 作m次多项式拟合
年份 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 GDP (亿元) 7689 9440 11555 13060 16038 19670 22154 24622 27037 29047.2
RTRa=RTy
的解:a=(RTR)-1RTy
11
非线性回归
最小二乘法原理是用来求解线性方程组的,非线 性方程经线性化后方可应用该原理。通常在测量 中遇到的问题不一定都是线性问题,必须先把非 线性问题线性化,然后求解。
12
一、有时,我们希望用如下类型的函数:
s ptq
去近似一个由一组观测数据(列表)所描绘的函数,其 中p 和q 是待定的两个参数.显然s已非p和q的线性函数.怎 样线性化呢?为此,我们在等式两端取对数,得到
17
指数曲线型
指数曲线的一般形式为 Y abX
取对数,将指数曲线转化成对数直线形式
lgY lg a X lg b
用最小二乘法估计参数a,b,可有如下方程组
lgY n lg a lg b X ( X lgY ) lg a X lg b X 2
解此方程组,可得参数的对数值,查其反对数,即 可得参数值。
最小二乘法在线性回 归和非线性回归中的
应用
讲解:王可煜 方云熠
长沙理工大学-电气与信息工程学院 电子科学与技术
1
什么是最小二乘法?
最小二乘法是一种数学优化技术。 它通过最小化误差的平方和寻找数 据的最佳函数匹配。利用最小二乘 法可以简便地求得未知的数据,并 使得这些求得的数据与实际数据之 间误差的平方和为最小.
b=2006:1:2015;
x=b';
y=[7689,9440,11555,13060,16038,19670,22154,24622,27037,29047.2]';
%plot(x,y,'ro');
%X=[x'.*x',x',ones(size(x'))];
%p=polyfit(x,y,m)
X(:,n+1) = ones(length(x),1,class(x));
fun是一个事先建立的 定义函数F(x,xdata) 的 M-文件, 自变量为x和 xdata
选项见无 迭代初值 已知数据点 约束优化
28
2. lsqnonlin
已知数据点: xdata=(xdata1,xdata2,…,xdatan) ydata=(ydata1,ydata2,…,ydatan)
29
输入格式为: 1) x= lsqnonlin(‘fun’,x0); 2) x= lsqnonlin (‘fun’,x0,options); 3) x= lsqnonlin (‘fun’,x0,options,‘grad’); 4) [x,options]= lsqnonlin (‘fun’,x0,…); 5) [x,options,funval]= lsqnonlin (‘fun’,x0,…);
18
用MATLAB解回归问题
1、线性最小二乘拟合 2、非线性最小二乘拟合
19
用MATLAB作线性最小二乘拟合
1. 作多项式f(x)=a1xm+ …+amx+am+1拟合,可利用已有程序: a=polyfit(x,y,m)
输入同长度
拟合多项
的数组X,Y
式次数
2. 对超定方程组 Rnmam1 yn1 (m n) ,用 a R \ y
15
直线型
Y 直线方程的一般形式为: a bX
令 (Y C)2 (a bX C)2 为最小值,分别为a和b
求偏导数,并令导数等于0,得到联立方程组。解
方程组,即可得到参数的计算公式 。
a Y bX
b
n X n
Y X Y X 2 ( X )2
16
抛物线型
抛物线方程的一般形式为Y a bX cX 2
中的参变量x(向量),使得
n
2
(F(x, xdatai ) ydatai ) 最小
i 1
27
输入格式为: (1) x = lsqcurvefit (‘fun’,x0,xdata,ydata); (2) x =lsqcurvefit (‘fun’,x0,xdata,ydata,options); (3) x = lsqcurvefit (‘fun’,x0,xdata,ydata,options,’grad’); (4) [x, options] = lsqcurvefit (‘fun’,x0,xdata,ydata,…);
(5) [x, options,funval] = lsqcurvefit (‘fun’,x0,xdata,ydata,…);
(6) [x, options,funval, Jacob] = lsqcurvefit (‘fun’,x0,xdata,ydata,…);
说明:x = lsqcurvefit (‘fun’,x0,xdata,ydata,options);
i 1
i 1
nm
[ ak rk (xi ) yi ]2
(2)
i1 k 1
问题归结为,求 a1,a2, …am 使 J(a1,a2, …am) 最小。
9
线性最小二乘法的求解:预备知识
超定方程组:方程个数大于未知量个数的方程组
r11a1
r12a2
r1m am
y1
(n m)
rn1a1 rn2a2 rnmam yn
1. lsqcurvefit
已知数据点: xdata=(xdata1,xdata2,…,xdatan),
ydata=(ydata1,ydata2,…,ydatan) lsqcurvefit用以求含参量x(向量)的向量值函数
F(x,xdata)=(F(x,xdata1),…,F(x,xdatan))T