时间序列分析:SARIMA 过程
Contents [show]
1. SARMA 过程
前文描述的 ARIMA(p,d,q)模型具有如下的形式
ϕ(B)∇dXt=θ(B)et
即
ϕ(B)(1–B)dXt=θ(B)et
其中
ϕ(B)=1–ϕ1B–ϕ2B2–⋯–ϕpBp
θ(B)=1+θ1B+θ2B2–⋯+θqBq
在实际中遇到的时间序列,常常会具有季节性(Seasonality),即每 s 个观测值就会发成自我重复,例如月度经营数据往往以 12 个月为一个周期,此时 Xt 与 Xt−12,Xt−24,⋯ 等数据间会存在较强的相关性。
为了对序列中的季节性进行建模,首先引入季节性 ARMA(P,Q)s 过程
ΦP(Bs)Xt=ΘQ(Bs)et
其中
ΦP(B)=1–Φ1Bs–Φ2B2s–⋯–ΦPBPs
ΘQ(B)=1+Θ1Bs+Θ2B2s–⋯+ΘQBQs
其中 s 为季节周期。对于季节性 ARMA 过程,当 ΦP(B)=0 和 ΘQ(B)=0 的根都在单位圆外时,季节性 ARMA 过程是平稳且可逆的。
举例来说,季节性 ARMA(1,1)12 具有如下的形式
(1–Φ1B12)Xt=(1+Θ1B12)et
即
Xt=Φ1B12Xt−12+et+Θ1B12et−12
2. SARIMA 过程
2.1. 定义
当 ARMA(p,q) 过程不平稳,但它的 d 阶差分平稳时,可以使用 ARIMA(p,d,q) 模型进行建模。类似地,对于季节性过程,季节性的成分可以有独立的差分参数 D,此时得到季节性 ARIMA 过程,即 SARIMA(p,d,q,P,D,Q)s,其中参数 p,d,q 为非季节性的自回归、差分、滑动平均阶数,参数 P,D,Q 分别为季节性的自回归、差分、滑动平均阶数,s 为季节周期。该过程表示为
ΦP(Bs)ϕp(B)∇Ds∇dXt=ΘQ(Bs)θq(B)et
即
ΦP(Bs)ϕp(B)(1–BS)D(1–B)dXt=ΘQ(Bs)θq(B)et
其中
ϕp(B)=1–ϕ1B–ϕ2B2–⋯–ϕpBpθ(B)=1+θ1B+θ2B2–⋯+θqBqΦP(B)=1–Φ1Bs–Φ2B2s–⋯–ΦPBPsΘQ(B)=1+Θ1Bs+Θ2B2s–⋯+ΘQBQs
实际应用中,季节性差分阶数 D 不会太大,一般只会取到 1 或 2。当 D=1 时,有
∇sXt=(1–Bs)Xt=Xt–Xt−s
当 D=1 时,有
∇2sXt=(1–Bs)2Xt=(1–2Bs+B2s)=Xt–2Xt−s+Xt−2s
举例来说,SARIMA(1,0,0,1,0,1)12 具有如下的形式
(1–ϕ1B)(1–ΦqB12)Xt=(1+Θ1B12)et
等号两边展开得
(1–ϕ1B–Φ1B12+ϕ1Φ1B13)Xt=et+Θ1et−12
即
Xt=ϕ1Xt−1+Φ1Xt−12–ϕ1Φ1Xt−13+et+Θ1et−12
又例如 SARIMA(0,1,1,0,0,1)4 具有如下的形式
(1–B)Xt=(1+Θ1B4)(1+θ1B)et
即
Xt=Xt−1+et+θ1et−1+Θ1et−4+θ1Θ1et−5
2.2. 自相关函数
下面以 SARIMA(0,0,1,0,0,1)12 过程为例,分析其自相关函数。对于
Xt=(1+Θ1B12)(1+θ1B)et
即
Xt=et+θ1et−1+Θ1et−12+θ1Θ1et−13
有
γ0=Var(Xt)=Var(et+θ1et−1+Θ1et−12+θ1Θ1et−13)=σ2e+θ21σ2e+Θ21σ2e+θ21Θ21σ2e=(1+θ21)(1+Θ21)σ2e
由 Xt−1=et−1+θ1et−2+Θ1et−13+θ1Θ1et−14,可得
γ1=Cov(Xt,Xt−1)=Cov(et+θ1et−1+Θ1et−12+θ1Θ1et−13,et−1+θ1et−2+Θ1et−13+θ1Θ1et−14)=θ1Cov(et−1,et−1)+θ1Θ1Θ1Cov(et−13,et−13)=θ1σ2e+θ1Θ2σ2e=θ1(1+Θ21)σ2e
又由 (1–θ1)2=1–2θ1+θ21≥0,可知 1+θ21≥2θ1,故
ρ1=γ1γ0=θ11+θ21≤12
由 Xt−2=et−1+θ1et−2+Θ1et−14+θ1Θ1et−15 与 Xt 没有公共的 {et} 项,可知 γ2=Cov(Xt,Xt−2)=0,故 ρ2=0。
类似地,可知对于式 (8) 所示的过程,当 k=2,3,⋯,10 时,有 ρk=0。
由 Xt−2=et−2+θ1et−2+Θ1et−14+θ1Θ1et−15,可得
γ11=Cov(Xt,Xt−11)=θ1Θ1σ2e
ρ11=γ11γ0=θ1Θ1(1+θ21)(1+Θ21)≤14
可见虽然式 (8) 中并不显式地存在滞后为 11 的项,当 θ1Θ1 不为零时,有 ρ11≠0。
使用如下代码模拟 SARIMA(0,0,1,0,0,1)12 过程并绘制 ACF 如图 1、图 2 所示:
x <- NULL z <- NULL n <- 10000 e <- rnorm(n) x[1:13]=1 for(i in 14:n){ x[i] <- e[i] + 0.7*e[i-1] + 0.6*e[i-12] + 0.42*e[i-13] } x <- ts(x) plot(x[12:96], type='l') acf(x)
由图 2 可见在滞后为 1 处有显著的自相关,与前述分析的结果一致。