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

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用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数据

7

10110.49

•y=a+b ln x

format long

x=[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.00082917436336

R2 =0.97292374957556

第一种方法的程序:

format long

x=[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’)%变换后数据的散点图和回归直线图

n=length(x);

lyy=sum(y.^2)-n*(mean(y))^2;

R2=1-sum((y-yc).^2)/lyy;%模型的拟合优度系数

b = 0.00896662968057

0.00082917436336

R2 =0.97292374957556

用类似的方法可以得出其它三个曲线回归方程,它们分别是:

第二种方法的程序:

format long

x=[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];

x1=log(x);

y1=y;

x2=[ones(13,1) x1'];

相关文档
最新文档