1 / 42
文档名称:

matlab多元非线性回归.doc

格式:doc   大小:2,085KB   页数:42页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

matlab多元非线性回归.doc

上传人:幸福人生 2024/5/9 文件大小:2.04 MB

下载得到文件列表

matlab多元非线性回归.doc

相关文档

文档介绍

文档介绍:该【matlab多元非线性回归 】是由【幸福人生】上传分享,文档一共【42】页,该文档可以免费在线阅读,需要了解更多关于【matlab多元非线性回归 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。matlab多元非线性回归matlab回归(拟合)总结前言1、学三条命令polyfit(x,y,n)---拟合成一元幂函数(一元多次)regress(y,x)----可以多元,nlinfit(x,y,’fun’,beta0)(可用于任何类型的函数,任意多元函数,应用范围最主,最万能的)2、同一个问题,这三条命令都可以使用,但结果肯定是不同的,因为拟合的近似结果,没有唯一的标准的答案。相当于咨询多个专家。3、回归的操作步骤:根据图形(实际点),选配一条恰当的函数形式(类型)---需要数学理论与基础和经验。(并写出该函数表达式的一般形式,含待定系数)------选用某条回归命令求出所有的待定系数。所以可以说,回归就是求待定系数的过程(需确定函数的形式)一、回归命令一元多次拟合polyfit(x,y,n);一元回归为常数项),bint为回归系数的区间估计,r:残差,rint:残差的置信区间,stats:用于检验回归模型的统计量,有四个数值:相关系数r2、F值、与F对应的概率p和残差的方差(前两个越大越好,后两个越小越好),alpha:显著性水平(,即置信水平为95%),(alpha不影响b,只影响bint(区间估计)。它越小,即置信度越高,则bint范围越大。显著水平越高,则区间就越小)(返回五个结果)---如有n个自变量-有误(n个待定系数),则b中就有n+1个系数(含常数项,---第一项为常数项)(b---b的范围/置信区间---残差r---r的置信区间rint-----点估计----区间估计此段上课时不要:----如果的置信区间(bint的第行)不包含0,则在显著水平为时拒绝的假设,认为变量是显著的.*******(而rint残差的区间应包含0则更好)。b,y等均为列向量,x为矩阵(表示了一组实际的数据)必须在x第一列添加一个全1列。----对应于常数项-------而nlinfit不能额外添加全1列。结果的系数就是与此矩阵相对应的(常数项,x1,x2,……xn)。(结果与参数个数:1/5=2/3-----y,x顺序---x要额外添加全1列)而nlinfit:1/3=4------x,y顺序---x不能额外添加全1列,---需编程序,用于模仿需拟合的函数的任意形式,一定两个参数,一为系数数组,二为自变量矩阵(每列为一个自变量)有n个变量---不准确,x中就有n列,再添加一个全1列(相当于常数项),就变为n+1列,则结果中就有n+1个系数。x需要经过加工,如添加全1列,可能还要添加其他需要的变换数据。相关系数r2越接近1,说明回归方程越显著;(r2越大越接近1越好)F越大,说明回归方程越显著;(F越大越好)与F对应的概率p越小越好,一定要P<a时拒绝H0而接受H1,即回归模型成立。乘余(残差)标准差(RMSE)越小越好(此处是残差的方差,还没有开方)(前两个越大越好,后两个越小越好)regress多元(可通过变形而适用于任意函数),15/23顺序(y,x---结果是先常数项,与polyfit相反)y为列向量;x为矩阵,第一列为全1列(即对应于常数项),其余每一列对应于一个变量(或一个含变量的项),即x要配成目标函数的形式(常数项在最前)x中有多少列则结果的函数中就有多少项首先要确定要拟合的函数形式,然后确定待定的系,从常数项开始排列,须构造x(每列对应于函数中的一项,剔除待定系数),拟合就是确定待定系数的过程(当然需先确定函数的型式)重点:regress(y,x)重点与难点是如何加工处理矩阵x。y是函数值,一定是只有一列。也即目标函数的形式是由矩阵X来确定如s=a+b*x1+c*x2+d*x3+e*x1^2+f*x2*x3+g*x1^2,一定有一个常数项,且必须放在最前面(即x的第一列为全1列)X中的每一列对应于目标函数中的一项(目标函数有多少项则x中就有多少列)X=[ones,x1,x2,x3,x1.^2,x2.*x3,x1.?2](剔除待定系数的形式)regress:y/x顺序,矩阵X需要加工处理nlinfit:x/y顺序,X/Y就是原始的数据,不要做任何的加工。(即regress靠矩阵X来确定目标函数的类型形式(所以X很复杂,要作很多处理)而nlinfit是靠程序来确定目标函数的类型形式(所以X就是原始数据,不要做任何处理)例1测16名成年女子的身高与腿长所得数据如下:身高143145146147149150153154155156157158159160162164腿长8885889192939395969897969899100102配成y=a+b*x形式>>x=[143145146147149150153154155156157158159160162164]';>>y=[8885889192939395969897969899100102]';>>plot(x,y,'r+')>>z=x;>>x=[ones(16,1),x];----常数项>>[b,bint,r,rint,stats]=regress(y,x);---处结果与polyfit(x,y,1)相同>>b,bint,stats得结果:b=bint=--------=;的置信区间为[-,],的置信区间为[,];r2=,F=,p=。p<,可知回归模型y=-+.>>[b,bint,r,rint,stats]=regress(Y,X,);-----结果相同>>[b,bint,r,rint,stats]=regress(Y,X,);>>polyfit(x,y,1)-----当为一元时(也只有一组数),则结果与regress是相同的,只是命令中x,y要交换顺序,结果的系数排列顺序完全相反,x中不需要全1列。ans=---此题也可用polyfit求解,杀鸡用牛刀,脖子被切断。3、残差分析,作残差图:>>rcoplot(r,rint)从残差图可以看出,除第二个数据外,其余数据的残差离零点均较近,且残差的置信区间均包含零点,这说明回归模型