预测与决策的数量分析方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
神经网络在多元非线性预测分析中的应用
摘要
在很多实际应用问题中,通常会涉及很多变量,需要研究变量之间的关系,很多时候变量之间的关系是不确定的,需要用一个函数来近似表示这种关系。数据拟合就是根据变量的观察数据研究某些变量之间的近似函数关系,用来帮助我们认识事物的内在规律和本质属性。但在实际应用中经常会越到一些复杂的非线性系统,这些系统状态方程复杂,难以用数学方法准确建模。在这种情况下,多元统计分析的数据拟合方法是基本失效的,但我们可以建立神经网络表达这些非线性系统。该方法把未知系统看成是一个黑箱,用系统输入输出数据训练神经网络,使网络能够表达该未知函数,然后就可以用训练好的神经网络预测系统输出。
关键词:BP神经网络,多元统计分析,径向基网络
一、线性回归问题
用线性回归方法拟合人的耗氧能力y与以下诸因素(x1表示年龄,x2表示体重,x3表示跑1500米所用时间,x4静止时心速,x5表示跑步后心速)之间的关系:
在matlab中做回归分析
编写程序如下:
得到
x
x
1655
x
.
121x
-
-
=
-
.0
-
x
y-
0399
3471
4
.0
5
1587
3
.0
2093
1
0167
.0
.4
2
由分析表可以看出其中x2和x4的p值都远大于0.0001是极不显著的,所以将x2和x4剔除之后利用MA TLAB做回归分析。
剔除变量x2和x4之后得到:
得到方程式:5
x
118x
x
y-
=
-
-
.
.0
3
.0
1561
5694
.4
3254
1
0135
虽然上次剔除了最大显著的线性项,并且整个方程式极显著的,但不认为上式就是最好的回归方程,还应尝试做非线性回归分析。 以下为做二次回归分析得到的分析表:
将上述三种表达式的拟合效果图合并到一个图中可以看到完全二次回归的拟合效果较好,5重和三重线性回归拟合效果差不多。 二、一元非线性回归分析
找出年龄与头尾之间的关系
画出y 与x 之间的散点图,由图可以看出满足Logistic 曲线的形式,在matlab 中调用nlinfit 函数找出变量之间的关系 function y = HeadCir1(beta, x)
y = beta(1) * exp(beta(2) ./ (x + beta(3)));
[beta,r,J,COVB,mse] = nlinfit(x,y,@HeadCir1,[53,-0.2604,0.6276], options);
得到y 与x 的表达式为:))7604
.0/(2595.0exp(376.52+-=x y 以上分析的问题都可以应用多元统计分析理论来解决,但对有些非线性问
题,用传统的统计理论是无法求解的。对多元复杂的非线性系统问题我们可以建立神经网络来模拟复杂非线性系统之间的关系,将复杂的数学表达式存储与网络中,对给定的任一输入通过网络计算之后就可以得到我们想要的输出。
举一个简单的非线性系统如下图所示:
对此我们可以建立神经网络来拟合z 与y 及x 之间的关系。在matlab 中建立两种神经网络(BP 神经网络和径向基神经网络),并将这两种网络的预测输出做比较,对比他们的拟合效果。
BP 神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传递。在前向传递中,输入信号从输入层经隐含层逐层处理,直至输入层。每层的神经元只影响下一层神经元的状态。如果输出层得不到期望输出,则转入反向传播,根据预测误差调整网络权值和阈值,从而使BP 神经网络预测输出不断逼近期望输出。
BP 神经网络的拓扑结构图如下图所示:
X1,X2…Xn 是BP 神经网络的输入值,Y1,Y2…Yn 是网络的预测值,ij w ,jk w 为BP 神经网络的权值。BP 神经网络可以看成是一个非线性函数,网络输入值和预测非标为该函数的因变量和自变量。当输入节点书为N 时,输出节点为M 时,该网络就表达了从N 个自变量到M 个因变量的函数映射关系。
数学计算公式为:
隐含层输出:l j a x
w f H n
j i
ij j ,2,1),(1
=-=∑,其中f 为隐含层激励函数,下面层
序用到的为x
e
x f -+=
11
)( BP 神经网络的预测输出为:m k b w H
O l
j k jk J
k ,2,1,1
=-=
∑=
预测误差:m k O Y e k k k ,2,1,=-=
权值更新:
m
k l j e H w w l
j n i e w i x H H w w k j jk jk m
k k jk j j ij ij ,2,1;2,1,2,1;,2,1,)()1(1
==+===-+=∑=ηη其中η为学习
率。
阈值更新:
m
k e b b l
j e w H H a a k k k k m
k jk j j j j 2,1,2,1,)1(1
=+==-+=∑=
然后判断迭代是否结束,如没有结束则继续训练
算法流程
BP 神经网络在MATLAB 中编写程序如下: