Transcript
  • 收稿日期 : 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—


Recommended