6.3 经典时间序列分解

经典时间序列分解法起源于20世纪20年代。它的步骤相对简单,它是很多其他的时间序列分解法的基石。有两种经典时间序列分解法:加法分解和乘法分解。下面将描述一个季节周期为 \(m\) 的时间序列(例:\(m=4\)的季度数据,\(m=12\)的月度数据,\(m=7\)的周度数据)

在经典时间序列分解法中,我们假设季节项每年都是连续的。对于乘法季节性,构成季节项的 \(m\) 个值被称为季节指数。

加法分解

步骤 1 : 若 \(m\) 为偶数,用 \(2\times m\)-MA 来计算趋势周期项 \(\hat{T}_t\) 。若 \(m\) 为奇数,用 \(m\)-MA 来计算趋势周期项 \(\hat{T}_t\)

步骤 2 : 计算去趋势序列:\(y_t - \hat{T}_t\)

步骤 3 : 为了估计每个季度的季节项,简单平均那个季度的去趋势值。例如,对于月度数据,三月份的季节项是对所有去除趋势后的三月份的值的平均。然后将这些季节项进行调整,使得它们的加和为 0。季节项是通过将这些各年的数据排列结合在一起而得到的,即 \(\hat{S}_t\)

步骤 4 : 残差项是通过时间序列减去估计的季节项和趋势-周期项求得的:\(\hat{R}_t = y_t - \hat{T}_t - \hat{S}_t\)

乘法分解

经典乘法分解与加法分解十分相似,只不过是用除法代替了减法。

步骤 1 : 若 \(m\) 为偶数,用 \(2\times m\)-MA 来计算趋势周期项 \(\hat{T}_t\) 。若 \(m\) 为奇数,用 \(m\)-MA 来计算趋势周期项 \(\hat{T}_t\)

步骤 2 : 计算去趋势序列:\(y_t/ \hat{T}_t\)

步骤 3 : 为了估计每个季度的季节项,简单平均那个季度的去趋势值。例如,对于月度数据,三月份的季节项是对所有去除趋势后的三月份的值的平均。然后将这些季节项进行调整,使得它们的加和为 \(m\)。季节项是通过将这些各年的数据排列结合在一起而得到的,即\(\hat{S}_t\)

步骤 4 : 残差项是通过时间序列除以估计的季节项和趋势-周期项求得的:\(\hat{R}_{t} = y_t /( \hat{T}_t \hat{S}_t)\).

elecequip %>% decompose(type="multiplicative") %>% 
  autoplot() + xlab("Year") +
  ggtitle("Classical multiplicative decomposition 
    of electrical equipment index")
电气设备新订单指数的经典乘法分解。

图 6.8: 电气设备新订单指数的经典乘法分解。

6.8 展示了电气设备指数的经典时间序列分解。比较这幅图和图 6.1 的时间序列分解。2009年的残差项大量未负数,这表明一些趋势-周期项“漏进”了残差项。趋势-周期的估计过度平滑原始数据的下降,并且相对应的残差项的值受到了趋势-周期项误估的影响。

经典时间序列分解法评价

尽管经典时间序列分解法的应用还很广泛,但是我们不十分推荐使用它,因为现在已经有了一些更好的方法。经典时间序列分解的几点问题总结如下:

  • 经典时间序列分解法无法估计趋势-周期项的最前面几个和最后面几个的观测。例如,若 \(m=12\),则没有前六个或后六个观测的趋势-周期项估计。由此也会使得相对应的时期没有残差项的估计值。

  • 经典时间序列分解法对趋势-周期项的估计倾向于过度平滑数据中的快速上升或快速下降(如上面例子中所示)。

  • 经典时间序列分解法假设季节项每年是重复的。对于很多序列来说这是合理的,但是对于更长的时间序列来说这还有待考量。例如,因为空调的普及,用电需求模式会随着时间的变化而变化。具体来说,在很多地方几十年前的时候,各个季节中冬季是用电高峰(用于供暖加热),但是现在夏季的用电需求最大(由于开空调)。经典时间序列分解法无法捕捉这类的季节项随时间变化而变化。

  • 有时候,时间序列中一些时期的值可能异乎寻常地与众不同。例如,每月的航空客运量可能会受到工业纠纷的影响,使得纠纷时期的客运量与往常十分不同。处理这类异常值,经典时间序列分解法通常不够稳健。