Python用ARIMA ,ARIMAX预测商店商品销售需求时间序列数据

本文在相对简单的数据集上探索不同的时间序列技术。

由Kaizong Ye,Liao Bao撰写

给定 5 年的商店商品销售数据,并要求您预测 10 家不同商店的 50 种不同商品在 3 个月内的销售额。

处理季节性的最佳方法是什么?商店应该单独建模,还是可以将它们合并在一起?

商店项目需求预测

自回归综合移动平均线 (ARIMA)

这 ARIMA 模型是可应用于非平稳时间序列的 ARMA 模型的推广。

import time

import pandas as pd



%matplotlib inline

加载数据

d\_trn = pd.rad\_csv('../inuraicsv, prse\_tes=date'\], inx\_col\['te'\])

d\_ts = pd.ra\_csv'../iputst.csv', prse\_des=\['date'\], ine\_col\['d

自适应网页宽度的 Bilibili 视频

视频

在Python和R语言中建立EWMA,ARIMA模型预测时间序列

探索见解

去bilibili观看

探索更多视频


自适应网页宽度的 Youku 视频

热门视频

机器学习精准销售时间序列预测课程

探索课程

去bilibili观看

探索更多视频

所有商店似乎都显示出相同的趋势和季节性。

ARIMAX

带解释变量的自回归综合移动平均线 (ARIMAX) 是 ARIMA 的扩展版本,其中包括独立的预测变量。

准备数据

mnths = df_rinindx.nth



df_ran.drpna(iplac=True)

d_trin.head()




import datetime
dumymns = pd.get_dummies(moth) prev\_uate\_dates = d\_tet\_x.index - datie.timedelta(das=91) dfetex.head()

R语言中的时间序列分析模型:ARIMA-ARCH / GARCH模型分析股票价格

阅读文章



随时关注您喜欢的主题


构建模型

si1 = d\_rin.loc\[(d\_tin\['store'\] == 1) & (_tran\['ie'\] == 1), 'ses'\]

exog\_s1i1 = df\_train.loc\[(df\_train\['store'\] == 1) & (df\_train\['item'\] == 





ax = SARIMAX(si1.loc\['2013-12-31':\], exog=exog

                                   nfoceinvetiblity=alse,enforce_ationarity=False,

作出预测

        nog = df\_rai.loc\[(ftrin\['str'\] == s) & (df\_rin\['te'\] == i), 'als'\]

        

        SARIMAX(endog=edog exog=xo,

                                           enorce\_invtiilit=False, eorce\_statnarityFalse, freq='D',

                                           order=(7,0,0)).fit()

       

        tc = time.time()

示例预测

xg = f\_rin.loc\[(df\_rin\[ste'\] == 10) & (d_tri\['itm'\] == 50)\].drop(\['', 'ite', 'sas'\], axis=1)

forast = arax.predict

可下载资源

关于作者

Kaizong Ye拓端研究室(TRL)的研究员。在此对他对本文所作的贡献表示诚挚感谢,他在上海财经大学完成了统计学专业的硕士学位,专注人工智能领域。擅长Python.Matlab仿真、视觉处理、神经网络、数据分析。

本文借鉴了作者最近为《R语言数据分析挖掘必知必会 》课堂做的准备。

​非常感谢您阅读本文,如需帮助请联系我们!

 
QQ在线咨询
售前咨询热线
15121130882
售后咨询热线
0571-63341498

关注有关新文章的微信公众号


永远不要错过任何见解。当新文章发表时,我们会通过微信公众号向您推送。

技术干货

最新洞察

This will close in 0 seconds