/TimeSeries

time series forecasting

Primary LanguageJupyter Notebook

Time-Series modeling

Time Series forecasting for Daily Bike Shares data, using different approaches. It is a daily time series covering a 2-year period. The challenge is to forecast for the month of Dec-12, which exhibits considerable volatility.

Raw time-series:

Modeled time-series - select models:

Modeled time-series - (naive) ensemble approach:

Modeling Approaches Explored:

  1. Holt-Winters exponential smoothing -
    • Comprises: triple exponential smoothing for ETS - Error, Trend, Seasonality
    • Explanation blog post
  2. SARIMAX -
    • Comprises: Seasonality + ARIMA + External regressors (holiday flags, strategic shifts etc.)
  3. TBATS -
    • Comprises:
      • Trigonometric terms for seasonality
      • Box-Cox transformations for heterogeneity (transforming closer to normal)
      • ARMA errors for short-term dynamics
      • Trend (possibly damped)
      • Seasonal (including multiple and non-integer periods)
    • Pros/Cons:
      • handles non-integer seasonality, multiple seasonal periods (can also change over time)
      • Does NOT accomodate exogenous regressors
  4. Tensorflow Structural Time Series -
    • Library built on TensorFlow; makes it easy to combine probabilistic models and deep learning. webpage
    • Rob Hyndman's slides
    • Pros/Cons:
      • Flexible, good with short-term dynamics, accomodates exogenous regressors, intuitive
      • Complex model setup, model fitting takes time
    • Notebook including forecasting for weekly Store Footfall data, including comparison with SARIMAX
  5. Facebook's Prophet -
    • Comprises: Trend + Seasonality + Holiday Effects + External Regressors + error
      • Trend - linear or logistic
      • Seasonality - yearly/ weekly/ daily ... multiplicative/ additive
      • Holiday effect - define the specific day, and 'window' of days around it
    • Pros: Flexible/ customizable, dynamic events, allows regressors, automatic, Built-in cross validation and hyperparameter tuning
  6. XGBoost + Prophet -
    • Stage 1: Fit Prophet model, and take select forecast variables to augment original feature matrix
    • Stage 2: Fit XGBoost Regression model on the updated feature matrix

Learning Resources: