2

我最近开始在 python 中使用 fbprophet 包。我有过去 2 年的月度数据和未来 9 个月的预测。因为,我有每月数据,我只包括每年的季节性(Prophet(yearly_seasonality = True))。当我绘制组件时,趋势值似乎很好,但是每年的季节性值太高,我不明白为什么?季节性显示增加 300 或减少 -200。但是,在实际图表中,过去的任何几个月都没有发生这种情况——我能做些什么来纠正? 整体预测

趋势

季节性

使用的代码如下:

m = Prophet(yearly_seasonality = True)
m.fit(df_bu_country1)
future = m.make_future_dataframe(periods=9, freq='M')
forecast = m.predict(future)
m.plot(forecast)
m.plot_components(forecast)
4

2 回答 2

7

您的数据完全没有季节性。为了存在年度季节性,您应该有一个年复一年重复的模式,但是从 10/2015 到 10/2016 的时间序列的形状与 10/2016 到 10/2017 之间的形状完全不同。所以强制每年的季节性会给你带来奇怪的结果,你应该把它关掉(即只使用 Prophet 的默认设置)。

于 2018-12-19T17:05:32.827 回答
2

您的数据的季节性因素不一致,在 2017-04 到 2018-10 之间似乎有一点年度季节性。第一个答案是绝对正确的,但如果你觉得有一些季节性,你可以通过改变它的傅里叶顺序来减少它的影响。 https://facebook.github.io/prophet/docs/seasonality,_holiday_effects,_and_regressors.html#fourier-order-for-seasonalities

这个页面有如何做到这一点,默认的傅立叶阶数是 10,减少它影响的值。试试这个希望对你有帮助

于 2019-04-02T06:29:52.393 回答