I want to forecast the demand of each SKU in my warehouse every week from the history transaction that I have collected. The data contains brand, product type, SKU, quantity, date(per day), price. But the SKU is not sold every week. Some of them are because of sold out and trend. I have tried RNN LSTM and ARIMA with per week but they need time series data that has any transaction in every daterange. I need an algorithm that can handle zero transaction in random week.
-
3$\begingroup$ Search for "forecasting" and "zeros". There are many existing questions about just this. The most common answer is basically "use Croston's method". $\endgroup$– The LaconicDec 8, 2018 at 15:43
-
1$\begingroup$ We have experimented with "Croston's Mehod" and it seems to work ok if the data has no pulses or level shifts in demand ( these typically are the bane of exponential smoothing ) and have implemented a causal/regression approach between the rate of demand and the interval using robust methods allowing for pulses and level shifts. You might try implementing this approach as we are happy with it so far. $\endgroup$– IrishStatDec 8, 2018 at 16:03
1 Answer
You don't really have missing data, you have many zero's. They could well cause problems.
many zero's could mess up the estimation of the autocorrelation function (see Testing a proportion in an online setting).
many exact zero's in succession is not really compatible with the usual assumptions used in arima time series modeling. Since your problem is demand forecasting, some special methods for that purpose might do, see Time series with a sequence of zeros and Forecasting daily time series with many zeros.
Another approach is to acknowledge that you have count data, and looking into modeling of a count data time series model. Keywords is poisson regression and zero inflation. See Time series for count data, with counts < 20 and Daily Time Series Analysis.
With demand data, probably you have many parallel series. Then hierarchical forecasting could help, see Forecasting hierarchical time series R package.