您如何模拟假日期间季节性变化的零售销售?

问题描述 投票:0回答:1

我在python中使用statsmodels来预测Walmart kaggle数据集的每周零售额。在我通过SARIMA之前,我无法实现平稳性。问题是复活节可能与年复一年相差无几。你如何在假日中对这些波动进行建模?

我尝试过最佳(p,d,q)(P,D,Q)m参数的网格搜索。我的gridsearch返回SARIMA(0,1,0)(0,2,0)52,AIC为832,但是当绘制它时显然非常偏斜(这是预期的,因为我的数据从未真正实现与这些变换的平稳性)。

有没有人建议使用SARIMAX零售季节性?我知道R包是优越的,但我不知道R,我希望没有它我能解决这个问题。

p, d, q = 0, 1, 0
P, D, Q, m = 0, 2, 0, 52

model = SARIMAX(train11.Weekly_Sales.asfreq('W-FRI'), order=(p,d,q), seasonal_order=(P,D,Q,m),
                trend='n', enforce_stationarity=False, enforce_invertibility=False)
model_fit = model.fit()
model_fit.summary()
==========================================================================================
Dep. Variable:                       Weekly_Sales   No. Observations:                  143
Model:             SARIMAX(0, 1, 0)x(0, 2, 0, 52)   Log Likelihood                -415.101
Date:                            Tue, 02 Apr 2019   AIC                            832.202
Time:                                    21:48:24   BIC                            833.813
Sample:                                02-05-2010   HQIC                           832.770
                                     - 10-26-2012                                         
Covariance Type:                              opg                                         
==============================================================================
                 coef    std err          z      P>|z|      [0.025      0.975]
------------------------------------------------------------------------------
sigma2      2.202e+08   1.77e+07     12.406      0.000    1.85e+08    2.55e+08
===================================================================================
Ljung-Box (Q):                       28.96   Jarque-Bera (JB):                77.77
Prob(Q):                              0.79   Prob(JB):                         0.00
Heteroskedasticity (H):               0.00   Skew:                            -1.44
Prob(H) (two-sided):                  0.00   Kurtosis:                         9.49
===================================================================================
python time-series statsmodels forecasting
1个回答
0
投票

最简单的方法是在假期和特殊事件中使用虚拟变量。 SARIMAX允许在exog中指定其他解释变量。

虚拟变量可以是特定日期,如果有足够的年数来估计例如复活节效果,或者几个假日可以组合在相同的虚拟变量中,例如在圣诞节之前的几个周末,当购物比平时高很多时。

SARIMA本身无法捕获像复活节那样的效果,因为即使有一年的季节性假期也不会有规律的周期长度。

© www.soinside.com 2019 - 2024. All rights reserved.