【问题标题】:Holt winters initial Seasonal Indices calculation in python霍尔特在 python 中过冬初始季节性指数计算
【发布时间】:2014-01-01 22:01:29
【问题描述】:

我无法为 Holt Winters 指数平滑找到正确的季节性指标计算。

我用NIST的计算方法,用adorio-research的数据

z =[146, 96, 59, 133, 192, 127, 79, 186, 272, 155, 98, 219]


Results:
s= [ 1.3744  0.8627  0.5373  1.2257]

使用 NIST 方法的计算是 Stackoverflow 上的here。但是对于adorio-research,他们用相同的值得到了不同的结果。

Results:
S= [ 1.4789  0.8985  0.5152  1.1074]

是我计算错误还是 adorio-research 的代码使用了不同的方法来计算初始季节性指数?

【问题讨论】:

标签: python numpy time-series smoothing


【解决方案1】:

来自的 Holt-Winters 代码是错误的。您可以查看下面使用 R 代码计算 Holt-Winters 的链接

http://www.wessa.net/rwasp_exponentialsmoothing.wasp#output

在下面输入数据并在链接中设置season period at 4Type of Exponential Smoothing to TripleType of seasonality to multiplicative

146
96
59
133
192
127
79
186
272
155
98
219

它会返回 alpha、beta 和 gamma 的参数

alpha   0.735716596454859
beta    0.0382359201508119
gamma   1

结果

t   Observed    Fitted            Residuals
5   192        170.088248700704   21.9117512992958
6   127        122.981857107346   4.01814289265398
7   79         75.9008222744013   3.09917772559865
8   186        172.139757560624   13.8602424393755
9   272        272.260398525039   -0.260398525038966
10  155        173.023900179977   -18.0239001799769
11  98         95.2888315311983   2.71116846880174
12  219        213.920670513984   5.07932948601567

将 alpha、beta 和 gamma 插入到 python 代码中,你会得到:

holtwinters(y, 0.735716596454859, 0.0382359201508119, 1,4)

[ 158.3686  113.11     73.8393  175.5253  262.0823  176.5653  112.4055
  268.6787  401.3833  243.3259  150.7145  343.6221]

如您所见,它是错误的。但是 R 模型使用错误校正,因此它也将取决于您如何设置初始点。

【讨论】:

    【解决方案2】:

    Holt Winters 没有正式定义初始化,文献中已经提出了多种技术。 Hyndman 的This post 描述了一个明智、有效的程序。

    一个易于使用的 python 包(也可以估计数据的周期)是seasonal(在 PyPI 或 here 上可用)

    【讨论】:

      猜你喜欢
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 2020-12-15
      • 1970-01-01
      • 2014-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多