本章介绍第一类非常重要的模型:自回归滑动平均模型(ARMA)。在真实案例中,ARMA模型也被高频的使用到,更是后面模型的基础,反正,时间序列是绕不过去ARMA模型的。
2.1 一般线性过程
ARMA模型属于一大类过程(模型),即一般线性过程。一听到线性过程,是不是就觉得不难了? 事实也是如此,别怕,干!
那什么叫线性过程呢?对一时间序列{Yt},比如就是2017年06月 27日的上证指数。则其可表示成现在与过去白噪声的加权线性组合:
Yt=et+ψ1et−1+ψ2et−2+…t=0,±1,±2,…
其中{et}代表白噪声序列,{ψj}={ψj:j=0,1,2,…}为一实数列(可认为ψ0为1)。考虑到收敛问题,需加一个限制条件:∑∞j=0ψ2j<+∞。
2.2 滑动平均过程
2.2.1 一阶滑动平均过程
在介绍ARMA模型前,先介绍一些它的简化版本,这样循序渐进,慢慢深入,痛苦也会少一点,快乐也就多一点。
最先介绍的当然是滑动平均(Moving Average, MA),而且是滑动平均的最简版:一阶滑动平均。
对于一阶滑动平均{Xt}:
Xt=et+θet−1t=0,±1,±2,…
通常称{Xt} 为MA(1)序列。
接下来要探讨统计特征啦(以后,再学习一些模型时,都会经历这一步,其实这才是重点啊,因为这些特征告诉我们模型的特性,那也就暗示了模型的应用场景啊!当然,从应用的层面,也不需要你知道怎么推导,故只需关注每个公式最后的等号就可以了,当然如果想加深理解、记忆,每个公式仔细看是有必要的)
E(Yt)=E(et+θet−1)=0
varXt=var(et+θet−1)=σ2(1+θ2)
cov(Xt,Xt−1)=cov(et+θet−1,et−1+θet−2)=θσ2
cov(Xt,Xk)=cov(et+θet−1,ek+θek−1)=0,k≥2.
因此,对于MA(1),自协方差函数γk和自相关系娄ρk:
γ0=σ2(1+θ2),ρ0=1γ1=θσ2,ρ1=θ1+θ2γk=0,ρk=0,k≥2.⎫⎪
⎪
⎪⎬⎪
⎪
⎪⎭

2.2.2 q阶滑动平均— MA(q)序列
任给定q个实数θ1,θ2,…,θq(θq≠0),则MA(q) {Xt}序列:
Xt=et+θ1et−1+θ2et−2+⋯+θqet−q,t=0,±1,±2,…
可见,MA(q)与MA(1)是非常类似的,只不过有变得繁琐而已(注意,是‘繁’不是‘难’)。
比如处协方差函数γk和自相关函数ρk( 因et系数为一,自然地,约定θ0=1):
γk={σ2(θk+θ1θk+⋯+θq−kθq),0≤k≤q0,k>q.
ρk=⎧⎪⎨⎪⎩θk+θ1θk+⋯+θq−kθq1+θ21+⋯+θ2q,0≤k≤q0,k>q.
为使上面的等式可识别(‘可识别’ 可简单的理解为参数可估)需加一些限制,比如:
1+θ1z+θ2z2+⋯+θqzq≠0,|z|≤1.
当然,这个条件对等式成立本身没有影响,只是为了参数可识别而已,对于应用来说,其实可忽略,因为实际应用时,默认参数可识别,如果最终结果不符,我们就会换到其他模型了(尴尬~)。这也是学院派与经验派(或务实派)的一个区别吧。
2.3平稳自回归过程
另一个ARMA的简化版即为自回归(Auto Regression,AR)过程。如MA我们先介绍一阶自回归(AR(1))开始。
2.3.1 一阶自回归过程
对于一阶自回归序列{Xt}(AR(1)):
Xt−ϕXt−1=et,t=0,±1,±2,…
其中白噪声{et} ~ WN(0,σ2),也被称为新息项,因其是过去所不包含的,新加入的;|ϕ|<1, 否则会发生‘爆炸’,可以很容易知道,忽略白噪声,上式就是一个以ϕ为等比的数列,假设 ϕ=1.5咱们来看下(9)式的一段图像(假设X0=0):

上图可以看到,t还没到20, Xt 已经达到-1000了。
正如刚刚提到,AR序列类似等比数列:
Xt=ϕXt−1+et=et+ϕ(ϕXt−2+et−1)=et+ϕet−1+ϕ2Xt−2⋮⋮⋮=N∑i=0ϕiet−i+ϕN+1Xt−N−1, (N≥1)
注意,这里还是要求|ϕ|<1.
于是:
Xt=∞∑i=0ϕiet−i,t=0,±1,±2,…
故,{Xt}又被称为指数平滑序列。
对(9)式可写成:
Xt=ϕXt−1+et
对两边求方差即可得到:
γ0=ϕ2γ0+σ2
对γ0求解:
γ0=σ21−ϕ2
γk=E(XtXt−k)−EXtEXt−k=E(∞∑i=0ϕiet−i∞∑j=0ϕjet−k−j)−0=E(∞∑i=0∞∑j=0ϕi+jet−iet−k−j)=∞∑i=0∞∑j=0ϕi+jE(et−iet−k−j)=∞∑j=0ϕj+k+jσ2(其实这里有个trick,即i=j+k)=ϕkσ21−ϕ2=ϕkγ0.k=0,1,2,…
再强调一遍,如果只是想了解下时间序列,只是想应用,那就只关注等式的最后一个等号就可以了。
上式为自协方差函数,根据γk,可求得:
ρk=γkγ0=ϕk,k=0,1,2,…
2.3.2 p阶平稳自回归序列
怎么样,公式有点多,醉没醉?可以休息下再看,什么再来一壶,OK!AR(p)继续!
AR(p)序列{Xt}:
Xt−ϕ1Xt−⋯−ϕpXt−p=et,t=0,±1,±2,…
其中ϕ1,ϕ2,…ϕp为p个实数,平稳性条件:1−ϕ1z−…ϕpzp≠0, |z|≤1
对于线性表示,经过‘不太复杂’的推导,可得:
Xt=et+ψ1et−1+ψ2et−2+…
其中系数{ψj:j=1,2,…}由下式确定:
11−ϕ1z−⋯−ϕpzp=1+ψ1z+ψ2z2+…
利用{Xt}的线性表式(16)式,可得一个重要等式:
E(Xt−ket)=0,k=1,2,…
下面来求解AR(p)序列的自相关系数ρk:
在(15)式两边同乘Xt−k,(K≥1),
XtXt−k−ϕ1Xt−1Xt−k−⋯−ϕpXt−pXt−k=Xt−ket
两边同求数学期望:
γk−ϕ1γk−1−⋯−ϕpγk−p=0,k=1,2,…
同除γ0:
ρk=ϕ1ρk−1+⋯+ϕpρk−p,k=1,2,…
分别令 k=1,2,…,p,可得如下线性方程组:
ρ1=ϕ1+ϕ2ρ1+⋯+ϕpρp−1ρ2=ϕ1ρ1+ϕ2+⋯+ϕpρp−2⋮⋮⋮⋮ρp−1=ϕ1ρp−2+ϕ2ρp−3+⋯+ϕpρ1ρp=ϕ1ρp−1+ϕ2ρp−2+⋯+ϕp⎫⎪
⎪
⎪
⎪
⎪
⎪
⎪⎬⎪
⎪
⎪
⎪
⎪
⎪
⎪⎭
这就是著名的Yule-Walker方程。
上式写成矩阵形式更方便记忆:
⎛⎜
⎜
⎜
⎜⎝1ρ1…ρp−1ρ11…ρp−2⋮⋮⋮⋮ρp−1ρp−2…1⎞⎟
⎟
⎟
⎟⎠⎛⎜
⎜
⎜
⎜⎝ϕ1ϕ2⋮ ϕp⎞⎟
⎟
⎟
⎟⎠=⎛⎜
⎜
⎜
⎜⎝ρ1ρ2⋮ ρp⎞⎟
⎟
⎟
⎟⎠
全是公式?!怎么搞?!举了例子呗:
例:设AR(2)序列{XT}:
Xt−Xt−1+14Xt−2=et,t=0,±1,±2,…
其中{et}∼WN(0,1). 试求{Xt}的自相关系数ρ1,ρ2.
解:
可知:ϕ1=1,ϕ2=−14.
则:
(1ρ1ρ11)(ϕ1ϕ2)=(ρ1ρ2)
解得:
ρ1=45,ρ2=1120
对时间序列建模,我们一般是要求回归参数ϕk的。此问题对于MA(q)序列并不平凡,但对AR(p)序列,就相对容易得多,这也是为什么AR(p)序列更加常用的原因。有些同学可能会说,不就是对Yule-Walker方程求解嘛,比如矩阵形式,求个逆就OK了,Bingo!答对了,but,上面式子中的自相关系数ρk是用ϕk表示的,低阶可能还好解,高阶就等着崩溃吧,所以实际数值计算过程中,并不用这种理论上可行,但实际难于操作的方式,而是用一种叫递推迭代算法(Durbin-Levinson算法)。
这里只给出公式就够了:
ϕ1,1=ρ1,ϕk+1,k+1=ρk+1−ϕk,1ρk−⋯−ϕk,kρ11−ϕk,1ρ1−⋯−ϕk,kρk,1≤k≤p−1ϕk+1,j=ϕk,j−ϕk+1,k+1ϕk,k+1−j,1≤j≤k⎫⎪
⎪
⎪⎬⎪
⎪
⎪⎭
2.4 平稳自回归滑动平均序列
Finaly, 终于到了自回归滑动平均(Auto Regression Moving Average,ARMA(p,q))序列{Xt},当然上面也都是ARMA序列,只不过是简化版本而已。
ARMA(p,q)序列是满足下面差分方程的序列(参数意义同上):
Xt−ϕ1Xt−1−⋯−ϕpXt−p=et+θ1et−1+⋯+θqet−q
为了可识别,需有些限制条件:
(z)=1−ϕ1z−⋯−ϕpzp≠0,|z|≤1Θ(z)=1+θ1z+⋯+θqzq≠0,|z|≤1Φ(z)与Θ(z)互质⎫⎪⎬⎪⎭
2.5 总结
今天讲了ARMA(p,q)模型,这个模型其实还是基础模型,但我与大家同感,尽管是基础模型,可还是很复杂,没办法,时间序列这一数据类型决定了其相关的模型是不平凡的。
不过,也不用担心,虽然公式多了点(是在我尽力规避不必要公式后,还有这么多,😢),你只需要知道每个公式最后的等号就好了(这是第三遍了,足见其重要😜)。
模型逻辑还是清晰的,AR,MA,弄懂,ARMA可简单理解成二者的合并(虽然推导方式不一样了),这样便于理解。模型阶数实际中一般不会很大,所以也不用担公式复杂,不易应用。
最后一句: Hold住,也许下一个改世界的人就是你。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库