[我首先在这里将这个问题发布到 Stack Overflow ,但没有得到任何回复,所以我想我会在这里尝试。如果不允许转发,请见谅。]
我一直在尝试使用Holt-Winters 算法的这种实现在 Python 中进行时间序列预测,但遇到了障碍......基本上,对于某些系列(正)输入,它有时会预测负数,这应该清楚并非如此。即使预测不是负面的,它们有时也会非常不准确——比应有的高/低几个数量级。给算法更多的数据周期似乎没有帮助,实际上往往会使预测变得更糟。
我正在使用的数据具有以下特征,这可能是问题:
非常频繁地采样(每 15 分钟一个数据点,而不是示例使用的每月数据) - 但根据我的阅读,Holt-Winters 算法应该没有问题。也许这表明实施存在问题?
有多个周期性 - 有每日峰值(即每 96 个数据点)以及周末数据的每周周期明显低于工作日数据 - 例如工作日可以在 4000 左右达到峰值,但周末达到 1000 左右 - 但即使我只给出它是工作日数据,我遇到了负数问题。
在实现或使用 Holt-Winters 算法时,我是否缺少一些东西?我不是统计学家,所以我使用上面链接中指示的 alpha、beta 和 gamma 的“默认”值 - 这可能是问题所在吗?计算这些值的更好方法是什么?
或者......这里有比 Holt-Winters 更好的算法吗?最终,我只想从这里的历史数据中创建合理的预测。我尝试过单指数和双指数平滑,但(据我所知)都不支持数据的周期性。
我还研究了通过 rpy2使用 R预测包 - 这会给我带来更好的结果吗?我想我仍然需要计算参数等等,所以如果我当前的问题在于算法的实现,这将是一个好主意......?
任何帮助/输入将不胜感激!