Autoformer 之序列分解模块(Series Decomposition Block)的详细解释(附带详细时间序列数据举例)

序列分解模块(Series Decomposition Block)的详细解释

为了处理长期预测中的复杂时间模式,我们采用了分解的思想,该方法可以将时间序列分解为趋势-周期性部分和季节性部分。这两个部分分别反映了时间序列的长期进展和季节性变化。然而,直接对未来序列进行分解是不现实的,因为未来是未知的。为了解决这一难题,我们在 Autoformer 中引入了序列分解模块作为内部操作,逐步从预测的中间隐藏变量中提取长期稳定的趋势。具体而言,我们采用移动平均法来平滑周期波动并突出长期趋势。

序列分解过程

对于长度为 L L L的输入序列 X ∈ R L × d X \in \mathbb{R}^{L \times d} XRL×d,处理过程如下:

  1. 移动平均

    • 我们使用带有填充操作的平均池化(AvgPool)来保持序列长度不变。
    • 具体公式为:
      X t = AvgPool ( Padding ( X ) ) X_t = \text{AvgPool}(\text{Padding}(X)) Xt=AvgPool(Padding(X))
    • 其中 X t X_t Xt表示提取的趋势-周期性部分。
  2. 季节性部分

    • 季节性部分通过从原始序列中减去趋势-周期性部分得到:
      X s = X − X t X_s = X - X_t Xs=XXt
    • 其中 X s X_s Xs表示季节性部分。

我们用 X s , X t = SeriesDecomp ( X ) X_s, X_t = \text{SeriesDecomp}(X) Xs,Xt=SeriesDecomp(X)来总结上述方程,这个过程构成了模型的内部模块。

示例数据解释

假设我们有一个长度为 12 的月度销售额时间序列(单位:千元):

月份销售额 (千元)
1月100
2月120
3月130
4月150
5月170
6月180
7月190
8月200
9月220
10月230
11月240
12月260
具体计算过程
  1. 趋势-周期性部分的提取

    • 假设我们使用一个窗口大小为 3 的移动平均来平滑序列:
      月份移动平均(趋势部分) (千元)
      1月(100+120+130)/3 = 116.7
      2月(120+130+150)/3 = 133.3
      3月(130+150+170)/3 = 150
      4月(150+170+180)/3 = 166.7
      5月(170+180+190)/3 = 180
      6月(180+190+200)/3 = 190
      7月(190+200+220)/3 = 203.3
      8月(200+220+230)/3 = 216.7
      9月(220+230+240)/3 = 230
      10月(230+240+260)/3 = 243.3
      11月(240+260+260)/3 = 253.3
      12月(260+260+260)/3 = 260
  2. 季节性部分的计算

    • 季节性部分通过从原始序列中减去趋势部分得到:
      月份季节性部分 (千元)
      1月100 - 116.7 = -16.7
      2月120 - 133.3 = -13.3
      3月130 - 150 = -20
      4月150 - 166.7 = -16.7
      5月170 - 180 = -10
      6月180 - 190 = -10
      7月190 - 203.3 = -13.3
      8月200 - 216.7 = -16.7
      9月220 - 230 = -10
      10月230 - 243.3 = -13.3
      11月240 - 253.3 = -13.3
      12月260 - 260 = 0

总结

通过上述具体数据的示例,我们展示了序列分解模块如何将时间序列数据分解为趋势-周期性部分和季节性部分。这种分解方法通过移动平均平滑周期波动,突出长期趋势,适用于从预测的中间隐藏变量中逐步提取长期稳定的趋势。该过程在 Autoformer 中作为内部操作,有助于提高长期时间序列预测的准确性和稳定性。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值