I’m having some difficulty with a sales forecasting project and need some help.
Dataset: Weekly sales data; So columns such as Store, Item, Week of Year, Sales. This is the most minimal part of the dataset. I can pull in some features such as store dimensional info, item dimensional info, price, and if it is on sale. The date range is about 150 weeks. About 10 unique items and 1000 unique stores.
Objective: Forecast 1 week out.
My accuracy metric, is 1 - ( sum of absolute errors / sum of actual sales ). I need to achieve an accuracy of at least 0.75.
What I have tried: ARIMA, ETS, xgboost and lightgbm. However, with all these models, I can only achieve an accuracy of 0.35 (with lightgbm). With the ML models, I have tried using tweedie objective, and used a plethora of lagged and rolling features. Most of my data are 0’s, and if they are not 0’s, tend to be smaller numbers (< 10). Making it hard to accurately forecast.
I’m at my wits end and would appreciate any advice.
Accurately predicting 1000 individual stores, across 52 weeks, with 10 items, would require immense amounts of data.
My first question would be:
How accurately does your model predict for 10 items, when treating all stores as just one seller, without any features other than “week of year,” 1 through 52?
From there, think of how to engineer features with the data you have.
Pull together some of those features and run individual regressions on each, and determine if they are independent of each other.
Some questions to ask in feature engineering:
Are there additional patterns in the calendar that can be turned into features? Does adding in specific holidays as a feature, for example, improve accuracy?
Do some of the stores act more like some stores than others, such that you could chunk them into several groups? When you do, can you achieve higher accuracy by adding those groups as a feature?
And keep going down this path, from a very simple model with very few features, and examining one feature at a time.