ARMA模型的概念

AR模型有偏自相关函数截尾性质;
MA模型有相关函数截尾性质。
有些因果线性时间序列有与AR和MA类似的表现,
但是不能在低阶实现偏自相关函数截尾或者相关函数截尾。

ARMA模型结合了AR和MA模型,
在对数据拟合优度相近的情况下往往可以得到更简单的模型,
而且不要求偏自相关函数截尾也不要求相关函数截尾。

ARMA(1,1)模型为

Xt=ϕ0+ϕ1Xt1+εt+θ1εt1

Xtϕ1Xt1=ϕ0+εt+θ1εt1

其中|ϕ1|<1, |θ1|<1,
ϕ1θ1
{εt}是独立同分布零均值白噪声列,
εtXt1,Xt2,独立。

一般的ARMA(p,q)类似。

AR(p)可以看成ARMA(p, 0),
MA(q)可以看成是ARMA(0, q)。

在ARMA(1,1)的系数条件中,
|ϕ1|<1是平稳解条件,
|θ1|<1是可逆性条件,
ϕ1θ1是为了模型不至于退化:
模型也可以写成

(1ϕ1B)Xt=ϕ0+(1+θ1B)εt

如果不加这个条件,两边的滞后算子的多项式就可以消去。

ARMA模型的性质

形式地,

11ϕ1z=11ϕ1B=1+θ1z1ϕ1z=1+θ1B1ϕ1B=j=0ϕj1zj,j=0ϕj1Bj,1+(ϕ1+θ1)j=1ϕj11zj,1+(ϕ1+θ1)j=1ϕj11Bj,

于是

Xt===11ϕ1B{ϕ0+(1+θ1B)εt}ϕ01ϕ1+1+θ1B1ϕ1Bεtϕ01ϕ1+εt+(ϕ1+θ1)j=1ϕj11εtj(6.1)

这是因果型线性时间序列,是弱平稳的,满足上述ARMA(1,1)模型方程。

EXt=Var(Xt)=ϕ01ϕ1,σ2(1+(ϕ1+θ1)2j=1(ϕ21)j1)=σ21+θ21+2ϕ1θ11ϕ21

由方差的表达式可知|ϕ1|<1是平稳性的必要条件。

求自协方差函数和自相关函数。
因为协方差与均值无关,
ϕ0只影响到均值,
所以求协方差与自相关函数时可以假定ϕ0=0

Xtϕ1Xt1=εt+θ1εt1(6.2)

在(6.2)两边乘以Xt1并取期望得

γ1ϕ1γ0=θ1E(εt1Xt1)

由(*)可知E(εtXt)=σ2,
所以E(εt1Xt1)=σ2

γ1ϕ1γ0=σ2θ1,

γ1=σ2(ϕ1+θ1)(1+θ1ϕ1)1ϕ21

在(6.2)两边乘以Xtk(k2)并取期望,得

γkϕ1γk1=0,γk=ϕ1γk1=ϕk11γ1

所以ARMA(1,1)的自相关函数为

ρk=⎧⎩⎨⎪⎪(ϕ1+θ1)(1+ϕ1θ1)1+2ϕ1θ1+θ21,ϕ1ρk1=ϕk11ρ1,k=1k2

所以ARMA(1,1)的ACF与AR(1)的ACF很相似,
但是从k=2处才开始负指数衰减。
与AR类似,
自相关函数不能有限步截尾。

ARMA(1,1)的偏自相关函数与MA(1)的偏自相关函数类似,
但负指数衰减从k=2开始,
也不能在有限步截尾。

总之,
ARMA(1,1)的平稳性条件与AR(1)相同,
自相关函数与偏自相关函数均不能有限步截尾
(设ϕ10, θ10)。

一般ARMA模型

一般ARMA模型为

Xt=ϕ0+ϕ1Xt1++ϕpXtp+εt+θ1εt1++θqεtq

其中{ε}为独立同分布零均值白噪声列,
εtXt1,Xt2,独立。
1ϕ1zϕpzp称为特征多项式,
特征多项式的根都在单位园外,这是平稳性条件。
一般要求1+θ1z++θqzq的根也都在单位圆外,
这个条件称为可逆性条件。
两个多项式没有公共根,
否则同一模型可能会有不同的表示。

平稳解的均值为

EXt=ϕ01ϕ1ϕp

ARMA模型辨识

可以逐个从低阶模型尝试,
p+q越小越好,
找到AIC最小的选择,
用精确最大似然或者条件最大似然方法估计参数。
对残差进行白噪声检验以验证模型是否充分。

R的forecast包提供了一个auto.arima()函数,
可以自动进行模型选择。
TSA包提供了一个armasubsets()函数用于模型选择。

Tsay和Tiao(1984)提出了一个对ARMA定阶的辅助工具EACF,
其结果可以用与(p,q)有关的二维表格表示,
结果包含由字母“O”组成的三角形,
锐角顶点在(p,q)位置。如

AR012345MA0XX1XOX2XOOX3XOOOX4XOOOOX5XOOOOO6XOOOOO7XOOOOO

例6.1 考虑3M公司股票从1946年2月到2008年12月的月对数收益率,
共有755个观测。

d <- read_table2(
  "m-3m4608.txt",
  col_types=cols(.default=col_double(),
                 date=col_date(format="%Y%m%d")))
## Warning: `read_table2()` was deprecated in readr 2.0.0.
## ℹ Please use `read_table()` instead.
mmm <- xts(log(1 + d[["rtn"]]), d$date)
rm(d)
tclass(mmm) <- "yearmon"
ts.3m <- ts(coredata(mmm), start=c(1946,2), frequency=12)
head(ts.3m)
##          Series 1
## [1,] -0.081125460
## [2,]  0.018421282
## [3,] -0.105360516
## [4,]  0.190518702
## [5,]  0.005114897
## [6,]  0.073743834
plot(ts.3m, main="3M Monthly Log Return")
abline(h=0, col="gray")


3M公司月对数收益率

图6.1: 3M公司月对数收益率

ACF图形:

forecast::Acf(ts.3m, main="")


3M公司月对数收益率的ACF

图6.2: 3M公司月对数收益率的ACF

ACF很接近于白噪声。

PACF图形:


3M公司月对数收益率的PACF

图6.3: 3M公司月对数收益率的PACF

PACF也比较接近于白噪声但是有比较多的超出界限的值,
尽管超出量不大。

用TSA包提供的eacf()函数辨识模型:

## Registered S3 methods overwritten by 'TSA':
##   method       from    
##   fitted.Arima forecast
##   plot.Arima   forecast
## AR/MA
##   0 1 2 3 4 5 6 7 8 9 10 11 12
## 0 o o x o o x o o o x o  x  o 
## 1 x o x o o x o o o o o  x  o 
## 2 x x x o o x o o o o o  o  o 
## 3 x x x o o o o o o o o  o  o 
## 4 x o x o o o o o o o o  o  o 
## 5 x x x o x o o o o o o  o  o 
## 6 x x x x x o o o o o o  o  o

从上面的结果不易选择ARMA阶。
函数的默认检验系数非零的检验水平是0.05水平。
如果用0.01水平,
则选择p=q=0

TSA包还提供了armasubsets()函数用来选择ARMA模型阶,
办法是用长阶自回归获得新息εt的估计,
然后用普通最小二乘估计ARMA系数,
用回归的自变量选择方法进行模型选择。
如:

resr <- TSA::armasubsets(ts.3m, nar = 6, nma = 12)
plot(resr)

北京大学金融时间序列分析讲义第6章: ARMA模型

选项narnma分别是AR部分和MA部分最多考虑的阶数,
图形中方格的每一行是一种回归子集选择,
默认采用BIC比较不同模型,
可以用scale选项选择其它比较准则,
结果第一行对应于BIC最优的模型,
从结果看,
是仅有截距项和θ12的模型。

用forecasts包的auto.arima()函数定阶:

forecast::auto.arima(ts.3m, max.p = 6, max.q = 6, max.P = 1, max.Q = 1)
## Series: ts.3m 
## ARIMA(3,0,1)(1,0,1)[12] with non-zero mean 
## 
## Coefficients:
##          ar1      ar2      ar3      ma1    sar1     sma1    mean
##       0.0453  -0.0285  -0.0837  -0.1124  0.5319  -0.4435  0.0103
## s.e.  0.3146   0.0417   0.0387   0.3147  0.2885   0.3049  0.0023
## 
## sigma^2 = 0.003998:  log likelihood = 1016.63
## AIC=-2017.25   AICc=-2017.06   BIC=-1980.24

auto.arima()函数选择了一个季节ARMA模型。
参数max.p, max.q, max.P, max.Q分别指定要考虑的模型各个最大阶数。

ARMA模型预测

ARMA(p,q)的预测与AR和MA的预测都有关系。
对AR部分仍是递推地向前预测,
对MA部分,
需要估计新息εt的值。

超前一步预测:

x̂ h(1)=ϕ0+j=1pϕjxh+1j+j=1qθjε̂ h+1j

其中ε̂ i=E(εi|X1,,Xh)

对超前k步预测有

x̂ h(k)=ϕ0+j=1pϕjx̂ h+kj+j=1qθjε̂ h+kj

其中h+kjhx̂ h+kj=xh+kj,
h+kj>hε̂ h+kj=0
预测误差为eh(k)=xh+kx̂ h+k

ARMA模型的三种表示

设ARMA(p,q)模型的系数满足平稳性条件与可逆性条件。

第一种表示:

(1ϕ1BϕpBp)Xt=ϕ0+(1+θ1B++θqBq)εt

ARMA模型的MA表示

用滞后算子的性质,
P(z)=1pj=1ϕpzj,
Q(z)=1+qj=1θqzj

Ψ(z)=Q(z)P(z)=j=0ψjzj,

其中{ψj}绝对可和(实际上,jcj以负指数速度衰减)。
所以

Xt=μ+Ψ(B)εt=μ+j=0ψjεtj, t

这称为ARMA模型的MA表示或者Wold表示。
μ=EXt=ϕ0/P(1)=ϕ0/(1ϕ1ϕp)
ψ0=1
系数{ψj,j=0,1,}称为ARMA模型的脉冲响应函数或者Wold系数。
ψj是脉冲响应函数的意义是,
如果ϵt=1
它将给Xt+j施加一个ψj的增量影响。

ψjj+以负指数速度衰减,
这样的性质是合理的,
即一个时刻发生的事情的影响应该随历史向前推进而迅速降低。

MA表示对估计多步预测的均方误差有影响。
理论上

E(Xh+k|h)=μ+i=0ψi+kεhi(6.3)

其中h是包含{Xs,st}的最小σ代数,
表示到时刻h为止的观测信息,
E(εh+k|h)=0, k1
于是理论的预测误差为

eh(k)=Xh+kE(Xh+k|h)=j=0k1ψjεh+kj

均方误差为

Var(eh(k))=σ2j=0k1ψ2j

因为{ψj}绝对可和,
所以(6.3)中的级数当k时趋于0,
于是长期预测值趋于μ
这称为均值反转。
k是多步预测的均方误差趋于
σ2j=0ψ2j=Var(Xt)
即用均值作为预测的均方误差。

ARMA模型的AR表示

当平稳性与可逆性条件都成立时,

π(z)=P(z)Q(z)

π(z)=j=0πjzj,

{πj}绝对可和,
jπj以负指数速度收敛到0。
π0=1
于是ARMA模型有如下的AR表示

π(B)Xt=ϕ0Q(1)+εt

Xt=ϕ̃ 0π1Xt1π2Xt2+εt

其中ϕ̃ 0=ϕ0/Q(1)=ϕ0/(1+θ1++θq)
这称为ARMA的AR表示或者长阶自回归形式。
这说明平稳可逆ARMA序列可以用自回归模型近似表示。
πj称为ARMA模型的π权重。

附录

文献和历史:

  • EVGENIJ EVGENIEVICH SLUTZKY和GEORGE UDNY YULE在19世纪初提出了MA模型和AR模型。
  • HERMAN WOLD(1938),
    A Study in the Analysis of Stationary Time Series,
    Almquist and Wicksell, Stockholm. 博士论文。
    完善了线性时间序列模型。
  • GEORGE E.P. BOX and GWILYM M. JENKINS(1970),
    Time Series Analysis: Forecasting and Control,
    Holden Day, San Francisco et al.; 2nd enlarged edition 1976.
    本书给出了应用线性时间序列模型的理论与方法。
  • 下面的文献提出,
    一元时间序列模型短期预测常常优于大量经济变量的联立方程的预测:
    CLIVE W.J. GRANGER and PAUL NEWBOLD(1975),
    Economic Forecasting: The Atheist’s Viewpoint, in:
    G.A. RENTON (ed.), Modelling the Economy, Heinemann, London
    pp. 131 – 148.