应用MATLAB进行非线性回归分析..docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
应用MATLAB进行非线性回归分析.

应用MATLAB进行非线性回归分析 摘 要早在十九世纪,英国生物学家兼统计学家高尔顿在研究父与子身高的遗传问题时,发现子代的平均高度又向中心回归大的意思,使得一段时间内人的身高相对稳定。之后回归分析的思想渗透到了数理统计的其他分支中。随着计算机的发展,各种统计软件包的出现,回归分析的应用就越来越广泛。回归分析处理的是变量与变量间的关系。有时,回归函数不是自变量的线性函数,但通过变换可以将之化为线性函数,从而利用一元线性回归对其进行分析,这样的问题是非线性回归问题。下面的第一题:炼钢厂出钢水时用的钢包,在使用过程中由于钢水及炉渣对耐火材料的侵蚀,使其容积不断增大。要找出钢包的容积用盛满钢水时的质量与相应的实验次数的定量关系表达式,就要用到一元非线性回归分析方法。首先我们要对数据进行分析,描出数据的散点图,判断两个变量之间可能的函数关系,对题中的非线性函数,参数估计是最常用的“线性化方法”,即通过某种变换,将方程化为一元线性方程的形式,接着我们就要对得到的一些曲线回归方程进行选择,找出到底哪一个才是更好一点的。此时我们通常可采用两个指标进行选择,第一个是决定系数,第二个是剩余标准差。进而就得到了我们想要的定量关系表达式。第二题:给出了某地区1971—2000年的人口数据,对该地区的人口变化进行曲线拟合。也用到了一元非线性回归的方法。首先我们也要对数据进行分析,描出数据的散点图,然后用MATLAB编程进行回归分析拟合计算输出利用?Logistic模型拟合曲线。 关键词:参数估计,?Logistic模型,MATLAB正文一、一元非线性回归分析的求解思路:求解函数类型并检验。求解未知参数。可化曲线回归为直线回归,用最小二乘法求解;可化曲线回归为多项式回归。二、回归曲线函数类型的选取和检验1、直接判断法2、作图观察法,与典型曲线比较,确定其属于何种类型,然后检验。3、直接检验法(适应于待求参数不多的情况)4、表差法(适应于多想式回归,含有常数项多于两个的情况)三、化曲线回归为直线回归问题 用直线检验法或表差法检验的曲线回归方程都可以通过变量代换转化为直线回归方程,利用线性回归分析方法可求得相应的参数估计值。题目: 例 8.5.1 炼钢厂出钢水时用的钢包,在使用过程中由于钢水及炉渣对耐火材料的浸蚀,其容积不断增大。现在钢包的容积用盛满钢水时的重量y (kg)表示,相应的试验次数用x表示。数据见表8.5.1,要找出y 与x的定量关系表达式。 表8.5.1钢包的重量y与试验次数x数据 序号xy序号xy1210659231086034109.581015110.9045109.501116110.7657110.001218111.0068109.93131911149???1) 1/y=a+b/x y=a+blnxformat longx=[2 3 4 5 7 8 10 11 14 15 16 18 19];y=[106.42 108.20 109.58 109.5 110 109.93 110.49 110.59 110.60 110.9 110.76 111 111.20];plot(x,y,‘k+’);% 数据的散点图x1=1./x;y1=1./y;plot(x1,y1,‘k+’); %变换后数据的散点图x2=[ones(13,1) x1];[b,bint,rint,stats]=regress(y1,x2);z=b(1)+b(2)*x1;yc=1./z;plot(x1,y1,‘k+’,x1,z,‘r’)%变换后数据的散点图和回归直线图变换后数据的散点图及回归直线图R2=1-sum((y-yc).^2)/lyy;%模型的拟合优度系数plot(x,y,‘k+’,x,yc,‘r’)%数据的散点图和回归曲线图legend(散点图,回归函数)b = 0.00896662968057 0.00082917436336R2 =0.97292374957556第一种方法的程序:format longx=[2 3 4 5 7 8 10 11 14 15 16 18 19];y=[106.42 108.20 109.58 109.5 110 109.93 110.49 110.59 110.60 110.9 110.76 111 111.20];plot(x,y,‘k+’);%数据的散点图x1=1./x;y1=1./y;plot(x1,y1,‘k+’); %变换后数据的散点图x2=[ones(13,1) x1];[b,bint,rint,stats]=regress(y1,x2);z=b(1)+b(2)*x1;yc=1./z;plot(x1,y1,‘k+’,x1,z,‘r’)%变换后数据的

文档评论(0)

sdgr + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档