9.4 随机趋势和确定性趋势
建模时,有两种不同的线性趋势建模方法。其中 确定性趋势 可通过以下回归模型获得: \[ y_t = \beta_0 + \beta_1 t + \eta_t, \] 其中 \(\eta_t\) 是ARMA过程。 随机趋势 可通过以下模型获得: \[ y_t = \beta_0 + \beta_1 t + \eta_t, \] 其中 \(\eta_t\) 为差分阶数为1的ARIMA过程。该模型也可写为: \[ y_t = y_{t-1} + \beta_1 + \eta_t'. \] 其中 \(\eta_t'\) 为ARMA过程。
这类似于8.1节中介绍的带漂移的随机游走过程,但是此处的误差为 ARMA 过程而不是简单的白噪声。
虽然这些模型看起来非常相似(它们只是 \(\eta_t\) 的差分阶数不同),但这些模型的预测方式却截然不同。
示例:澳大利亚的国际游客量
autoplot(austa) + xlab("年份") +
ylab("人数(百万人)") +
ggtitle("澳大利亚的年度国际游客量")+
theme(text = element_text(family = "STHeiti"))+
theme(plot.title = element_text(hjust = 0.5))

图 9.7: 1980到2015年间澳大利亚的年度游客量。
图9.7为从1980年到2015年每年到澳大利亚的国际游客总数。我们分别采用确定性趋势模型和随机趋势模型拟合数据。
确定性趋势模型如下所示:
<- seq_along(austa)
trend <- auto.arima(austa, d=0, xreg=trend))
(fit1 #> Series: austa
#> Regression with ARIMA(2,0,0) errors
#>
#> Coefficients:
#> ar1 ar2 intercept xreg
#> 1.113 -0.380 0.416 0.171
#> s.e. 0.160 0.158 0.190 0.009
#>
#> sigma^2 = 0.0298: log likelihood = 13.6
#> AIC=-17.2 AICc=-15.2 BIC=-9.28
因此,模型为 \[\begin{align*} y_t &= 0.42 + 0.17 t + \eta_t \\ \eta_t &= 1.11 n_{t-1} -0.38 n_{t-2} + \varepsilon_t\\ \varepsilon_t &\sim \text{NID}(0,0.0298). \end{align*}\]
模拟预测结果为每年增长0.17百万人次国际游客。
随机趋势模型估计结果如下所示:
<- auto.arima(austa, d=1))
(fit2 #> Series: austa
#> ARIMA(0,1,1) with drift
#>
#> Coefficients:
#> ma1 drift
#> 0.301 0.173
#> s.e. 0.165 0.039
#>
#> sigma^2 = 0.0338: log likelihood = 10.62
#> AIC=-15.24 AICc=-14.46 BIC=-10.57
该模型可表示为\[y_t-y_{t-1} = 0.17 + \eta'_t\]其等价于 \[\begin{align*} y_t &= y_0 + 0.17 t + \eta_t \\ \eta_t &= n_{t-1} + 0.30 \varepsilon_{t-1} + \varepsilon_{t}\\ \varepsilon_t &\sim \text{NID}(0,0.0338) \end{align*}\]
在本例中,随机趋势模型预测结果也是每年增长0.17百万人次国际游客。尽管两个模型的预测值相同,但是图9.8表明,两个模型的预测区间是不相同的。由于随机趋势模型中预测非平稳,因此随机误差模型的预测区间较大。
<- forecast(fit1,
fc1 xreg = cbind(trend = length(austa) + 1:10))
#> Warning in forecast.forecast_ARIMA(fit1, xreg = cbind(trend
#> = length(austa) + : xreg contains different column names
#> from the xreg used in training. Please check that the
#> regressors are in the same order.
<- forecast(fit2, h=10)
fc2 autoplot(austa) +
autolayer(fc2, series="随机趋势") +
autolayer(fc1, series="确定性趋势") +
ggtitle("确定性趋势模型和随机趋势模型的而预测结果") +
xlab("年份") + ylab("澳大利亚的游客(百万)") +
guides(colour=guide_legend(title="模型趋势"))+
theme(text = element_text(family = "STHeiti"))+
theme(plot.title = element_text(hjust = 0.5))

图 9.8: 分别采用确定性趋势模型和随机趋势模型预测澳大利亚的年度国际游客。
在确定性趋势模型中,隐含的假设为趋势的斜率不随时间改变;而在随机趋势模型中,趋势的斜率会随着时间的变化而变化。在预测时,估计的增长假设为历史平均时期的平均增长而不是历史的增长率。因此,对于长期的预测范围,采用随机趋势模型的预测区间较大,因此采用随机趋势模型更加合理。