应用MATLAB进行非线性回归分析资料讲解文档格式.docx
《应用MATLAB进行非线性回归分析资料讲解文档格式.docx》由会员分享,可在线阅读,更多相关《应用MATLAB进行非线性回归分析资料讲解文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
一、一元非线性回归分析的求解思路:
•求解函数类型并检验。
•求解未知参数。
可化曲线回归为直线回归,用最小二乘法求解;
可化曲线回归为多项式回归。
二、回归曲线函数类型的选取和检验
1、直接判断法
2、作图观察法,与典型曲线比较,确定其属于何种类型,然后检验。
3、直接检验法(适应于待求参数不多的情况)
4、表差法(适应于多想式回归,含有常数项多于两个的情况)
三、化曲线回归为直线回归问题
用直线检验法或表差法检验的曲线回归方程都可以通过变量代换转化为直线回归方程,利用线性回归分析方法可求得相应的参数估计值。
题目:
例8.5.1
炼钢厂出钢水时用的钢包,在使用过程中由于钢水及炉渣对耐火材料的浸蚀,其容积不断增大。
现在钢包的容积用盛满钢水时的重量y(kg)表示,相应的试验次数用x表示。
数据见表8.5.1,要找出y与x的定量关系表达式。
表8.5.1钢包的重量y与试验次数x数据
序号
x
y
1
2
106.42
8
11
110.59
3
108.20
9
14
110.60
4
109.58
10
15
110.90
5
109.50
16
110.76
7
110.00
12
18
111.00
6
109.93
13
19
111.20
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.00896662968057
0.00082917436336
R2=0.97292374957556
第一种方法的程序:
%数据的散点图
n=length(x);
lyy=sum(y.^2)-n*(mean(y))^2;
0.00082917436336
用类似的方法可以得出其它三个曲线回归方程,它们分别是:
第二种方法的程序:
x1=log(x);
y1=y;
b
yc=z;
plot(x,y,'
k+'
x,yc,‘c'
);
b=1.0e+002*
1.06314674075167
0.01713977247928
R2=0.87731500489620
第三种方法的程序:
x1=sqrt(x);
x,yc,'
k'
1.06301275014382
0.01194728720517
R2=0.78514164407253
三种方法的拟合效果比较:
1.原始数据
下表给出了某地区1971—2000年的人口数据(表1)。
试分别用Matlab和SPSS软件,对该地区的人口变化进行曲线拟合。
表1某地区人口变化数据
年份
时间变量t=年份-1970
人口y/人
1971
33815
1972
33981
1973
34004
1974
34165
1975
34212
1976
34327
1977
34344
1978
34458
1979
34498
1980
34476
1981
34483
1982
34488
1983
34513
1984
34497
1985
34511
1986
34520
1987
17
34507
1988
34509
1989
34521
1990
20
1991
21
34515
1992
22
34517
1993
23
34519
1994
24
1995
25
1996
26
1997
27
34523
1998
28
34525
1999
29
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);
%计算离差平方和S
S=s*s'
;
%回归误差平方和Q
Q=w*w'
%计算回归平方和U
U=S-Q;
%计算,并输出F检验值
F=28*U/Q
%计算非线性回归模型的拟合值
forj=1:
Y(j)=1/(B(1,1)+B(2,1)*exp(-j));
%输出非线性回归模型的拟合曲线(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年