Solved – Daily timeseries forecasting, with weekly and annual seasonality

forecastingmultiple-seasonalitiesrtbatstime series

My aim is to forecast the daily number of registrations in two different channels.

Weekly seasonality is quite strong. Especially the difference between the weekends and the rest of the week is big. I also observe annual effects. Moreover, I have a few special event days, which significantly differ from the others days. Here is the dataset.

First, I applied a TBATS model on these two channels.

x.msts <- msts(Channel1_reg,seasonal.periods=c(7,365.25))
# fit model
fit <- tbats(x.msts)
fit
plot(fit)
forecast_channel1 <- forecast(fit,h=30)

First channel:

TBATS(0, {2,3}, -, {<7,3>, <365.25,2>})

Call: tbats(y = x.msts)

Parameters
  Lambda: 0
  Alpha: 0.0001804516
  Gamma-1 Values: -1.517954e-05 1.004701e-05
  Gamma-2 Values: -3.059654e-06 -2.796211e-05
  AR coefficients: 0.249944 0.544593
  MA coefficients: 0.215696 -0.361379 -0.21082

Second channel:

BATS(0, {2,2}, 0.929, -)

Call: tbats(y = y.msts)

Parameters
  Lambda: 0
  Alpha: 0.1652762
  Beta: -0.008057904
  Damping Parameter: 0.928972
  AR coefficients: -0.586163 -0.676921
  MA coefficients: 0.924758 0.743675

If I forecast the second channel, I only get blank values instead of any forecasts.

Could you please help why is that so?
Do you have any suggestion how to build in the specific event days into this model?

Best Answer

Facebook has recently opened it R/Python API of 'Prophet Model'.It handles multiple level of seasonality and external event days can also be passed.Have a look-

http://machinelearningstories.blogspot.in/2017/05/facebooks-phophet-model-for-forecasting.html https://facebookincubator.github.io/prophet/docs/forecasting_growth.html