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

上传人:b****2 文档编号:2241597 上传时间:2023-05-03 格式:DOCX 页数:14 大小:329.72KB
下载 相关 举报
应用MATLAB进行非线性回归分析报告.docx_第1页
第1页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第2页
第2页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第3页
第3页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第4页
第4页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第5页
第5页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第6页
第6页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第7页
第7页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第8页
第8页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第9页
第9页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第10页
第10页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第11页
第11页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第12页
第12页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第13页
第13页 / 共14页
应用MATLAB进行非线性回归分析报告.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

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

《应用MATLAB进行非线性回归分析报告.docx》由会员分享,可在线阅读,更多相关《应用MATLAB进行非线性回归分析报告.docx(14页珍藏版)》请在冰点文库上搜索。

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

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

序号

x

y

序号

x

y

1

2

106.42

8

11

110.59

2

3

108.20

9

14

110.60

3

4

109.58

10

15

110.90

4

5

109.50

11

16

110.76

5

7

110.00

12

18

111.00

6

8

109.93

13

19

111.20

7

10

110.49

 

 

 

1)1/y=a+b/x

•y=a+blnx

formatlong

x=[23457810111415161819];

y=[106.42108.20109.58109.5110109.93110.49110.59110.60110.9110.76111111.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.008966629680570.00082917436336R2=0.97292374957556

 

第一种方法的程序:

formatlong

x=[23457810111415161819];

y=[106.42108.20109.58109.5110109.93110.49110.59110.60110.9110.76111111.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.008966629680570.00082917436336R2=0.97292374957556

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

第二种方法的程序:

formatlong

x=[23457810111415161819];

y=[106.42108.20109.58109.5110109.93110.49110.59110.60110.9110.76111111.20];

x1=log(x);

y1=y;

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

[b,bint,rint,stats]=regress(y1',x2);

b

z=b

(1)+b

(2)*x1;

yc=z;

n=length(x);

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

R2=1-sum((y-yc).^2)/lyy;

plot(x,y,'k+',x,yc,‘c');

legend('散点图','回归函数')

b=1.0e+002*

1.06314674075167

0.01713977247928

R2=0.87731500489620

第三种方法的程序:

formatlong

x=[23457810111415161819];

y=[106.42108.20109.58109.5110109.93110.49110.59110.60110.9110.76111111.20];

x1=sqrt(x);

y1=y;

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

[b,bint,rint,stats]=regress(y1',x2);

b

z=b

(1)+b

(2)*x1;

yc=z;

n=length(x);

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

R2=1-sum((y-yc).^2)/lyy;

plot(x,y,'k+',x,yc,'k');

legend('散点图','回归函数')

b=1.0e+002*

1.06301275014382

0.01194728720517

R2=0.78514164407253

三种方法的拟合效果比拟:

R2=0.97292374957556

R2=0.87731500489620

R2=0.78514164407253

 

1.原始数据

下表给出了某地区1971—2000年的人口数据〔表1〕。

试分别用Matlab和SPSS软件,对该地区的人口变化进展曲线拟合。

表1某地区人口变化数据

年份

时间变量t=年份-1970

人口y/人

1971

1

33815

1972

2

33981

1973

3

34004

1974

4

34165

1975

5

34212

1976

6

34327

1977

7

34344

1978

8

34458

1979

9

34498

1980

10

34476

1981

11

34483

1982

12

34488

1983

13

34513

1984

14

34497

1985

15

34511

1986

16

34520

1987

17

34507

1988

18

34509

1989

19

34521

1990

20

34513

1991

21

34515

1992

22

34517

1993

23

34519

1994

24

34519

1995

25

34521

1996

26

34521

1997

27

34523

1998

28

34525

1999

29

34525

2000

30

34527

根据上表中的数据,做出散点图,见图1。

图1某地区人口随时间变化的散点图

从图1可以看出,人口随时间的变化呈非线性过程,而且存在一个与横坐标轴平行的渐近线,故可以用Logistic曲线模型进展拟合。

因为Logistic曲线模型的根本形式为:

所以,只要令:

,就可以将其转化为直线模型:

下面,我们分别用Matlab和SPSS软件进展回归分析拟合计算。

2.用Matlab编程进展回归分析拟合计算

源程序〔Nonlinear-Regression-Model.m〕,如下:

clear

clc

%读入人口数据〔1971-2000年〕

y=[338153398134004341653421234327343443445834498344763448334488345133449734511345203450734509345213451334515345173451934519345213452134523345253452534527];

%读入时间变量数据〔t=年份-1970〕

t=[123456789101112131415161718192021222324252627282930];%线性化处理

fort=1:

30,

x(t)=exp(-t);

y(t)=1/y(t,1);

end

%计算,并输出回归系数B

c=zeros(30,1)+1;

X=[c,x'];

B=inv(X'*X)*X'*y

fori=1:

30,

%计算回归拟合值

z(i)=B(1,1)+B(2,1)*x(i);

%计算离差

s(i)=y(i)-sum(y)/30;

%计算误差

w(i)=z(i)-y(i);

end

%计算离差平方和S

S=s*s';

%回归误差平方和Q

Q=w*w';

%计算回归平方和U

U=S-Q;

%计算,并输出F检验值

F=28*U/Q

%计算非线性回归模型的拟合值

forj=1:

30,

Y(j)=1/(B(1,1)+B(2,1)*exp(-j));

end

%输出非线性回归模型的拟合曲线〔Logisic曲线〕

plot(T,Y)

上述程序运行后,输出

〔1〕输出回归系数B与F检验值如下:

B=

1.0e-004*

0.2902

0.0182

F=

47.8774

〔2〕输出Logistic模型拟合曲线

 

总结

文中给出了两道题对这次的论文《应用MATLAB进展非线性回归分析》进展说明,给出了进展非线性回归需要的步骤,画出了描述数据的散点图,参数估计等,通过比拟我们得到了需要的定量关系表达式,画出了拟合曲线。

参考文献

[1]金兰,回归分析与方差分析教学的几点思考[J].统计教育,2006年

[2]王兵团,数学建模根底[M],:

清华大学,2004年

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2