| # ARIMA Model for M5 Demand Forecasting | |
| ## Overview | |
| AutoRegressive Integrated Moving Average trained on aggregated daily M5 sales data. | |
| ## Model Details | |
| - **Architecture**: ARIMA(3,1,1) with trend | |
| - **Training Data**: 1,913 days of aggregated daily sales | |
| - **Test Period**: 28 days (2016-04-25 to 2016-05-22) | |
| - **Differencing**: d=1 (first differencing required for stationarity) | |
| ## Stationarity Test | |
| - ADF Statistic: -1.565373 | |
| - p-value: 0.500960 | |
| - Original data non-stationary; first differencing achieves stationarity | |
| ## Performance | |
| | Metric | Value | | |
| |--------|-------| | |
| | RMSE | 6,459.70 | | |
| | MAE | 4,852.62 | | |
| | MAPE | 10.48% | | |
| | AIC | 37,801.28 | | |
| ## Key Features | |
| - AR component: 3 autoregressive terms | |
| - I component: 1st order differencing (d=1) | |
| - MA component: 1 moving average term | |
| - Trend term: 't' (deterministic trend) | |
| ## Usage | |
| ```python | |
| import pickle | |
| with open('model.pkl', 'rb') as f: | |
| model = pickle.load(f) | |
| forecast = model.forecast(steps=28) | |
| ``` | |
| ## Notes | |
| - Simplest model but requires manual order selection | |
| - No seasonal component (SARIMAX handles this better) | |
| - Good baseline but underperforms compared to Prophet and SARIMAX | |
| - Smallest model file (6.5MB) due to no seasonal components | |