基于 MATLAB的时间序列建模与预测 -...
Transcript of 基于 MATLAB的时间序列建模与预测 -...
-
收稿日期 : 2003 - 09 - 08
第 22卷 第 4期 计 算 机 仿 真 2005年 4月
文章编号 : 1006 - 9348 (2005) 04 - 0105 - 03
基于 M ATLAB的时间序列建模与预测
韩路跃 ,杜行检(西安交通大学电子与信息工程学院 ,陕西 西安 710049)
摘要 :该文介绍了 MATLAB系统辨识工具箱在时间序列方面的应用。首先叙述了动态数据的分析与处理方法 ,时间序列模
型阶次的判定及建模过程 ,然后给出了利用 Matlab系统辨识工具箱对时间序列进行数据预处理 ,相关分析 , ARMA模型参数
估计 ,以及预报的方法和步骤 ,最后使用该方法对某水厂日供水量进行预测 ,结果说明该方法具有极强的实践意义。
关键词 :时间序列 ;模型 ;系统辨识
中图分类号 : TP391. 4 文献标识码 : A
M odeling and Pred iction of T im e Ser ies Ba sed on M a tlab
HAN Lu - yue, DU Xing - jian(Xi’an J iaotong University, Xi’an Shanxi 710049, China)
ABSTRACT: In this paper the app lication of System Identification Toolbox ofMatlab in time series was introduced.
Firstly, the method for analyzing and dealing with the dynam ic data, the p rocess of rank - determ ining and model -
constructing of time series were discussed. Then, the method and step s of data p retreatment, correlation analyzing,
parameter estimation of ARMA model and forecasting of time series with System Identification Toolbox ofMatlab were
disp layed. A t last the daily water p roviding of a water p lant was p redicted with this method. The result shows that it
is very useful in p ractice.
KEYWO RD S: Time series; Model; System identification
1 引言时间序列是随时间改变而随机地变化的序列。时间序
列分析的目的是找出它的变化规律 ,即线性模型 ,主要有三
种 : AR模型 (自回归模型 )、MA模型 (滑动平均模型 )和 AR2MA模型 (自回归滑动平均模型或混合模型 )。时间序列在
工程中常用于做预报 ,如气象预报、地震预报、水文预报、电
力负荷预报等。例如某地区根据已有的电力负荷数据 ,预报
下一小时的电力负荷 ,以便控制下一小时发电机的发电量。
目前在以上三种模型的实现算法上已有多种方法 ,但是往往
需要工程人员自己编程实现 ,在选择一个最优模型时 ,比较
繁杂。本文介绍了 MATLAB系统辨识工具箱在时间序列建
模及预测方面的应用 ,给广大工程技术人员提供了一种快捷
方便的实现途径。
2 ARM A模型辨识和预测ARMA方法是一种精确度较高的短期时间序列预测方
法。他将预测对象随时间变化形成的序列 ,看作是一个随机
序列。ARMA法的基本思想是 :一串随时间变化而又相互关
联的数字序列 ,可以用相应的模型加以近似描述。通过对相
应数学模型的分析研究 ,能更本质的认识这些动态数据内在
结构和复杂性 ,从而达到在最小方差意义下的最佳预测。
2. 1 ARM A模型的定义
ARMA模型的一般形式为 : xt -φ1 xt - 1 - ⋯ -φp xt - p = at
-θ1 at - 1 - ⋯ -θq at - q用 Bk 表示 k步线性推移算子 ,即 B k xt =
xt - k , Bkat = at - k , B
kc≡c, c为常数
并令
< (B ) = 1 -
-
表 1 ARM A( p, q)模型的序列特征表
AR (p) MA ( q) ARMA (p, q)
自相关函数 拖尾 截尾 k = p处 拖尾
偏自相关函数 截尾 k = p处 拖尾 拖尾
ARMA (p, q)中 p, q参数的确定 :
p, q并不能直接确定 ,而是需要先假定一组值 ,一般是从
(1, 1)开始 ,建立模型 ,然后逐步升高 p, q的值 ,求出一系列
模型 ,并根据 loss function, A IC等准则 ,找出一个最优模型。
这里介绍一种粗略的判断方法 :
P的选择是看平稳序列的偏自相关图。选择有三 :落入
随机区间外的偏自相关个数 ;有效偏自相关的时滞 ;自相关
函数的震荡周期。
q的选择要看平稳序列的自相关图。选择有二 :显著不
为 0的自相关数目 ;自相关函数从 k = q0 开始迅速衰减 ,则 q
= q0。
在实际应用中 ,可以将以上方法结合起来 ,即先根据自
相关图和偏自相关图粗略判断 p, q的值 ,然后在该组值附近
求出一系列模型 ,从中选出一个最优。
2. 3 模型的参数估计
在阶数给定的情形下 ,进行模型参数的估计。模型参数
需要用一个样本做估计。必须指出这里白噪声方差也作为
一个模型参数。在工程计算中 ,只要用样本自协方差函数 rk或样本自相关函数ρk 中的一部分数值。这里不详细介绍。
2. 4 平稳时间序列的预报
所谓预报是指已经知道一个时间序列现在与过去的数
值 ,对将来的数值进行估计。用记号表 ,对时间序列 ⋯Z - 1 ,
Z0 , Z1 ⋯, Zk ⋯Zk + l⋯,其中 k≥1, l≥1。若以观测到 Z1 ⋯, Zk的数值 ,要估计 Zk + l的数值 ,称为在 k时刻作 l步预报 , Zk + l
地估计值记为 Z∧
k + l。预报通常都采用最小方差线性估计的
原则。
2. 5 模型拟合残量的自相关检验
对序列通过了平稳性检验 ,并建立了相应的 ARMA模型
之后 ,为考核所建模性的优劣 ,一般还需对 ARMA模型残量
a1 , a2 , ⋯aN 检验是不是白噪声。也就是说 ,如果经检验确是
白噪声序列 ,则可认为模型是合理的 ,否则 ,就应当进一步改
进模型。
3 基于 M ATLAB系统辨识工具箱MATLAB是有美国的 Math Works公司推出的一个科技
应用软件。他的名字由 MATR IX和 LABORATORY这两个词
的前三个字母组合而成。MATLAB是一种高性能的 ,用于工
程计算的编程软件 ,它把科学计算、结果的可视化和编程都
集中在一个使用非常方便的环境中。
MATLAB的工具箱大约有三十多个 ,属于控制工程类的
工具箱主要有 6个 ,分别是 :系统辨识工具箱、控制系统工具
箱、鲁棒控制工具箱、模型预测控制工具箱、模糊逻辑工具箱
和非线性控制设计模块等。本文主要使用系统辨识工具箱。
MATLAB的系统辨识工具箱提供了进行系统辨识的有
力工具。其中用于时间序列的函数主要有 :
1) arx和 armax函数对模型进行参数估计
ARX的函数格式为 : th = arx( z, nn)
ARMAX函数的格式为 : th = armax( z, nn)
th = armax( z, nn, ’thace’)
2) resid和 p redict函数对模型进行验证和预测
p redict函数的功能为 :根据历史输入输出数据计算辨识
模型的预测输出 ; resid函数
的功能为 :计算模型预测误差并进行相关分析
p redict函数格式 : yp = p redict( z, th)
[ yp, thp red ] = p redict( z, th, k)
resid函数的格式 : [ e, r] = resid ( z, th)
MATLAB系统辨识工具箱还提供 ident GU I ( Graphical
U ser Interface) ,该界面能够形象直观地将系统辨识工具箱中
主要函数的处理结果显示出来 ,在从一系列模型中选择一个
最优模型时尤其方便。需要注意的是 ,在应用于时间序列
时 ,需要用 iddata函数将原始数据进行格式转换 ,方可输入。
MATLAB能够检验时间序列的正态性 ,平稳性和零均值
性。
此外 ,在时间序列的数据预处理和相关分析方面有以下
函数 :
1) ARMA模型数据的预处理
使用 detrend函数对数据进行预处理 ,其功能为 :消除数
据的趋势项。
2)相关分析
使用 autocorr和 parcorr函数来计算 ACF和 PACF。
4 应用实例本文的原始数据是某市自来水公司 5个月的日给水量 ,
预测的方法是根据前 4个月的数据来预测第 5个月的日用
水量。主要步骤为 :
1)输入原始数据
2)对建模用的原始数据进行零均值化 ,平稳化处理 ,然
后进行分析。本文用 ff = dtrend ( f)函数将建模用的原始数据
实现去趋势处理 ,即零均值化 ,平稳化处理 ;
3)用 [ acf, lags1, bounds1 ] = autocorr ( ff)计算置信度为
95%的 acf(自相关函数 ) ,并画出其自相关函数的曲线 ;
4)用 [ pacf, lags1, bounds1 ] = parcorr ( ff)计算置信度为
95%的 pacf (偏自相关函数 ) ,并画出其偏自相关函数的曲
线 ;
5)由 acf(自相关函数 )和 pacf(偏自相关函数 )的拖尾性
可初步判断为 ARMA模型 ;
6)用 system identification toolbox中的 ident GU I或者直
接使用 resid和 p redict函数建立一系列模型并实现一步预
—601—
-
测 ,画出一步预测曲线 ,取 N /10 ( 124 /10)为上限 ,根据 Loss
Function、A IC、FPE等准则来定阶。计算误差的自相关函数
和误差与输入的互相关函数 ,并检验误差是否为白噪声。
某市自来水公司 5月份自来水日用水量的 ARMA模型
的模型辨识结果和预测结果分别如下图所示。最优模型为
ARMA (8, 9)
图 1 原始数据
图 2 去除均值
图 3 自相关函数 acf图
最终建立的模型为 :
D iscrete - time IDPOLY model: A ( q) y( t) = C ( q) e ( t)
A ( q) = 1 - 1. 02 q^- 1 + 1. 198 q^ - 2 + 0. 1011q^ - 3 +
0. 03134q^ - 4 + 0. 07005 q^ - 5 + 0. 5784 q^ - 6
图 4 偏自相关函数 pacf图
图 5 预测结果和实际供水量比较
图 6 残差序列的自相关系数图
- 0. 3342 q^- 7 + 0. 06786 q^- 8
C ( q) = 1 - 0. 7716 q^- 1 + 1. 018 q^- 2 + 0. 3169 q^- 3 -
0. 1037 q^- 4 + 0. 4075 q^ - 5 + 0. 07861 q^ - 6 -
0. 05878 q^- 7 - 0. 01668 q^- 8 - 0. 1733 q^- 9
Loss function 5. 99776e + 007 and FPE 8. 54681e + 007
5 结果分析由一步预测结果图可以看出 , (下转第 182页 )
—701—
-
到 Layer2的 ,结果显示这种方法更利于遗传算法的进化。
其次 ,应用了层次学习的两种方法 LL4和 LL2都比标准
遗传算法更好 ,使得我们对层次学习方法的预测和应用都是
正确的。在最好的两种方法 LL4和 LL2中 ,从图中可以看出
在 70代之前 , LL4比 LL2好 ,这是因为 LL2是前四十代在
Layer1进化的 ,所有的智能体都是在没有对手的情况下训练
的 ;而 LL4是在每一代中的 40%的智能体是在 Layer1进化 ,
进化完后按适应值的大小拷贝到 Layer2和剩下的 60%的智
能体一起来 Layer2进化 ,所以说 LL4是比较平均的 ,在每一
代的进化过程中都使用了层次学习 ,而 LL2在 1到 40代是
在 Layer1进化 , 40到 100代是在 Layer2进化 ,所以 LL2在前
70代中只有 30代是在 Layer2上面进化的 ,总的来说 LL2的
表现没有 LL4好。另外 ,在 70到 100代中 , LL2的表现比
LL4号好 ,说明 LL2在 Layer2上进化一段时间以后总体水平
上来了 ,比 LL4还要好。
最后 , LL4和 LL3总的表现要比 LL1和 LL2好 ,说明应
当将层次学习放在每一代来进行 ,而不要将 Layer1和 Layer2
分开放在遗传算法的不同时期。
4 总结遗传编程和层次学习的方法可以应用在在多智能体系
统中 ,尤其是机器人足球系统中 ,本文应用了层次学习的遗
传编程方法和标准的遗传编程方法的结果做出了对比 ,得出
结论层次学习在机器人足球系统中 ,可以将智能体的行为分
解为更加具体的小行为来进化 ,这种方法是可行的。对于以
后的研究 ,可以考虑在规则库、智能体的公共子树提取等方
面来展开进行。
参考文献 :
[ 1 ] R A Barman, S J Kingdon, J J L ittle, A KMackworth, D K Pai,
M Sahota, H ilkinson, and Y Zhang. DYNAMO: Real - time ex2
periments with multip le mobile robots[M ]. In Intelligent Vehicles
Symposium, Tokyo, July 1993. 261 - 266.
[ 2 ] S Coradeschi and L Karlsson. A role - based decision - mechanism
for team s of reactive and coordinating agents[M ]. RoboCup - 97:
Robot Soccer. World Cup I. 99 - 111. Berlin, Germany: Sp ringer
- Verlag, 1998.
[ 3 ] V Matellan, D Borrajo and C Fernndez. U sing ABC2 in the Robo2
Cup domain [M ]. RoboCup - 97: Robot Soccer. World Cup I.
475 - 482. Berlin, Germany: Sp ringer - Verlag, 1998.
[ 4 ] P Scerri. A Multi - layered Behavior - Based System for Control2
ling RoboCup Agents[M ]. RoboCup - 97: Robot Soccer. World
Cup I. 467 - 474. Berlin, Germany: Sp ringer - Verlag, 1998.
[ 5 ] I Noda, H Matsubara, K H iraki and I Frank. Soccer Server: A
Tool for Research on Multiagent System s [ J ]. App lied A rtificial
Intelligence 12 (2 - 3) : 233 - 250, 1998.
[ 6 ] T Balch. Integrating Learning with Motor Schema - Based Control
for a Robot Soccer Team. RoboCup - 97: Robot Soccer [ M ].
World Cup I. 483 - 491. Berlin, Germany: Sp ringer - Verlag,
1998.
[ 7 ] S Luke, C Hohn, J Farris, G Jackson and J Hendler. Co - evol2
ving Soccer Softbot Team Coordination withGenetic Porgramm ing
[M ]. RoboCup - 97: Robot Soccer. World Cup I. 398 - 411.
Berlin, Germany: Sp ringer - Verlag, 1998.
[ 8 ] P Stone and M Veloso. Layered Learning[ C ]. International Joint
Conference on A rtificial IntelligenceWorkshop on Learning About,
From, and W ith O ther Agents. 1999.
[ 9 ] J R Koza. Genetic Programm ing 2 [M ]. M IT Press, 1994.
[ 10 ] Paul E, U tgoff David J, Stracuzzi. Many - Layered Learning
[ C ]. Department of Computer Science 140 Governor’s D rive U2
niversity of Massachusetts, 1999.
[作者简介 ]
徐 杨 (1978. 8 - ) ,男 (汉族 ) ,贵州人 ,上海交通
大学在读硕士 ,研究方向 :遗传算法 ,遗传编程 ;
任庆生 (1972. 6 - ) ,男 (汉族 ) ,江苏人 ,博士 ,副教
授 ,主要研究方向为计算智能和图像处理 ;
戚飞虎 (1938. 12 - ) ,男 (汉族 ) ,浙江人 ,教授 ,博
士生导师 ,主要研究方向包括人工神经网络、图象和视频处理技术。
(上接第 107页 )
预测效果良好 ,能够完全反映出供水量大小增减的变化趋
势。Matlab在时间序列 建模及预测方面有良好的应用。
实际上 ,以上介绍的内容只是一般常用的 ,在处理一些
比较复杂的模型 ,比如季节性乘积模型 (ARMA (p, d, q) ×
( P, D, Q) )时 ,MATLAB同样提供极大的方便 ,具体应用请参
阅 matlab帮助。matlab应用于实际 ,能够使广大工程技术人
员在一种算法的具体实现和应用上节省大量的时间和精力 ,
从而提高工作效率。
参考文献 :
[ 1 ] 项静怡 ,杜金观 ,史久恩. 动态数据处理———时间序列分析
[M ]. 高等教育出版社 , 1986.
[ 2 ] 汪荣鑫. 随机过程 [M ]. 西安交通大学出版社 , 1987.
[ 3 ] MATLAB 6. 0 程序设计与实例应用 [M ]. 中国铁道出版社 ,
2001.
[ 4 ] Lennart L jung System Identification Toolbox For U se with MATLAB
[M ]. 2002.
[作者简介 ]
韩路跃 (1980 - ) ,男 (汉族 ) ,山西洪洞人 ,硕士研
究生 ,研究方向为计算机控制与仿真。
杜行检 (1958 - ) ,男 (汉族 ) ,陕西西安人 ,副教授 ,
研究方向为计算机控制与仿真。
—281—