笔记说明
在datacamp网站上学习“Time Series with R ”track
“ARIMA Modeling with R”课程 做的对应笔记。
学识有限,错误难免,还请不吝赐教。
学习的课程为“ARIMA Modeling with R”,主要用astsa包。
如无特殊说明,笔记中所使用数据均来自datacamp课程
季节性ARMA模型拟分为(一)(二)两部分发布,第一部分主要包括纯季节性模型简单介绍,季节性ARIMA模型简介,季节性ARIMA模型的定阶策略。第二部分主要以实例讲解季节性ARIMA模型的拟合和预测。
下面通过实例来说明ARIMA乘积季节模型的相关分析,所用数据为按月记录的美国失业率数据unemp
plot(unemp)
平稳化处理
通过看时序图可以看出原序列明显不是平稳的。我们的第一步是对原序列进行平稳化处理。
#一阶差分
d_unemp <- diff(unemp)
plot(d_unemp)
一阶差分后的序列存在季节性的模式,下面通过季节性差分去除。
# 进一步进行季节性差分
dd_unemp <- diff(d_unemp, lag = 12)
plot(dd_unemp)
经过1阶差分和s=12的季节性差分后的序列看起来是平稳的了。因此我们可以确定模型的d=1 D=1 S=12
做ACF PACF图,定阶
acf2(dd_unemp,max.lag=60)
(这里注意:ACF PACF图中的LAG轴是以年为单位而非以月为单位的。)
非季节性部分:PACF图在lag=2处截尾,ACF图拖尾
季节性部分:ACF图在lag=12处(即图中LAG=1处)截尾,PACF图拖尾。
因此考虑模型。
拟合模型
仍然可以用之前介绍过的astsa包中的sarima()函数拟合季节性ARIMA模型:
sarima(unemp,2,1,0,0,1,1,12)
代码中sarima(unemp,2,1,0,0,1,1,12)是“sarima(unemp,p=2,d=1,q=0,P=0,D=1,Q=1,S=12)”的简写
主要运行结果:
Estimate | SE | t.value | p.value | |
---|---|---|---|---|
ar1 | 0.1351 | 0.0513 | 2.6326 | 0.0088 |
ar2 | 0.2464 | 0.0515 | 4.7795 | 0.0000 |
sma1 | -0.6953 | 0.0381 | -18.2362 | 0.0000 |
残差分析图:
从残差分析图来看模型对残差的假设是符合的。
预测
预测之后3年的失业率
sarima.for(unemp,2,1,0,0,1,1,12,n.ahead = 36)
输出包括各月预测值及其标准误,及预测数据的绘图: