【问题标题】:Forecasting each time series from a group of time series从一组时间序列中预测每个时间序列
【发布时间】:2021-05-14 17:37:29
【问题描述】:

我有一个包含多个时间序列的数据集,我希望对该组中的每个时间序列进行预测。让我用一个例子来解释一下

    Month StoreName Product Sales
    01/21     A      Pasta   100
    02/21     A      Pasta   70
    03/21     A      Pasta   140
    02/21     A      Rice    30
    03/21     A      Rice    10
    04/21     A      Rice    30
    03/21     B      pasta   200
    04/21     B      pasta   30
    01/21     B      Rice    120
    03/21     B      Rice    180
    04/21     B      Rice    100

现在,对于给定的 StoreName 和 Product,未来​​几个月的销售额是多少。这里需要注意的地方很少。

  1. 间歇性需求(例如:商店 B 在 2 月份缺少销售)
  2. 对具有 200 多个产品、200 多个商店的分类变量进行编码。
  3. 每个集合的时间序列模型。 ([A,意大利面],[A,米饭],[B,意大利面],[B,米饭])

由于高基数,是否可以在不循环的情况下对多个时间序列进行建模?非常感谢 python 中的任何类型的解决方案。

提前致谢。

【问题讨论】:

  • 到目前为止你做了什么?
  • 我已经探索了kaggle competition,但他们使用了 for 循环,这在我的情况下并不合适。
  • 发布您目前拥有的代码。而且您需要将您的问题分解为几个子问题,然后发布这些子问题,而不是这个大问题。分而治之。
  • 抱歉,@jsb 我仍处于分析阶段。探索方法。
  • 好,继续。当您有一些代码和明确定义的单个问题时发布。

标签: python time-series forecasting arima facebook-prophet


【解决方案1】:

我希望statsmodels 包将包含您正在寻找的内容,它似乎是根据其他数字和分类预测变量的混合来预测一个数值。您有时间序列数据,这使这有点棘手,但作为第一次探索,您可以将一年中的月份编码为它自己的列,然后使用 statsmodels 普通最小二乘模型开始分析:

import statsmodels.formula.api as smf

lm = smf.ols(formula='Sales ~ Month + Storename + Product', data=df)
residuals = lm.fit()
print(residuals.summary())

这将为您提供如下所示的漂亮回归表,然后您可以从那里继续探索并更好地整合数据的时间序列元素。

 OLS Regression Results                            
==============================================================================
Dep. Variable:                Sales   R-squared:                       0.338
Model:                            OLS   Adj. R-squared:                  0.287
Method:                 Least Squares   F-statistic:                     6.636
Date:                Thu, 25 Mar 2021   Prob (F-statistic):           1.07e-05
Time:                        19:37:47   Log-Likelihood:                -375.30
No. Observations:                  85   AIC:                             764.6
Df Residuals:                      78   BIC:                             781.7
Df Model:                           6                                         
Covariance Type:            nonrobust                                         
===============================================================================
                  coef    std err          t      P>|t|      [0.025      0.975]
-------------------------------------------------------------------------------
Intercept      38.6517      9.456      4.087      0.000      19.826      57.478
Product        -15.4278     9.727     -1.586      0.117     -34.793       3.938
StoreName      -10.0170     9.260     -1.082      0.283     -28.453       8.419
Month          -4.5483      7.279     -0.625      0.534     -19.039       9.943

========================================================================

如需更多信息,我希望统计模型文档 herehere 能让您有一个良好的开端。

要研究的另一类模型是 ARIMA models,但您需要确保数据是静止的,并且使用 ARIMA 模型在

【讨论】:

  • 感谢您的有用回复。我一定会探索您共享的链接。如果可能,您能否具体说明如何使用 ARIMA 模型实现这一目标?
  • This article 应该可以帮助您开始将数据固定化。一旦它静止,您就可以开始使用来自statsmodels 的现成的 arima 模型。
  • 我已接受另一个问题的答案。但是,这个问题的答案帮助我向前迈进了一步,但我不能说这是确切的答案。所以,我已经投票了,但由于缺乏声誉,你看不到投票。
猜你喜欢
  • 2020-01-07
  • 2013-07-13
  • 2020-02-20
  • 2020-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多