您如何为节假日期间具有可变季节性的零售销售建模?
How do you model retail sales with variable seasonality around holidays?
我在 python 中使用 statsmodels 来预测沃尔玛 kaggle 数据集的每周零售额。在通过 SARIMA 运行 之前,我无法实现平稳性。问题是复活节每年可能相隔数周。您如何为假期中的这些波动建模?
我已经尝试对最佳 (p,d,q)(P,D,Q)m 参数进行网格搜索。我的网格搜索返回了 (0,1,0)(0,2,0)52 的 SARIMA,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
===================================================================================
最简单的方法是对假期和特殊事件使用虚拟变量。 SARIMAX 允许在 exog
.
中指定其他解释变量
如果有足够的年份来估计复活节效应,则虚拟变量可以针对特定日期,例如复活节效应,或者可以将多个假期合并到同一个虚拟变量中,例如圣诞节前的几个周末,购物量要高得多比平时.
SARIMA 本身将无法捕捉像复活节这样的效果,因为即使有一年的季节性,假期也不会有固定的周期长度。
我在 python 中使用 statsmodels 来预测沃尔玛 kaggle 数据集的每周零售额。在通过 SARIMA 运行 之前,我无法实现平稳性。问题是复活节每年可能相隔数周。您如何为假期中的这些波动建模?
我已经尝试对最佳 (p,d,q)(P,D,Q)m 参数进行网格搜索。我的网格搜索返回了 (0,1,0)(0,2,0)52 的 SARIMA,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
===================================================================================
最简单的方法是对假期和特殊事件使用虚拟变量。 SARIMAX 允许在 exog
.
如果有足够的年份来估计复活节效应,则虚拟变量可以针对特定日期,例如复活节效应,或者可以将多个假期合并到同一个虚拟变量中,例如圣诞节前的几个周末,购物量要高得多比平时.
SARIMA 本身将无法捕捉像复活节这样的效果,因为即使有一年的季节性,假期也不会有固定的周期长度。