library(httptest2) .mockPaths("../tests/mocks") start_vignette(dir = "../tests/mocks") original_options <- options("NIXTLA_API_KEY"="dummy_api_key", digits=7) knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.width = 7, fig.height = 4 )
library(nixtlar)
nixtlar
provides an R interface to Nixtla's TimeGPT, a generative pre-trained forecasting model for time series data. TimeGPT
is the first foundation model capable of producing accurate forecasts for new time series not seen during training, using only its historical values as inputs. TimeGPT
can also be used for other time series related tasks, such as anomaly detection and cross-validation. Here we explain how to get started with TimeGPT
in R and give a quick overview of the main features of nixtlar
.
First, you need to set up your API key. An API key is a string of characters that allows you to authenticate your requests when using TimeGPT
via nixtlar
. This API key needs to be provided by Nixtla, so if you don't have one, please request one here.
When using nixtlar
, there are two ways of setting up your API key:
nixtla_client_setup
functionnixtlar
has a function to easily set up your API key for your current R session. Simply call
nixtla_client_setup(api_key = "Your API key here")
Keep in mind that if you close your R session or you re-start it, then you'll need to set up your API key again.
When using Azure, you also need to add the base_ur
parameter to the nixtla_client_setup
function.
nixtla_client_setup( base_url = "Base ULR", api_key = "Your API key here" )
For a more persistent method that can be used across different projects, set up your API key as environment variable. To do this, first load the usethis
package.
library(usethis) usethis::edit_r_environ()
This will open your .Reviron
file. Place your API key here and named it NIXTLA_API_KEY
.
# Inside the .Renviron file NIXTLA_API_KEY="Your API key here"
You'll need to restart R for changes to take effect. Keep in mind that modifying the .Renviron
file affects all of your R sessions, so if you're not comfortable with this, use the nixtla_client_setup
function instead.
If you are using Azure, you also need to specify the NIXTLA_BASE_URL
.
# Inside the .Renviron file NIXTLA_BASE_URL="Base URL" NIXTLA_API_KEY="Your API key here"
For details on how to set up your API key, check out the Setting Up Your API Key vignette. To learn more about how to use Azure, please refer to the TimeGEN-1 Quickstart (Azure).
If you want to validate your API key, call nixtla_validate_api_key
.
nixtla_validate_api_key()
You don't need to validate your API key every time you set it up, only when you want to check if it's valid. The nixtla_validate_api_key
will return TRUE
if you API key is valid, and FALSE
otherwise.
Once your API key has been set up, you're ready to use TimeGPT
. Here we'll show you how this is done using a dataset that contains prices of different electricity markets.
df <- nixtlar::electricity head(df)
To generate a forecast for this dataset, use nixtla_client_forecast
. Default names for the time and the target columns are ds
and y
. If your time and target columns have different names, specify them with time_col
and target_col
. Since it has multiple ids (one for every electricity market), you'll need to specify the name of the column that contains the ids, which in this case is unique_id
. To do this, simply use id_col="unique_id"
. You can also choose confidence levels (0-100) for prediction intervals with level
.
nixtla_client_fcst <- nixtla_client_forecast(df, h = 8, level = c(80,95)) head(nixtla_client_fcst)
nixtlar
includes a function to plot the historical data and any output from nixtla_client_forecast
, nixtla_client_historic
, nixtla_client_anomaly_detection
and nixtla_client_cross_validation
. If you have long series, you can use max_insample_length
to only plot the last N historical values (the forecast will always be plotted in full).
nixtla_client_plot(df, nixtla_client_fcst, max_insample_length = 200)
options(original_options) end_vignette()
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.