Join Slack | Documentation | Blog - Intro | Blog - v1.1
The default page of the repo is on dev
branch. To install the dev version, please check the section Installing from Dev Branch
. If you are looking for a stable version, please refer to the master
branch here.
This project
Orbit is a Python package for Bayesian time series forecasting and inference. It provides a familiar and intuitive initialize-fit-predict interface for time series tasks, while utilizing probabilistic programming languages under the hood.
For details, check out our documentation and tutorials:
Currently, it supports concrete implementations for the following models:
It also supports the following sampling/optimization methods for model estimation/inferences:
Install the library either from PyPi or from the source with pip
.
Alternatively, you can also install it from Anaconda with conda
:
With pip
Installing from PyPI
$ pip install orbit-ml
Install from source
$ git clone https://github.com/uber/orbit.git
$ cd orbit
$ pip install -r requirements.txt
$ pip install .
With conda
The library can be installed from the conda-forge channel using conda.
$ conda install -c conda-forge orbit-ml
$ pip install git+https://github.com/uber/orbit.git@dev
from orbit.utils.dataset import load_iclaims
from orbit.models import DLT
from orbit.diagnostics.plot import plot_predicted_data
# log-transformed data
df = load_iclaims()
# train-test split
test_size = 52
train_df = df[:-test_size]
test_df = df[-test_size:]
dlt = DLT(
response_col='claims', date_col='week',
regressor_col=['trend.unemploy', 'trend.filling', 'trend.job'],
seasonality=52,
)
dlt.fit(df=train_df)
# outcomes data frame
predicted_df = dlt.predict(df=test_df)
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
)
Nowcasting with Regression in DLT:
Backtest on M3 Data:
More examples can be found under tutorials and examples.
We welcome community contributors to the project. Before you start, please read our code of conduct and check out contributing guidelines first.
We document versions and changes in our changelog.
Check out the ongoing deck for scope and roadmap of the project. An older deck used in the meet-up during July 2021 can also be found here.
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}
}