alpha 和 beta 大于 1 的指数平滑

Exponential Smoothing with alpha and beta greater than one

我有以下时间序列

year        value
2001-01-01  433.0
2002-01-01  445.0
2003-01-01  406.0
2004-01-01  416.0
2005-01-01  432.0
2006-01-01  458.0
2007-01-01  418.0
2008-01-01  392.0
2009-01-01  464.0
2010-01-01  434.0
2012-01-01  435.0
2013-01-01  437.0
2014-01-01  465.0
2015-01-01  442.0
2016-01-01  456.0
2017-01-01  448.0
2018-01-01  433.0
2019-01-01  399.0

我想用指数平滑模型拟合。我按以下方式定义我的模型:

model = ExponentialSmoothing(dataframe, missing='drop', trend='mul', seasonal_periods=5,
                              seasonal='add',initialization_method="heuristic")
model = model.fit(optimized=True, method="basinhopping")

我让算法优化 smoothing_level=$\alpha$、smoothing_trending=$\beta$、smoothing_seasonal=$\gamma$ 和 damping_trend=$\phi$.

然而,当我打印这个特定案例的结果时,我得到:$\alpha=1.49$、$\beta=1.41$、$\gamma=0.0$ 和 $\phi=0.0$。

有人可以向我解释这里发生了什么吗? $\alpha$ 和 $\beta$ 的这些值大于 1 可以接受吗?

我认为您误解了结果。我们可以 运行 您的模型如下:

data = [
    433.0, 445.0, 406.0, 416.0, 432.0, 458.0,
    418.0, 392.0, 464.0, 434.0, 435.0, 437.0,
    465.0, 442.0, 456.0, 448.0, 433.0, 399.0]

model = sm.tsa.ExponentialSmoothing(data, missing='drop', trend='mul', seasonal_periods=5,
                              seasonal='add',initialization_method="heuristic")
res = model.fit(optimized=True, method="basinhopping")

print(res.params['smoothing_level'])
print(res.params['smoothing_trend'])

这给了我:

1.4901161193847656e-08
1.4873988732462211e-08

注意 e-08 部分 - 第一个参数不等于 1.49,它等于 0.0000000149。