[Day5] Holt's Model 介绍

第四篇我们介绍了时间序列经典的统计预测方法 ARIMA,包含公式内的两大模型 AR model、MA model,如何选择参数 d, p, q,以及自动化的参数搜寻解法。
第五篇接续介绍另一个以指数平滑法(Exponential Smoothing)为基础的统计方法 —— Holt's Model。

今日大纲:

  • Holt's Model 起源
  • Holt's Linear Trend Model
  • Holt-Winter Model
    • Additive
    • Multiplicative

Holt's Model 起源

Holt's Model 是 Charles C.Holt 於 1957 年的论文 提出,从 Exponential Smoothing 延伸而来,针对时间序列的属性分别做指数平滑。
只针对 Level(水平)、Trend(趋势)做指数平滑的是 Holt's Linear Trend Model;
後来 Holt 的学生 Winters 再加上了对 Seasonality(季节性)做指数平滑的预测方程,应用於有季节性的时序预测,被称为 Holt-Winters Model。

Holt's Linear Trend Model

  • 逻辑:
    对 Level & Trend 分别做指数平滑,再做线性组合。

    • 指数平滑法:假设时间序列中,过去对未来的影响,随时间推移,权重呈指数递减。相比移动平均,更参考到更靠近现在的时间点的数值。
  • 公式:

    • 预测方程: https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7By%7D_%7Bt%2Bh%7Ct%7D%20%3D%20l_%7Bt%7D%20%2B%20hb_%7Bt%7D
      • 计算「level」的方程: https://chart.googleapis.com/chart?cht=tx&chl=l_%7By%7D%20%3D%20%5Calpha%20y_%7Bt%7D%20%2B%20(1-%20%5Calpha%20)(l_%7Bt-1%7D%20%2B%20b_%7Bt-1%7D)
      • 计算「Trend」的方程: https://chart.googleapis.com/chart?cht=tx&chl=b_%7Bt%7D%20%3D%20%5Cbeta%20(l_%7Bt%7D%20-%20l_%7Bt-1%7D)%20%2B%20(1-%20%5Cbeta)b_%7Bt-1%7D

Holt-Winters Model

  • 逻辑:
    在 Holt's Linear Trend Model 的基础上,再对 Seasonality 做指数平滑;
    视时间序列的类型不同,分为 Additive Seasonality 和 Multiplicative Seasonality。

如何判断时间序列是 Additive or Multiplicative?

使用我们第一篇讲到的 decomposition plot,将 level, trend, seasonality, residual 画出来;如果 seasonality 和 level 互相独立,也就是 seasonality 不随着 level 改变,则为 Additive Seasonality;若 seasonality 会随着 level 改变,两着有相依关系,则为 Multiplicative Seasonality。
timeseries__additive_vs_multiplicative

图片来源

Additive

  • 公式:
    • 预测方程: https://chart.googleapis.com/chart?cht=tx&chl=%5Chat%7By%7D_%7Bt%2Bh%7Ct%7D%20%3D%20l_%7Bt%7D%2Bhb_%7Bt%7D%2Bs_%7Bt%2Bh-mk%7D
      • 计算「level」的方程: https://chart.googleapis.com/chart?cht=tx&chl=l_%7Bt%7D%20%3D%20%5Calpha%20(y_%7Bt%7D-s_%7Bt-m%7D)%20%2B%20(1%20-%20%5Calpha)(l_%7Bt-1%7D%20%2B%20b_%7Bt-1%7D)
      • 计算「Trend」的方程: https://chart.googleapis.com/chart?cht=tx&chl=b_%7Bt%7D%20%3D%20%5Cbeta(l_%7Bt%7D%20-%20l_%7Bt-1%7D)%2B(1-%20%5Cbeta)b_%7Bt-1%7D
      • 计算「Seasonality」的方程: https://chart.googleapis.com/chart?cht=tx&chl=s_%7Bt%7D%20%3D%20%5Cgamma%20(y_%7Bt%7D-l_%7Bt-1%7D-b_%7Bt-1%7D)%2B(1-%5Cgamma)s_%7Bt-m%7D

Multiplicative

  • 公式:
    • 预测方程: holt-winter_model__multiplicative
      • 计算「level」的方程: holt-winter_model__multiplicative_level
      • 计算「Trend」的方程: holt-winter_model__multiplicative_trend
      • 计算「Seasonality」的方程: holt-winter_model__multiplicative_seasonality

参考资料


<<:  Day 5 - 条件渲染与列表渲染

>>:  Day 05 - IoC 容器与Servlet 容器

10. CI x Github Action

CI 持续整合。 为什麽要 CI 呢? 想想我们前面写了那麽辛苦的自动测试,结果有人不跑测试就上传。...

Apollo Client Network Errors

本系列文以制作专案为主轴,纪录小弟学习React以及GrahQL的过程。主要是记下重点步骤以及我觉...

[Day7] Flutter - 堆叠布局 ( Stack、Positioned )

前言 Hi, 我是鱼板伯爵今天要教大家 Stack(堆叠) 和 Positioned(位子),Sta...

特徵萃取 | ML#Day8

需要发展「特徵工程」的另一个入门大问题,是没有想过会需要做特徵提取的工作,也就是从参数里面得到新的参...

LinkServer function 不允许远端函数参考

select [LINKSERVER].dbNAME.[dbo].fn_test 出现讯息: 不允许...