I am attempting to create a demand forecasting model in python to predict future sales of a particular category of product, using historical sales data.
We are a B2B company, which means that we often get large orders at random times in a year, and there are other periods of no orders.
When using data for the past 5 years, the pattern looks a bit odd. from 2014 to 2016 there is an upward trend, followed by a downward trend.
When I attempt a linear forecasting method, the training set seems to predict the test set fairly well based on the graph. However, the metrics show that the projected sales count is off significantly.
What is the reason for such a huge error rate?
I realize that perhaps the best model for time series such as this would be something like SARIMA. I tried attempting ARIMA models, but because of the nature of the business (B2B) and very few data points available, SARIMA spits out too many errors. (for example, while trying to smooth out data for trend and seasonality, there are lots of logarithmic transformations. This removes resulting Nans and -infs, which leaves the data with almost zero data points.)
For a B2B company with very limited data points on purchase of a particular product (out of 5 years/1825days, only about 400 days when sales occur, for example), is it possible to build a reliable demand forecast model?
Is it possible to use linear regression to forecast future sales without the model projections being significantly off?
In summary, I would like to know if:
it is realistic to attempt reliable demand forecasting for a B2B sales with limited sales info.
What would be the best approach to forecasting B2B sales of particular products?