0

我想在 statsmodels 中使用 Holt Winters 中的水平和斜率,因为对于每个时期,我想生成一个时滞(步数)大于 1 的预测。也就是说,对于每个时期,我想提前三个时期生成预测。

我看到我可以做到:

demand = pd.DataFrame({'material': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1],
                   'quantity': [32118, 32129, 32648, 33115, 34214, 34449, 36282, 
                                36674, 38320, 40229, 41702, 42320, 42595, 42969, 
                                44462, 44365, 44652, 45169, 45388, 46499, 46497]})

model = models.Holt(demand['quantity'], damped=True)
fit = model.fit(smoothing_level=0.1,
            smoothing_slope=0.2,
            damping_slope=0.9,
            optimized=False)

从 fit 开始,我可以做 fit.level 和 fit.slope。很奇怪,使用这些值我无法生成预测。

我希望斜率和水平至少从 fit.params 中找到的相同值开始。对于这个例子,fit.params 的初始斜率为 9.9 和初始水平 32118。不过,当我查看 fit.level 时,第一个值是水平的 32126.91 和斜率的 9.7。

知道如何提取 fit.predict() 使用的水平和斜率吗?

4

1 回答 1

1

请参阅https://github.com/statsmodels/statsmodels/pull/5893,在阻尼趋势的情况下存在错误。

于 2019-06-28T22:57:13.793 回答