
We are happy to announce the release of nixtlar version
1.0.0, our first major release.
Key updates include:
nixtlar now
uses the GET method for the /model_params and
/validate_api_key endpoints, and forwards a
nixtla-model request header so you can work with different
models..make_request helper and dropped the future
and future.apply dependencies.h = 1.Note that nixtlar now requires R (>= 4.1.0).
Thank you for your continued support and feedback, which help us make
nixtlar better. We encourage you to update to the latest
version to take advantage of these improvements.
The first foundation model for time series forecasting and anomaly detection
TimeGPT is a production-ready, generative pretrained
transformer for time series forecasting, developed by Nixtla. It is
capable of accurately predicting various domains such as retail,
electricity, finance, and IoT, with just a few lines of code.
Additionally, it can detect anomalies in time series data.
TimeGPT was initially developed in Python but is now
available to R users through the nixtlar package.
nixtlar is available on CRAN, so you can install the
latest stable version using install.packages.
# Install nixtlar from CRAN
install.packages("nixtlar")
# Then load it
library(nixtlar)Alternatively, you can install the development version of
nixtlar from GitHub with
devtools::install_github.
# install.packages("devtools")
devtools::install_github("Nixtla/nixtlar")library(nixtlar)nixtla_set_api_key(api_key = "Your API key here")df <- nixtlar::electricity
head(df)
#> unique_id ds y
#> 1 BE 2016-10-22 00:00:00 70.00
#> 2 BE 2016-10-22 01:00:00 37.10
#> 3 BE 2016-10-22 02:00:00 37.10
#> 4 BE 2016-10-22 03:00:00 44.75
#> 5 BE 2016-10-22 04:00:00 37.10
#> 6 BE 2016-10-22 05:00:00 35.61nixtla_client_fcst <- nixtla_client_forecast(df, h = 8, level = c(80,95))
#> Frequency chosen: h
head(nixtla_client_fcst)
#> unique_id ds TimeGPT TimeGPT-lo-95 TimeGPT-lo-80
#> 1 BE 2016-12-31 00:00:00 45.19122 30.49719 35.50965
#> 2 BE 2016-12-31 01:00:00 43.24537 28.96447 35.37618
#> 3 BE 2016-12-31 02:00:00 41.95892 27.06669 35.34091
#> 4 BE 2016-12-31 03:00:00 39.79675 27.96763 32.32674
#> 5 BE 2016-12-31 04:00:00 39.20512 24.66191 31.00021
#> 6 BE 2016-12-31 05:00:00 40.10902 23.05225 32.43594
#> TimeGPT-hi-80 TimeGPT-hi-95
#> 1 54.87278 59.88525
#> 2 51.11456 57.52628
#> 3 48.57694 56.85116
#> 4 47.26675 51.62587
#> 5 47.41004 53.74834
#> 6 47.78209 57.16578Optionally, plot the results
nixtla_client_plot(df, nixtla_client_fcst, max_insample_length = 200)
Do anomaly detection with TimeGPT, also in 3 easy steps!
Follow steps 1 and 2 from the previous section and then use the
nixtla_client_detect_anomalies and the
nixtla_client_plot functions.
nixtla_client_anomalies <- nixtlar::nixtla_client_detect_anomalies(df)
#> Frequency chosen: h
head(nixtla_client_anomalies)
#> unique_id ds y anomaly TimeGPT TimeGPT-lo-99
#> 1 BE 2016-10-27 00:00:00 52.58 FALSE 56.07206 -28.58840
#> 2 BE 2016-10-27 01:00:00 44.86 FALSE 52.41392 -32.24654
#> 3 BE 2016-10-27 02:00:00 42.31 FALSE 52.80694 -31.85352
#> 4 BE 2016-10-27 03:00:00 39.66 FALSE 52.58330 -32.07716
#> 5 BE 2016-10-27 04:00:00 38.98 FALSE 52.66963 -31.99083
#> 6 BE 2016-10-27 05:00:00 42.31 FALSE 54.10218 -30.55829
#> TimeGPT-hi-99
#> 1 140.7325
#> 2 137.0744
#> 3 137.4674
#> 4 137.2438
#> 5 137.3301
#> 6 138.7626nixtlar::nixtla_client_plot(df, nixtla_client_anomalies, plot_anomalies = TRUE)
nixtlar provides access to TimeGPT’s features and
capabilities, such as:
Zero-shot Inference: TimeGPT can generate forecasts and detect anomalies straight out of the box, requiring no prior training data. This allows for immediate deployment and quick insights from any time series data.
Fine-tuning: Enhance TimeGPT’s capabilities by fine-tuning the model on your specific datasets, enabling the model to adapt to the nuances of your unique time series data and improving performance on tailored tasks.
Add Exogenous Variables: Incorporate additional variables that might influence your predictions to enhance forecast accuracy. (E.g. Special Dates, events or prices)
Multiple Series Forecasting: Simultaneously forecast multiple time series data, optimizing workflows and resources.
Custom Loss Function: Tailor the fine-tuning process with a custom loss function to meet specific performance metrics.
Cross Validation: Implement out of the box cross-validation techniques to ensure model robustness and generalizability.
Prediction Intervals: Provide intervals in your predictions to quantify uncertainty effectively.
Irregular Timestamps: Handle data with irregular timestamps, accommodating non-uniform interval series without preprocessing.
For comprehensive documentation, please refer to our vignettes, which
cover a wide range of topics to help you effectively use
nixtlar. The current documentation includes guides on how
to:
The documentation is an ongoing effort, and we are working on expanding its coverage.
Are you a Python user? If yes, then check out the Python SDK for
TimeGPT.
If you find TimeGPT useful for your research, please consider citing
the TimeGPT-1 paper. The associated
reference is shown below.
Garza, A., Challu, C., & Mergenthaler-Canseco, M. (2024). TimeGPT-1. arXiv preprint arXiv:2310.03589. Available at https://arxiv.org/abs/2310.03589
TimeGPT is closed source. However, this SDK is open source and available under the Apache 2.0 License, so feel free to contribute!
We welcome your input and contributions to the nixtlar
package!
Report Issues: If you encounter a bug or have a suggestion to improve the package, please open an issue in GitHub.
Contribute: You can contribute by opening a pull request in our
repository. Whether it is fixing a bug, adding a new feature, or
improving the documentation, we appreciate your help in making
nixtlar better.