Orbit is a package for bayesian time series modeling and inference.
Project description
Disclaimer: Orbit requires PyStan as a system dependency. PyStan is licensed under GPLv3 , which is a free, copyleft license for software.
Orbit is a Python package for time series modeling and inference using Bayesian sampling methods for model estimation. It provides a familiar and intuitive initialize-fit-predict interface for working with time series tasks, while utilizing probabilistic modeling under the hood.
The initial release supports concrete implementation for the following models:
Local Global Trend (LGT)
Damped Local Trend (DLT)
Both models, which are variants of exponential smoothing, support seasonality and exogenous (time-independent) features.
The initial release also supports the following sampling methods for model estimation:
Markov-Chain Monte Carlo (MCMC) as a full sampling method
Maximum a Posteriori (MAP) as a point estimate method
Variational Inference (VI) as a hybrid-sampling method on approximate distribution
Installation
Prerequisites
Install from PyPi:
pip install orbit-ml
Install from GitHub:
git clone https://github.com/uber/orbit.git
cd orbit
pip install -r requirements.txt
pip install .
Quick Start
Load data
import pandas as pd
import numpy as np
from orbit.utils.dataset import load_iclaims
df = load_iclaims()
df[['claims', 'trend.unemploy', 'trend.filling', 'trend.job']] =\
df[['claims', 'trend.unemploy', 'trend.filling', 'trend.job']].apply(np.log)
test_size=52
train_df=df[:-test_size]
test_df=df[-test_size:]
Damped-Local-Trend (DLT) Model with FULL Bayesian Prediction
from orbit.models.dlt import DLTFull
from orbit.diagnostics.plot import plot_predicted_data
dlt = DLTFull(
response_col='claims',
date_col='week',
regressor_col=['trend.unemploy', 'trend.filling', 'trend.job'],
seasonality=52,
)
dlt.fit(df=train_df)
# predicted df
predicted_df = dlt.predict(df=test_df)
# plot predictions
plot_predicted_data(
training_actual_df=train_df, predicted_df=predicted_df,
date_col=dlt.date_col, actual_col=dlt.response_col,
test_actual_df=test_df
)
References
Documentation
Citation
To cite Orbit in publications, refer to the following whitepaper:
Orbit: Probabilistic Forecast with Exponential Smoothing
Bibtex:
@misc{ng2020orbit, title={Orbit: Probabilistic Forecast with Exponential Smoothing}, author={Edwin Ng, Zhishi Wang, Huigang Chen, Steve Yang, Slawek Smyl}, year={2020}, eprint={2004.08492}, archivePrefix={arXiv}, primaryClass={stat.CO}}
Papers
Hyndman, R., Koehler, A. B., Ord, J. K., and Snyder, R. D. Forecasting with exponential smoothing: the state space approach. Springer Science & Business Media, 2008.
Bingham, E., Chen, J. P., Jankowiak, M., Obermeyer, F., Pradhan, N., Karaletsos, T., Singh, R., Szerlip, P., Horsfall, P., and Goodman, N. D. Pyro: Deep universal probabilistic programming. The Journal of Machine Learning Research, 20(1):973–978, 2019.
Taylor, S. J. and Letham, B. Forecasting at scale. The American Statistician, 72(1):37–45, 2018.
Hoffman, M.D. and Gelman, A. The No-U-Turn sampler: adaptively setting path lengths in Hamiltonian Monte Carlo. J. Mach. Learn. Res., 15(1), pp.1593-1623, 2014.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orbit-ml-1.0.6.tar.gz.
File metadata
- Download URL: orbit-ml-1.0.6.tar.gz
- Upload date:
- Size: 62.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
88dc66355d476ff668b66e1a1a842975adbd3ad1f4c6a8f7e6b0471b1908c13b
|
|
| MD5 |
a2295b4ba289b25e9b6eefa104c77c20
|
|
| BLAKE2b-256 |
94917f8ea81faf5c1cba78bf725621354c1c39ac43348d24623e3300de375d64
|
File details
Details for the file orbit_ml-1.0.6-py3-none-any.whl.
File metadata
- Download URL: orbit_ml-1.0.6-py3-none-any.whl
- Upload date:
- Size: 73.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d42316b605dc6be7565024092dee4dc3e10ad9f5870b7a6aba8d0e1ccb7976d6
|
|
| MD5 |
6aa07f86ccced329171a605d77df202b
|
|
| BLAKE2b-256 |
9df4fb6731739a96157638002aa1d11ae173364783e6146b79214d434d88a04f
|