长记忆模型介绍

ACF是时间序列建模的重要参考。
对于ARMA序列,
当滞后k时其样本ACF是负指数速度趋于零的。
对于单位根非平稳列,
其理论ACF无定义(因为自协方差是针对弱平稳列定义的),
其样本ACF在样本量T时每个ρ̂ k都趋于1
k>0)。

有一些平稳时间序列的ACF虽然也随滞后k趋于零,
但是收敛到零的速度比较慢,
只有负幂次kα这样的速度。
这代表着序列的自相关性随着距离变远而减小得比较慢,
称这样的序列是长记忆时间序列。
注意,
长记忆时间序列仍是弱平稳的,
单位根非平稳列虽然远距离的自相关性很强但不称为长记忆。

长记忆时间序列的典型模型是分数差分弱平稳列,模型为

(1B)dXt=ξt, 0.5<d<0.5(11.1)

其中{ξt}是零均值独立同分布白噪声。

类似于ARMA序列平稳解的讨论,
对算子多项式使用复变多项式的泰勒展开来求解。
函数f(z)=(1z)dz=0有如下的泰勒展开:

(1z)d=k=0ψkzk

其中

ψ0=1, ψk=d(d+1)(d+k1)k!

类似地有

(1z)d=k=0πkzk

其中

π0=1,πk=(1)kd(d1)(dk+1)k!

若对实数d推广记号

(dk)=d(d1)(d2)(dk+1)k!

则有

(1z)d==j=0(dk)(z)k=k=0(d)(d1)(dk+1)k!(z)kk=0d(d+1)(d+k1)k!(+z)k=k=0ψkzk

也有

(1z)d=j=0(dk)(z)k=k=0(1)kd(d1)(dk+1)k!zk=k=0πkzk

长记忆模型性质

模型(11.1)有如下性质:

MA表示

d<0.5,则模型中的{Xt}有弱平稳列解,并有无穷阶MA表示:

xt=k=0ψkξtk

AR表示

d>0.5,则模型中的{ξt}可以用{Xt}表示为如下的无穷阶AR形式:

Xt+k=1πkXtk=ξt

ACF衰减速率

0.5<d<0.5
则平稳解{Xt}的ACF为

ρk=d(d+1)(d+k1)(d+1)(d+2)(d+k),k=1,2,

ρ1=d1d
k

ρk=ck2d1+o(k2d1)

是以负幂律缓慢衰减的(c为与k无关的常数)。
注意ARMA序列的ρk以负指数速度快速衰减。

PACF

0.5<d<0.5
则平稳解{Xt}的PACF为

ϕkk=dkd, k=1,2,

k1速度衰减。

谱密度性质

弱平稳时间序列的谱密度f(ω), ω[0,π]是序列在不同的随机振动频率上的能量分布,
是一个非负可积函数。
0.5<d<0.5
若平稳解的谱密度满足

f(ω)ω2d, ω0

这样,则0<d<0.5时谱密度在ω=0频率附近趋于正无穷,
这在实际数据中的表现是数据存在缓慢的长期水平波动。
ARAM序列的谱密度是有界的。

如果将模型(11.1)中的白噪声{ξt}推广为可以取ARMA(p,q)序列,
这样的模型称为
ARFIMA(p,d,q)模型,
称为分数阶差分ARMA模型。
参见(Geweke and Porter-Hudak 1983)

R的fracdiff软件包用来构建分数阶差分ARMA模型。

在金融时间序列建模中,
如果样本ACF数值不大但是衰减特别缓慢,
可以考虑长记忆模型。
如果数值很大同时衰减慢则可能是单位根非平稳,
或者具有很接近1的特征根的ARMA序列。

长记忆模型建模实例

例11.1 对CRSP价值加权指数和等权指数的日简单收益率数据,
时间从1970-01-02到2008-12-31,
考虑日收益率的绝对值。

读入数据,计算日收益率的绝对值:

da <- read_table(
  "d-ibm3dx7008.txt",
  col_types=cols(.default=col_double(),
                 Date=col_date("%Y%m%d"))
)
xts.crspw <- xts(da[,-1], da$Date)
vw <- abs(da$vwretd)
ew <- abs(da$ewretd)
rm(da)

价值加权日收益率绝对值序列的ACF:

forecast::Acf(vw, main="", lag.max=300)


价值加权日收益率绝对值序列的ACF

图11.1: 价值加权日收益率绝对值序列的ACF

等加权日收益率绝对值序列的ACF:

forecast::Acf(ew, main="", lag.max=300)


等加权日收益率绝对值序列的ACF

图11.2: 等加权日收益率绝对值序列的ACF

这两个序列的ACF都比较小但是衰减缓慢,到之后300时仍显著不为零。
都是正相关。

函数fracdiff::fdGPH()计算差分阶的Geweke-Porter-Hudak估计值:

## $d
## [1] 0.372226
## 
## $sd.as
## [1] 0.0698385
## 
## $sd.reg
## [1] 0.06868857

估计的差分阶为d=0.372

fracdiff::fracdiff()函数进行ARFIMA模型估计:

mres <- fracdiff::fracdiff(vw, nar=1, nma=1)
summary(mres)
## 
## Call:
##   fracdiff::fracdiff(x = vw, nar = 1, nma = 1) 
## 
## Coefficients:
##    Estimate Std. Error z value Pr(>|z|)    
## d  0.490938   0.007997   61.39   <2e-16 ***
## ar 0.113389   0.005988   18.94   <2e-16 ***
## ma 0.575895   0.005946   96.85   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## sigma[eps] = 0.0065619 
## [d.tol = 0.0001221, M = 100, h = 0.0003742]
## Log likelihood: 3.551e+04 ==> AIC = -71021.02 [4 deg.freedom]

其中选项narnma用来指定AR阶和MA阶。
模型为

(10.1133B)(1B)0.4909Xt=εt0.5759εt1, σε=0.006562

估计结果中差分阶d=0.4909已经接近非平稳的边缘0.5了。

注意:fracdiff::fracdiff()的输出与arima()输出有差别,
其MA系数的输出是1θ1BθqBq格式的。

参考文献

Geweke, J., and S. Porter-Hudak. 1983. “The Estimation and Application of Long Memory Time Series Models.” Journal of Time Series Analysis 4 (4): 221–38.