ARIMA模型简介

ARIMA模型由BoxJenkins于上世纪七十年代提出,是一种著名的时间序列预测方法。ARIMA的含义是单积自回归移动平均过程,其含义为:假设一个随机过程含有d个单位根,其经过d次差分后可以变换为一个平稳的自回归移动平均过程,则该随机过程称为单积(整)自回归移动平均过程。
需要简单介绍一下几个概念:
(1). 平稳随机过程: 若一个随机过程m阶以下的矩的取值全部与时间无关,则称该过程为m阶平稳过程。通常我们使用一阶平稳过程,即随机过程xt<script type="math/tex" id="MathJax-Element-1">{ x_t }</script>的均值mt<script type="math/tex" id="MathJax-Element-2">m_t</script>不随时间变化。

(2) 自回归过程:如果一个剔除均值和确定性成分的线性过程可以表达为

xt=pi=1φixti+ut
<script type="math/tex; mode=display" id="MathJax-Element-3">x_t= ∑_{i=1}^pφ_i x_{t-i} + u_t</script>
其中,φi<script type="math/tex" id="MathJax-Element-4">φ_i</script>是自回归参数,ut<script type="math/tex" id="MathJax-Element-5">u_t</script>是白噪声过程,则称xt<script type="math/tex" id="MathJax-Element-6">x_t</script>为p<script type="math/tex" id="MathJax-Element-7">p</script>阶自回归过程,用AR(p)<script type="math/tex" id="MathJax-Element-8">AR(p)</script>表示。

(3)移动平均过程:如果一个剔除均值和确定性成分的随机过程可以用下式表达:

xt=ut+qi=1θiuti
<script type="math/tex; mode=display" id="MathJax-Element-9">x_t=u_t + ∑_{i=1}^qθ_i u_{t-i} </script>
其中,θi<script type="math/tex" id="MathJax-Element-10">θ_i</script>是自回归参数,ut<script type="math/tex" id="MathJax-Element-11">u_t</script>是白噪声过程,则称上式为q阶移动平均过程,记为MA(q)。之所以成为移动平均,是因为xt<script type="math/tex" id="MathJax-Element-12">x_t</script>是由q+1个ut<script type="math/tex" id="MathJax-Element-13">u_t</script>及其滞后项加权构成的。这个“移动平均”需要和移动平均算子做区分。

(4)自回归移动平均过程:如果一个剔除均值和确定成分的线性随机过程由自回归和移动平均两部分共同构成,则称其为自回归移动平均过程,记为ARMA(p,q),表示如下:

xt=pi=1φixti+ut+qi=1θiuti
<script type="math/tex; mode=display" id="MathJax-Element-14">x_t= ∑_{i=1}^pφ_i x_{t-i} + u_t + ∑_{i=1}^qθ_i u_{t-i}</script>

(5)差分:时间序列变量的本期值与其滞后值相减的运算称为差分。例如:一阶差分:

xt=xtxt1
<script type="math/tex; mode=display" id="MathJax-Element-15">∆x_t= x_t- x_{t-1}</script>
其中,∆称为一阶差分算子。

二次一阶差分表示为:

2xt=xtxt1
<script type="math/tex; mode=display" id="MathJax-Element-4113">∆^2 x_t= ∆x_t- ∆x_{t-1}</script>
由此可以引申出d次一阶差分的表示。

下面,由以上几个概念,解释一下ARIMA的概念:“假设一个随机过程含有d个单位根,其经过d次差分后可以变换为一个平稳自回归移动平均过程,则该随机过程称为单积(整)自回归移动平均过程。”

首先:(1)经过d次差分后,判断该随机过程是否平稳;(2) 找到合适的d之后,xt<script type="math/tex" id="MathJax-Element-4114">x_t</script>转化为平稳的随机过程dxt<script type="math/tex" id="MathJax-Element-4115">∆^d x_t</script> ;(3)dxt<script type="math/tex" id="MathJax-Element-4116">∆^d x_t</script>构建为自回归移动平均过程,ARMA(p,q),即完成了将随机过程xt<script type="math/tex" id="MathJax-Element-4117">x_t</script>表示为ARIMA的流程,构建好的ARIMA过程记做ARIMA(p,d,q)<script type="math/tex" id="MathJax-Element-4118">ARIMA(p,d,q)</script>。p,d,q分别代表自回归阶数、差分次数、移动平均阶数。

实际上,ARIMA模型的构建在于:寻找差分次数d;估计ARMA模型参数。差分次数d不宜过大,否则波动过大。ARMA模型的参数值通过极大似然估计估计参数值。

例如,对一个随机过程xt<script type="math/tex" id="MathJax-Element-4119">x_t</script>的模型估计为ARIMA(2,2,1),则其经过2次差分,包含了2阶的自回归成分(AR(2)),1阶的移动平均成分(MA(1))。假设计算其模型参数,得到:φ1=0.21,φ2=0.04,θ1=0.13<script type="math/tex" id="MathJax-Element-4120">φ_1=0.21, φ_2=0.04, θ_1=0.13</script>,则ARIMA模型对应的表达式为:

yt=0.21yt1+0.04yt2+ut+0.13ut1<script type="math/tex" id="MathJax-Element-4121">y_t = 0.21y_{t-1} + 0.04y_{t-2} + u_t + 0.13u_{t-1}</script>

其中,

yt=2xt
<script type="math/tex; mode=display" id="MathJax-Element-4122">y_t =∆^2 x_t</script>
当需要预测未来的数据时,直接使用预测公式即可。需要说明一点,ut,ut1<script type="math/tex" id="MathJax-Element-4123">u_t, u_{t-1}</script>等这些噪声分量也需要通过最小二乘法等方法估计出来,得到u^tu^t1<script type="math/tex" id="MathJax-Element-4124">\hat u_t,\hat u_{t-1}</script>等,u^t+1,u^t+2<script type="math/tex" id="MathJax-Element-4125">\hat u_{t+1}, \hat u_{t+2}</script>等在t<script type="math/tex" id="MathJax-Element-4126">t</script>时刻之后发生的噪声就估计为u<script type="math/tex" id="MathJax-Element-4127">u</script> 的均值0。

ARIMA算法其实就是线性回归,只不过是通过自身的历史数据进行回归,适用于数据本身存在着较高并且稳定的相关性,特点是简单、短期预测效果不错。

简单写一点,有空再更,后面会写一些自己使用ARIMA的效果。欢迎留言交流:D

参考书目:
《时间序列X-12-ARIMA季节调整–原理与方法》 中国人民银行调查统计司

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐