我最近开始在python中使用fbprophet包。我有过去两年的月度数据,并预测接下来的9个月。 自从我有了月度数据以来,我只包含了每年的季节性(先知(year_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)
答案 0 :(得分:1)
您的数据完全没有季节性。为了有每年的季节性,您应该有一个年复一年地重复的模式,但是从10/2015到10/2016的时间序列的形状与10/2016到10/2017的形状完全不同。因此,强制采用每年的季节性会给您带来奇怪的结果,您应该将其关闭(即,仅使用Prophet的默认设置)。
答案 1 :(得分:1)
您的数据的季节性因素不一致,在2017-04到2018-10之间似乎有点年度性。第一个答案是绝对正确的,但是如果您觉得有一些季节性因素,可以通过更改其傅立叶顺序来减小其影响。 https://facebook.github.io/prophet/docs/seasonality,_holiday_effects,_and_regressors.html#fourier-order-for-seasonalities
此页面上有此操作的方法,默认傅立叶阶数为10,以减小其影响的值。 试试这个希望对您有帮助的