4
稿 日期 : 2 0 0 3 - 0 9 - 0 8 2 2 4 仿 2 0 0 54 文章编号 : 1006 - 9348 (2005) 04 - 0105 - 03 基于 MATLAB的时间序列建模与预测 韩路跃 ,杜行检 ( 西安交通大学电子与信息工程学院 ,陕西 西安 710049) 摘要 : 该文介绍了 MA TLAB 系统辨识工具箱在时间序列方面的应用。首先叙述了动态数据的分析与处理方法 , 时间序列模 型阶次的判定及建模过程 ,然后给出了利用 Matlab系统辨识工具箱对时间序列进行数据预处理 ,相关分析 , ARMA 模型参数 估计 ,以及预报的方法和步骤 ,最后使用该方法对某水厂日供水量进行预测 ,结果说明该方法具有极强的实践意义 。 关键词 : 时间序列 ; 模型 ; 系统辨识 中图分类号 : TP391. 4 文献标识码 :A M odeling and Prediction of Time Series Based on Matlab HAN Lu - yue,DU Xing - jian (Xi’an Jiaotong University, Xi’an Shanxi 710049, China) ABSTRACT: In this paper the application of System Identification Toolbox ofMatlab in time series was introduced. Firstly, the method for analyzing and dealing with the dynamic data, the process of rank - determining and model - constructing of time series were discussed. Then, the method and steps of data pretreatment, correlation analyzing, parameter estimation of ARMA model and forecasting of time serieswith 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. KEYW O RD S: Time series; Model; System identification 1 引言 时间序列是随时间改变而随机地变化的序列。时间序 列分析的目的是找出它的变化规律 , 即线性模型 , 主要有三 : AR 模型 ( 自回归模型 ) MA 模型 ( 滑动平均模型 ) AR2 MA 模型 ( 自回归滑动平均模型或混合模型 ) 。时间序列在 工程中常用于做预报 , 如气象预报、地震预报、水文预报、电 力负荷预报等 。例如某地区根据已有的电力负荷数据 , 预报 下一小时的电力负荷 , 以便控制下一小时发电机的发电量。 目前在以上三种模型的实现算法上已有多种方法 , 但是往往 需要工程人员自己编程实现 , 在选择一个最优模型时 , 比较 繁杂。本文介绍了 MA TLAB 系统辨识工具箱在时间序列建 模及预测方面的应用 ,给广大工程技术人员提供了一种快捷 方便的实现途径 。 2 ARM A 模型辨识和预测 ARMA 方法是一种精确度较高的短期时间序列预测方 法 。他将预测对象随时间变化形成的序列 ,看作是一个随机 序列 。ARMA 法的基本思想是 : 一串随时间变化而又相互关 联的数字序列 ,可以用相应的模型加以近似描述。通过对相 应数学模型的分析研究 ,能更本质的认识这些动态数据内在 结构和复杂性 ,从而达到在最小方差意义下的最佳预测 。 2. 1 ARM A 模型的定义 ARMA 模型的一般形式为 : x t - φ 1 x t -1 - - φ p x t - p = a t - θ 1 a t -1 - - θ q a t - q B k 表示 k步线性推移算子 , B k x t = x t - k ,B k a t = a t - k ,B k cc, c为常数 并令 < (B ) =1- < 1 B - < 2 B 2 - - < p B p θ(B ) =1- θ 1 B - θ 2 B 2 - - θ p B q 则可简记为 : < (B ) x t = θ(B ) a t 这一模型就称作 p阶自回归 - q阶滑动平均混合模型 , 记为 ARMA ( p, q) 模型 , 特殊地 , p =0, 称作纯滑动平均模 , 记为 MA ( q) ; q =0, 称作纯自回归模型 , 记为 AR (p). p = q =0, 模型退化为 x t = a t , {x t }为白噪声列 。 2 . 2 模型阶次的确定 对时间序列的 Xt(t =1, 2, N), 首先要进行相关性分 析。相关性分析的任务是计算序列 { X t}的样本自相关函数 和样本偏相关函数 , 并由他们的截尾性和拖尾性来进行模型 类别的判断。可根据表 1进行模型结构的初选 。 5 0 1

基于 MATLAB的时间序列建模与预测 - pudn.comread.pudn.com/downloads187/sourcecode/others/879106/TIME.pdf · 2009. 8. 15. · 基于matlab的时间序列建模与预测 韩路跃,杜行检

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

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