我们可以使用Python的statsmodels库预测未来的订单:
fit = statsmodels.api.tsa.statespace.SARIMAX(
train.Count, order=(2, 1, 4),seasonal_order=(0,1,1,7)
).fit()
y_hat_avg['SARIMA'] = fit1.predict(
start="2018-06-16", end="2018-08-14", dynamic=True
)
结果(不介意数字):
现在假设由于公司假期或促销活动,我们的输入数据有一些异常的增加或减少。因此,我们添加了两列,分别说明每天是否是“假期”以及公司是否有“促销”。
是否有一种方法(以及在Python中实现它的方法)使用这种新型的输入数据,并帮助该模型理解异常值的原因,并通过提供“假期”和“ promotion_day”信息来预测未来的订单?
fit1.predict('2018-08-29', holiday=True, is_promotion=False)
# or
fit1.predict(start="2018-08-20", end="2018-08-25", holiday=[0,0,0,1,1,0], is_promotion=[0,0,1,1,0,1])
SARIMAX
作为SARIMA
模型的概括,旨在解决这一问题。从文档中,
参数:
- endog(array_like)–观察到的时间序列过程y;
- exog(array_like,可选)–形状为的外生回归数组
(nobs, k)
。
您可以将holiday
和promotion_day
作为大小数组传递(nobs, 2)
给exog
,这将告知模型其中一些观察的外生性质。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句