1
第 29卷第 2期
2009年 3月
云南师范大学学报
Journal of Yunnan Normal University
Vol. 29 No. 2
Mar. 2009
基于 MATLAB的多元非线性回归模型
董大校
(临沧师范高等专科学校 ,云南 临沧 6770000)
3
摘 要 : MATLAB是源于矩阵运算的一种高度集成的计算机语言 。它提供了强大的科学运算 、灵活的
程序设计流程 、高质量的图形可视化与界面设计 、便捷的与其他程序和语言接口的功能 。文章充分利用
MATLAB统计工具箱的优势 ,通过程序的实现 ,对多元非线性回归模型的未知参数的估计方法以及对估
计后的模型预报做出研究 ,并以实例验证了该方法的有效性 。
关键词 : MATLAB;多元非线性回归 ;最小二乘法 ;统计工具箱
中图分类号 : TP301 文献标识码 : A 文章编号 : 1007 - 9793 (2009) 02 - 0045 - 04
1 预备知识
非线性回归最小二乘法拟合的基本原理 [ 1 ] 。
对给定数据 ( xi , yi ) ( i = 0, 1, …, m ) ,在取定的函数类 Φ中 ,求 p ( x) ∈Φ,使误差 ri = p ( x)
- yi ( i
= 0, 1, …, m ) 的平方和最小 ,即
m
∑
i = ∑
r2
i = 1
m
i = 0
[ p ( xi )
- yi ]2
最小 ,从几何意义上讲 ,就是寻求与给定点 ( xi , yi ) ( i = 0, 1, …, m ) 的距离平方和为最小的曲线 y =
p ( x) (图 1) 。函数 p ( x) 称为拟合 函数或最小二乘解 ,求拟合函数 p ( x) 的方法称为曲线拟合的最小二乘
法 。
2 MATLAB 非线性曲线拟合命令介绍
2
1 nlinfit函数 [ 2 ]
用 nlinfit函数进行非线性最小二乘数据拟合 。该函数使用高斯 —牛顿算法 ,调用格式如下 :
●beta = nlinfit(X, y, fun, beta0) 用最小二乘法估计非线性函数系数 。y为响应值 (因变量 ) 矢量 。
一般地 ,为自变量值组成的设计矩阵 ,每一行对应与 y中的一发个值 。但是 , X 可以是 fun参数能接受的
任何数组 。 fun参数为一函数 ,该函数具有下面的形式
其中 beta为系数矢量 , X为设计矩阵 。 fun为参数返回一个拟合 y值的 yhat矢量 。 beta0为包含系
yhat =myfun ( beta, X)
数初始值的矢量 。
●[ beta, r, J ] = nlinfit(X, y, fun, beta0) 返回拟合系数 ( beta) 、残差 ( r) 、和雅可比矩阵 J,这些参数
可以用于 nlintool函数 ,生成预测值的误差估计 ;或用于 nlparci函数生成系数的误差估计 。
2
2 nlintool函数
使用 nlintool函数可以对数据进行非线性方程拟合并交互图形显示 ,其调用格式如下 :
收稿日期 : 2008 - 10 - 23
作者简介 :董大校 (1965 - ) ,男 ,云南省临沧市人 ,副教授 ,主要从事数学教学科研工作
1
·64·
云南师范大学学报 (自然科学版 )
第 29卷
●nlinfit( x, y, fun, beta0) 为一预测图 ,它提供数据 ( x, y)的非线性曲线拟合 。它用两条红色曲线
来表示预测值的 95%置信区间 。 beta0为一矢量 ,包含参数的初值 。 fun参数为一函数 ,该函数具有 yhat
=myfun ( beta, X)的形式 :
其中 beta为系数矢量 , X为设计矩阵 。
nlintool函数显示一个图形“矢量 ”,其中的每个图形对应于输入矩阵 x的每一列 。响应变量 y为一
列矢量 ,与 x的行数相匹配 。
●nlintool( x, y, FUN , beta0, alpha) 用图形表示预测值的 100 (1 - alpha) %置信区间 。当 x为矩阵
05 生成
时 ,将为每一列单独生成图形 ,应变量 y为一列变量 ,对应于 x的行 。 alpha ( )的默认值为 0
95%置信区间 。
3 nlp redci函数
2
可利用 nlp redci函数计算非线性模型预测值的置信区间 ,其调用格式如下 :
●yp red = nlp redci( FUN , inputs, beta, r, J) 给定拟合参数 ( beta) 、残差 ( r)和和雅可比矩阵 (J) ,返
回预测响应 。输入是非线性函数中独立变量的数值矩阵 。
2
4 nlparci函数
可利用 nlparci函数计算非线性模型中参数估计值的置信区间 。
●nlparci( beta, r, J) 给定拟合参数 ( beta) 、残差 ( r) 、和解处的雅可比矩阵 (J ) ,返回非线性最小二
乘参数估计 ( beta)的 95%置信区间 ci。 nlparci函数使用 nlinfit函数的输出作为输入 。
2
5 regress函数
用 regress函数进行多元线性回归 。
●[ b, bint, r, rint, stats] = regress( y, x, alpha) 给出 bint和 rint的 100 (1 - alpha) %置信区间 。
2
6 stepw ise函数
用 stepw ise函数进行逐步回归 ,它使用交互环境进行分析 。其调用格式如下 :
●stepwise ( x, y, inmodel, penter, p remove) 指定模型的初始状态和要使用的置信区间 。 inmodel为
长度为 x中列数的逻辑矢量 。 inmodel指定包含在初始模型中的自变量 。默认时不包含 x中的列 。pen
ter指定引入自变量的最大 p值 ,默认时为 0
10。
05。p remove指定剔除自变量的最小 p值 ,默认时为 0
3 实例验证
3
1 反应动力学模型
反应动力学中的 Hougen - W atson模型是非线性模型的一个典型例子 。其模型如下 :
ra te =
β1 ·x2 - x3 /β5
1 +β2 ·x1 +β3 ·x2 +β4 ·x3
其中 : β1 ,β2 , …,β5 为未知参数 , x1 , x2 和 x3 为三个输入变量 。三个输入为氢 ( hydrogen) 、n - 戊烷 ( n -
pentane) 、异戊烷 ( isopentane) 。上述模型显然为多元非线性模型 。文件 reaction
mat包含了反应的仿真
数据 。
通过计算可知 ,反应动力学 Hougen - W atson模型中的 5个未知参数为
β1 = 1
2526,β2 = 0
1
最终模型为 : ra te =
3
2 财政收入预测 [ 3 ]
0628,β3 = 0
2526·x2 - x3 /1
04,β4 = 0
1914
1124,β5 = 1
1914
1 + 0
0628·x1 + 0
04·x2 + 0
1124·x3
财政收入与国民收入 、工农业总产值 、人口 、就业人口 、固定资产投资等因素有关 。采用逐步回归分
析构造预测模型 。以财政收入作为因变量 y, 自变量为国民收入 ( x1 ) 、工业总产值 ( x2 ) 、农业总产值
1
1
1
1
1
1
1
1
第 2期
董大校 ,等 : 基于 MATLAB的多元非线性回归模型
·74·
( x3 ) 、总人口 ( x4 ) 、就业人口 ( x5 ) 、固定资产投资 ( x6 ) 。其样本数 n = 30,自变量数 p = 6 。
首先编写非线性函数的 M 函数文件 model
据构成的矩阵 x和财政收入样本数据 y , 取 beta0 = [ 0
03 - 0
非线性拟合图形工具来显示 ,在 MATLAB命令窗口中输入如下命令 :
m 代码 。然后在命令窗口输入由 x1、x2、x3、x4、x5 样本数
35 ];用交互式
50 - 0
01 - 0
02 0
60 0
nlintool(X, Y, ’model’, beta0, 0
由此得到财政收入与各因素之间关系的回归模型 1为 :
01) ;得到 nlintool分析窗口 。
y = 0
5245x1 - 0
0293x2 - 0
631x3 + 0
0113x4 - 0
0231x5 + 0
3652x6
( 1)
对该模型进行多元线性回归检验 ,输入命令 : > > [ b, bint, r, rint, stats] = regress( y, x)
9805 301
stats = 0
结果分析 : bint为各系数的置信区间 。 stats矢量是值分别为相关系数的平方 、F值和显著性概率 p。
0305 0 951
5530
相关系数平方值 R2 = 0
为模型 1中至少有一个自变量的系数不为零 ,因而从总体上模型 1是有意义日的 。
9805,说明模型拟合程度较高 。显著性概率 p = 0 ,小于 0
05,故拒绝零假设 ,认
结果 b给出了回归系数的估计值 ,检查它们的置信区间发现 , x2 系数的置信区间包含了零点 , 表明
回归变量 x2 对变量 Y的影响不是太显著 ,因此从模型中移出次变量 ,对该模型进行逐步回归检验 ,在
MATLAB命令窗口输入并运行命令 : > > stepwise ( x, y)
除了 x1 , x3 , x6 外 ,其他自变量的回归系数置信区间都包含零点 , 保留 x1 , x3 , x6 ,将其他变量移出回
归模型 , R—square = 0
104远远超过了 F检验的
临界值 , p = 0远小于显著性水平 ,这些说明用包含 x1 , x3 , x6 的线性模型来描述 y是合适的 。x1 的回归系
数为 0
408624,常数项由 Intercep给出 ,即 b =
177
382869, x3 的回归系数为 - 0
96%可由模型确定 , F = 417
496975, x6 的回归系数为 0
979645,是指因变量的 97
07 ,利用逐步回归得到的回归模型 2为 :
382869x1 - 0
y = 0
496875x3 + 0
408624x6 + 177
07
( 2)
由于 x1 , x3 , x6 对 y具有较明显的显著性 ,用更为精确的拟合曲线来拟合表示 x1 , x3 , x6 和 y的关系 。
做 x1 , x3 , x6 分别对 y的散点图 ,具体步骤在 MATLAB命令窗口输入命令 :
> > x1 = x (: , 1) ; x3 = x (: , 3) ; x6 = x (: , 6) ; > > subp lot (1, 3, 1) ; p lot ( x1, y, ’+ ’) ; > > subp lot
(1, 3, 2) ; p lot( x3, y, ’+ ’) ; > > subp lot(1, 3, 3) ; p lot( x6, y, ’+ ’)
再做经变换后的散点图 ,对比其线性效果较好的 ,得出如下拟合曲线 :
y = - 71
391 + 0
473x1 ; y = 1620
46 - 6
509x3 + 0
01x2
3 ; y = 141
921 + 1
158x6 ;
在 MATLAB 命令窗口输入如下命令 :
> > subp lot(1, 3, 1) ; > > p lot( x1, - 71
> > subp lot(1, 3, 2) ; > > p lot( x3, 1620
> > subp lot(1, 3, 3) ; > > p lot( x6, 141
对应的 R - S qua re分别为 0
951, 0
887, 0
391 + 0
46 - 6
921 + 1
473
509
158
x1, ’+ ’) ;
x3 + 0
01
x6, ’+ ’)
x3
^2, ’+ ’)
944。从相关系数的值可以看出 ,对应的拟合方程的拟合
程度较高 。所以 ,用拟合后的曲线来代替原来的 x1 , x3 , x6 ,得到如下回归模型 3:
3 + 0
作为对比 ,在引入交互项 ,在 MATLAB 命令窗口输入下面命令 :
1811x1 + 3
2342x3 - 0
y = 0
005x2
4732x6 - 597
4372
( 3)
> > x1 = x (: , 1) ; x2 = x (: , 2) ; x3 = x (: , 3) ; x7 = x1
x2; x8 = x1
x3; > > x = [ x x7 x8 ]; > >
stepwise ( x, y)
加入交互项后 ,利用逐步回归分析 ,从运算结果可得 R - S qua re = 0
9283, p = 0
0000。各项参数值较模型 (2) 、(3)更好 ,所以 ,建立模型 (4)
98665, F = 461
923, RM S E =
27
y = 0
845361x1 - 0
845361x1 - 0
0120252x5 + 0
0120252x5 + 0
0000045x7 - 0
00057x1 x3
00057x8
即 : y = 0
( 4)
从各统计量的数值看 ,模型 (2)比模型 (1)差一点 ,但模型 (2)比模型 (1)更为简单 ,模型 ( 3)较模型
0000045x1 x2 - 0
1
·84·
云南师范大学学报 (自然科学版 )
第 29卷
(1) 、(2)虽然是非线性的回归模型 ,但实际上它的拟合效果并不好 。模型 ( 4)是在加入交互项后建立
的 ,其系数中有的较小 ,几乎为零 ,代入数据进行预测 ,其效果不是很好 。综合上述情形 ,建立的线性回
归模型 (2)更能真实的反映各自变量与因变量之间的关系 。
4 结 语
本文从两方面入手 ,介绍了基于 MATLAB 的多元非线性回归模型参数的求解方法 ,同时也尝试了
2财政收入预测模型并没有表现的像多元线性
通过实验建立多元非线性回归模型的方法 ,虽然对于 3
回归模型那样优秀 ,但是可以提供一种思想与方法 ,在以后的学习与实践中来完善这种思想与方法 。
参 考 文 献 :
[ 1 ] 袁建问
[ 2 ] 苏金明 ,阮沈勇 ,王永利
经济计量学实验 [M ]
北京 :科学出版社 , 2002
87 - 89
MATLAB工程数学 [M ]
北京 :电子工业出版社 , 2005
50 - 83
The M ultivar ia te Non linear Regression M odel Ba sed on M ATLAB
DON G D a - xiao
(L in Cang Teachers’College)
Abstract: MATLAB is the origin of the matrix operations in a highly integrated computer language
It p rovided a powerful scien
tific computing, flexible p rogram design p rocess, high - quality graphics and visual interface design and convenient p rocedures
and language and other interface features
In this paper, we take full advantage ofMATLAB statistic tool box to achieve the multi
variate nonlinear regression model
Key words: MATLAB;Multivariate Nonlinear regression; Least squares; statistic tool box
examp les are used to validate the method is effective
Estimate of the unknown parameters
(上接第 44页 )
En tire Sol ution s of Functiona l Equa tion f 6 ( z) + g6 ( z) + h6 ( z) = 1
SU M in , L I Yu - hua
(Department of Mathematics, Yunnan Normal University, Yunnan Kunm ing 650092)
Abstract: This paper studies the entrie solutions of the functional equation f 6 ( z) + g6 ( z) + h6 ( z) = 1
It is
shown that there is no nonconstant entrie functions with order smaller than one satisfying the equation f ( z) , g
( z) , h ( z) w ith order smaller than one satisfying the equation f 6 ( z) + g6 ( z) + h6 ( z) = 1
Meanwhile a new
brief p roof is given for the known results that if n≥7 there is no nonconstant entrie functions solutions of the
functional equation f n ( z) + gn ( z) + hn ( z) = 1
Key words: Functional equation; Entire function; Value distribution theory