Search code examples
pythontime-seriesforecasting

Daily Time Series Forecasting


I have been performing monthly time series forecasting using daily data. However, we have now been instructed to switch to daily forecasting instead of forecasting based on total monthly volume. I have a couple of questions regarding this change:

1.Is it advisable to perform daily forecasting instead of monthly forecasting? I believe that spotting trends and seasonality is easier with monthly data, whereas it becomes challenging with daily data. 2.In my sales volume forecasting, I assume that on Sundays and holidays there will be no sales, resulting in a value of 0.How should I handle these situations in my forecasting model?

I have attempted to find relevant online resources to address these questions, but I have not been able to find satisfactory answers. Any guidance or recommended resources on this topic would be greatly appreciated.


Solution

  • Is it advisable to perform daily forecasting instead of monthly forecasting?

    It's a harder problem, certainly. There's more variability day to day than month to month. However, I don't think it's unsolvable, or that it couldn't give you insights into your business. For example, the model might figure out that Fridays are on average 10% busier in a store than average, and you could use that to hire more people for those periods. A monthly model couldn't do that.

    In my sales volume forecasting, I assume that on Sundays and holidays there will be no sales, resulting in a value of 0. How should I handle these situations in my forecasting model?

    People sometimes incorporate holidays into forecasting, but I don't think it will be useful in your case. Usually, the reason why you include holidays into a model is because you're uncertain what the effect of the holiday will be. If you know for a fact that you'll be closed and sales will be zero, then there's no point in modelling the effect of the holiday.

    At the same time, if you include the holiday as a zero value, and the model has no way to distinguish holidays and non-holidays, then those values will pull the predictions for non-holidays down slightly.

    The way I would solve this is replace all holiday values with the average of the day before and after, to get the value as if there were no holiday. After the model runs and forecasts the future, set those days to zero.

    Alternately, you could find a model which tolerates missing data, or include a covariate for whether a day is a holiday.

    For Sundays, I would put in a weekly seasonality term, which would capture the effect of being closed, as well as the effect of any weekly seasonality.