Skip to main content

Probabilistic time series modeling in Python.

Project description

GluonTS - Probabilistic Time Series Modeling in Python

PyPI GitHub Static Static PyPI Downloads

📢 BREAKING NEWS: We released Chronos, a suite of pretrained models for zero-shot time series forecasting. Chronos can generate accurate probabilistic predictions for new time series not seen during training. Check it out here!

GluonTS is a Python package for probabilistic time series modeling, focusing on deep learning based models, based on PyTorch.

Installation

GluonTS requires Python 3.10 to 3.14. We recommend using uv for managing environments:

# install with support for torch models
uv pip install "gluonts[torch]"

For development:

# clone the repository
git clone https://github.com/awslabs/gluonts.git
cd gluonts

# install with all development dependencies
uv sync --all-extras

You can also install via pip:

pip install "gluonts[torch]"

See the documentation for more info on how GluonTS can be installed.

Simple Example

To illustrate how to use GluonTS, we train a DeepAR-model and make predictions using the airpassengers dataset. The dataset consists of a single time series of monthly passenger numbers between 1949 and 1960. We train the model on the first nine years and make predictions for the remaining three years.

import pandas as pd
import matplotlib.pyplot as plt

from gluonts.dataset.pandas import PandasDataset
from gluonts.dataset.split import split
from gluonts.torch import DeepAREstimator

# Load data from a CSV file into a PandasDataset
df = pd.read_csv(
    "https://raw.githubusercontent.com/AileenNielsen/"
    "TimeSeriesAnalysisWithPython/master/data/AirPassengers.csv",
    index_col=0,
    parse_dates=True,
)
dataset = PandasDataset(df, target="#Passengers")

# Split the data for training and testing
training_data, test_gen = split(dataset, offset=-36)
test_data = test_gen.generate_instances(prediction_length=12, windows=3)

# Train the model and make predictions
model = DeepAREstimator(
    prediction_length=12, freq="M", trainer_kwargs={"max_epochs": 5}
).train(training_data)

forecasts = list(model.predict(test_data.input))

# Plot predictions
plt.plot(df["1954":], color="black")
for forecast in forecasts:
  forecast.plot()
plt.legend(["True values"], loc="upper left", fontsize="xx-large")
plt.show()

[train-test]

Note, the forecasts are displayed in terms of a probability distribution and the shaded areas represent the 50% and 90% prediction intervals.

Contributing

If you wish to contribute to the project, please refer to our contribution guidelines.

Citing

If you use GluonTS in a scientific publication, we encourage you to add the following references to the related papers, in addition to any model-specific references that are relevant for your work:

@article{gluonts_jmlr,
  author  = {Alexander Alexandrov and Konstantinos Benidis and Michael Bohlke-Schneider
    and Valentin Flunkert and Jan Gasthaus and Tim Januschowski and Danielle C. Maddix
    and Syama Rangapuram and David Salinas and Jasper Schulz and Lorenzo Stella and
    Ali Caner Türkmen and Yuyang Wang},
  title   = {{GluonTS: Probabilistic and Neural Time Series Modeling in Python}},
  journal = {Journal of Machine Learning Research},
  year    = {2020},
  volume  = {21},
  number  = {116},
  pages   = {1-6},
  url     = {http://jmlr.org/papers/v21/19-820.html}
}
@article{gluonts_arxiv,
  author  = {Alexandrov, A. and Benidis, K. and Bohlke-Schneider, M. and
    Flunkert, V. and Gasthaus, J. and Januschowski, T. and Maddix, D. C.
    and Rangapuram, S. and Salinas, D. and Schulz, J. and Stella, L. and
    Türkmen, A. C. and Wang, Y.},
  title   = {{GluonTS: Probabilistic Time Series Modeling in Python}},
  journal = {arXiv preprint arXiv:1906.05264},
  year    = {2019}
}

Links

Documentation

References

Tutorials and Workshops

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

gluonts-0.17.0rc1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gluonts-0.17.0rc1-py3-none-any.whl (863.8 kB view details)

Uploaded Python 3

File details

Details for the file gluonts-0.17.0rc1.tar.gz.

File metadata

  • Download URL: gluonts-0.17.0rc1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for gluonts-0.17.0rc1.tar.gz
Algorithm Hash digest
SHA256 189f6a8758a5af33967a382519af6159372760df799782d391a9f5d181870dcd
MD5 d7b71a8b6d124f83423c67a84e6912de
BLAKE2b-256 d20974790f8e41b3de1271c9a2aa568b8130c7ab23fa230d981e3b3e3c7eb3bc

See more details on using hashes here.

File details

Details for the file gluonts-0.17.0rc1-py3-none-any.whl.

File metadata

  • Download URL: gluonts-0.17.0rc1-py3-none-any.whl
  • Upload date:
  • Size: 863.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for gluonts-0.17.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 5b849011a0036c7c00b022d574331290ec00708b62ee8726fa709d21efe098be
MD5 488ea409ac07c216744a9840306c12a8
BLAKE2b-256 b937ae7a29168ec19b5a61e1ce1818bfe30ec2cfa146239341e3fbd802f9cf8c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page