时间序列笔记-ARMA模型(二)

笔记说明

在datacamp网站上学习“Time Series with R ”track
“ARIMA Modeling with R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“ARIMA Modeling with R”,主要用astsa包。
如无特殊说明,笔记中所使用数据均来自datacamp课程。
ARMA模型拟分为(一)(二)两部分发布,第一部分主要包括ARMA模型简介,模拟ARMA数据、拟合ARMA模型,单纯的AR模型或MA模型的定阶。第二部分主要包括ARMA模型的定阶策略、模型选择、残差分析。模型预测部分见ARIMA模型的笔记。

ARMA模型的定阶策略

在时间序列笔记-ARMA模型(一)中,我们提到如果数据符合单纯AR或MA模型,则根据ACF和PACF图的截尾情况可以比较方便的确定AR阶数或MA阶数:

  AR(p) MA(q) ARMA(p,q)
ACF 拖尾 在lag q处截尾 拖尾
PACF 在lag p处截尾 拖尾 拖尾

但是如果p q都不为0,那么ACF和PACF图均为拖尾表现,p、q的值就无法一眼看出来了,例如我们模拟一个ARMA数据:

x <- arima.sim(model = list(order = c(2, 0, 1), ar = c(1, -.9), ma = .8), n = 250)

# Plot x
plot(x)

# Plot the sample P/ACF of x
acf2(x)
时间序列笔记-ARMA模型(二)_第1张图片
时间序列笔记-ARMA模型(二)_第2张图片

可以看出,从ACF和PACF图中很难判断p q的值。

推荐的定阶策略:从最低阶开始拟合模型,每次增加一个参数并观察拟合结果的变化。

The best approach to fitting ARMA is to start with a low order model, and then try to add a parameter at a time to see if the results change.

模型选择

根据推荐的定阶策略,我们实际上要拟合很多不同模型,根据拟合结果从中选择最优模型作为最终模型。判断模型拟合优劣的指标有很多,这里我们简单介绍2个最为常用的指标:AIC BIC
简单来说,AIC或BIC会计算模型在训练数据上的误差:
该项越小越好,为防止过拟合,再加上对模型复杂性的惩罚项:

随着模型复杂度越大,Error项会减小但是惩罚项会增加。
AIC和BIC对于模型拟合效果的判断都是越小越好。二者对于Error项的计算是一样的,不同在于惩罚项设置不同:AIC中,BIC中
我在上看到一篇讲AIC BIC比较详细的博客,推荐阅读:AIC和BIC准则
在进行模型拟合时,sarima()函数会生成模型的AIC值和BIC值,帮助我们我们选择适当的模型。

残差分析(residual analysis)

ARMA模型假定残差是一个高斯白噪声,进行残差分析可以考察这个假定。
用sarima()函数拟合模型时会自动输出一个残差分析图,包括四个部分:

  • 标准化残差图 应该表现为均值为0方差为1的白噪声
  • 残差的样本自相关函数图 应该表现为白噪声的自相关图(无明显自相关)
  • 残差的正态性Q-Q图。Q-Q用来辅助检查数据的正态性。残差的正态性是ARMA模型的一个重要假定。如果残差满足正态性时,Q-Q图上的点应该大致上沿对角线分布
  • Q-统计量的P值图 Ljung-Box检验可以检验一些列观测值是否是随机的独立观测值,可用于检验ARIMA模型残差是否彼此独立,Q-统计量图绘制了Ljung-Box检验下各lag值对应的P值,应该表现为约有95%的P值大于0.05(点位于蓝色线以上)

下例中对同一个数据分别拟合两个ARMA模型并考察残差情况:


时间序列笔记-ARMA模型(二)_第3张图片
例子所用数据情况
# Fit an MA(1) to dl_varve. Examine the residuals  
sarima(dl_varve,p=0,d=0,q=1)

# Fit an ARMA(1,1) to dl_varve. Examine the residuals
sarima(dl_varve,p=1,d=0,q=1)
时间序列笔记-ARMA模型(二)_第4张图片
MA(1)模型的残差分析显示模型的残差不符合白噪声的独立性
时间序列笔记-ARMA模型(二)_第5张图片
ARMA(1,1)模型的残差分析显示残差满足高斯白噪声的特点

残差分析是建模的重要环节,也有助于我们进行模型选择。

你可能感兴趣的:(时间序列笔记-ARMA模型(二))