/scikit-hts

Hierarchical Time Series Forecasting with a familiar API

Primary LanguagePythonMIT LicenseMIT

NOTE: I unfortunately do not have time anymore to dedicate to this project, contributions are welcome.

scikit-hts

Hierarchical Time Series with a familiar API. This is the result from not having found any good implementations of HTS on-line, and my work in the mobility space while working at Circ (acquired by Bird scooters).

My work on this is purely out of passion, so contributions are always welcomed. You can also buy me a coffee if you'd like:

ETH / BSC Address: 0xbF42b9c8F7B69D52b8b986AA4E0BAc6838Af6698
https://github.com/carlomazzaferro/scikit-hts/workflows/main%20workflow/badge.svg?branch=master Documentation Status Coverage Downloads/Month Slack

Overview

Building on the excellent work by Hyndman [1], we developed this package in order to provide a python implementation of general hierarchical time series modeling.

[1]Forecasting Principles and Practice. Rob J Hyndman and George Athanasopoulos. Monash University, Australia.

Note

STATUS: alpha. Active development, but breaking changes may come.

Features

  • Supported and tested on python 3.6, python 3.7 and python 3.8
  • Implementation of Bottom-Up, Top-Down, Middle-Out, Forecast Proportions, Average Historic Proportions, Proportions of Historic Averages and OLS revision methods
  • Support for representations of hierarchical and grouped time series
  • Support for a variety of underlying forecasting models, inlcuding: SARIMAX, ARIMA, Prophet, Holt-Winters
  • Scikit-learn-like API
  • Geo events handling functionality for geospatial data, including visualisation capabilities
  • Static typing for a nice developer experience
  • Distributed training & Dask integration: perform training and prediction in parallel or in a cluster with Dask

Examples

You can find code usages here: https://github.com/carlomazzaferro/scikit-hts-examples

Roadmap

  • More flexible underlying modeling support
    • [P] AR, ARIMAX, VARMAX, etc
    • [P] Bring-Your-Own-Model
    • [P] Different parameters for each of the models
  • Decoupling reconciliation methods from forecast fitting
    • [W] Enable to use the reconciliation methods with pre-fitted models
P: Planned
W: WIP

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.