辨识模型ARMA、ARMAX、ARIMA、ARIMAX

    在 Simulink 中使用内置多种模块实现估计模型、状态估计器和递归模型,以执行系统分析和控制设计的任务,在学习过程中遇到ARMAX模型,查阅资料后做一辨识。、

    在Matlab命令行窗口输入

>>help armax

    可得armax( )函数的作用是在时域内预测ARMAX多项式模型,那么ARMAX模型是什么呢?

△首先,理解“序列平稳性”的概念:

        ①平稳性就是要求经样本时间序列所得到的拟合曲线在未来一段期间内仍能顺着现有的形态“惯性”地延续下去;平稳性要求样本时间序列的均值和方差不发生明显变化

        ②严平稳:只有当时间序列的所有统计性质不变,该序列才能被认为严格平稳。如:白噪声(正态),无论怎么取,都是期望为0,方差为1。

        ③弱平稳(宽平稳):期望与相关系数(依赖性)不变,未来某时刻t的值x_{t}要依赖于它过去的信息,所以需要依赖性(弱平稳的研究在于时间间隔,与时间起始点无关)。实际数据大部分都是弱平稳。

        ④平稳序列:序列中的各观察值基本上在某个固定的水平上波动,其波动可以看成是随机的,其联合概率分布函数不随时间改变,通常情况下时间序列分析讨论的是弱平稳序列

△常见的时间序列预测方法:

    AR( Autoregressive model)︰自回归模型,是一种线性模型,用于平稳序列。

        模型方程可表述为:x_{t}= \phi _{0} +\phi_{1}x_{t-1} +\phi_{2}x_{t-2} + ... +\phi _{p}x_{t-p} + \varepsilon _{t}

        即x_{t}是基于历史数据x_{t-1},...,x_{t-p}的预测,\phi _{0},...,\phi _{p}为对应的历史项对预测值的影响权重,\varepsilon _{t}为t时刻的随机扰动。


    MA(moving average model):滑动平均模型,也用于平稳序列,其中使用趋势移动平均法建  立直线趋势的预测模型。

        模型方程可表述为:x_{t}= \mu + \varepsilon _{t}-\theta _{1}\varepsilon _{t-1}-\theta _{2}\varepsilon _{t-2}-...--\theta _{q}\varepsilon _{t-q}

        即MA模型中x_{t}的预测与历史项的取值无关,而与当前时刻向前推q项的随机扰动有关,\theta _{1},...,\theta _{q}为对应的影响权重。


    ARMA(Autoregressive moving average model):自回归滑动平均模型,是研究时间序列的重要方法,由自回归模型(简称AR模型)与移动平均模型(简称MA模型)为基础混合"构成。

        模型方程可表述为:x_{t}= \phi _{0} +\phi_{1}x_{t-1} +\phi_{2}x_{t-2} + ... +\phi _{p}x_{t-p} + \varepsilon _{t}-\theta _{1}\varepsilon _{t-1}-\theta _{2}\varepsilon _{t-2}-...--\theta _{q}\varepsilon _{t-q}

        表示对于模型的预测既与历史项有关,也与前q项的随机扰动有关。

    ARIMA(Autoregressive Integrated Moving Average Model):自回归积分滑动平均模型,用于非平稳序列模型。模型的原理为:先将非平稳序列经过d 阶差分得到平稳序列,对得到的平稳序列进行ARMA的模型预测。

        对于一个非平稳序列模型,若必须对时间序列做 d 阶差分才能得到一个平稳序列,则使用ARIMA(p,d,q)模型,其中 d 是差分的阶数,p为自回归项数,q为移动平均项数。


    GARCH(Generalized Autoregressive Conditionally Heteroskedastic ):GARCH模型称为广义ARCH模型广义回归模型,对误差的方差建模,适用于波动性的分析和预测。

 

 

ARMAX(Autoregressive Moving Average with Extra Input):带额外输入(可理解为外部干扰项)的自回归移动平均模型,模型结构为


 

    矩阵表示可简化为:

    其中,y(t)——随时间的输出值

           na——系统极点个数

           nb——系统零点个数 + 1

           nc——系数C的个数

           nk——在输入影响输出之前(也称系统的死区时间)发生的输入样本数

           y(t−1)…y(t−na) ——当前输出所依赖的先前的一系列输出

           u(t−nk)…u(t−nk−nb+1)——当前输出所依赖的先前和延迟的一系列输入

           e(t−1)…e(t−nc)——白噪声干扰值

      参数na、nb和nc是ARMAX模型的阶数,nk是延迟值。q是延迟因子,q的几次方作用在yt上,yt就倒退几个时间,如q^3* yt= y( t-3)。其中,

辨识模型ARMA、ARMAX、ARIMA、ARIMAX_第1张图片

 ARMA(自回归移动平均)模型可以看做是干扰输入为0的ARMAX模型的特例。ARMA单输出模型结构由以下等式给出:

A(q)y(t)=C(q)e(t)

ARIMAX(带额外输入的自回归积分移动平均)模型结构与ARMAX模型相似,只是它在噪声e(t)中包含一个积分器,积分噪声用于非平稳干扰的系统:

ARIMA(自回归综合移动平均)模型结构是无输入ARIMAX模型的简化:

    回到Matlab的函数使用:sys = armax(data,[na nb nc nk])

    sys为输出的预测模型,模型特性包括状态方程、估计协方差(参数不确定性)、估计数据与测量数据之间的拟合优度等。

你可能感兴趣的:(回归,数据挖掘,人工智能)