I am working on a revenue and sales time series data, and I am trying to find the best forecast model. The data is daily for about 4 years and there are multiple seasonality in the data. I have used ARIMA, exponential smoothing, TS decomposition and a dummy regression models so far. But I am still not sure if these models are the best choices. I was wondering if there are better models which are suitable for the daily data with intense seasonality? Is there any machine learning techniques which can handle that?
I greatly appreciate your insight on that.
Thanks Dave, The first website was very good. I have used auto.arima and ets functions from the forecast package. Both take a rather long time to run, as my data has multiple seasonalities. I was wondering if there is any machine learning algorithm which can handle such cases faster? I am thinking about Neural Network, but not sure if it's the best approach...
You can also go through a method called FORSYS developed by Rudolf Lewandowski http://onlinelibrary.wiley.com/doi/10.1002/for.3980010206/abstract
if you´ve read the book (https://www.otexts.org/fpp), you know that a model that fits better your history, doesn't guarantee better predictions.
if your serie is long enough, you could try RNN (LSTM, GRU, ...), but I recommend trying simpler approaches first.
you could get rid of some seasonality by aggregating your data. If you aggregate on weekly basis, your prediction for the next week can be more accurate. Then, estimating the seasonality for every day of the week, you could split this number accordinly.
replacing outliers with more conservative values, will also give you better predictions.
in my experience, using the forecast package in R, even with automatic model selection, has given good results to me.
at the end, forecasted values should be assessed by humans, since future can´t be explain only by the past.
even more, the future can be changed just because you´ve seen it. For instance: you are predicting low sales volume, and a marketing campaign can easily revert that. Some would say you failed, but you´ve avoid a bad event.
hope it helps,