Learn R Programming

gratis

The R package gratis (previously known as tsgeneration) provides efficient algorithms for generating time series with diverse and controllable characteristics.

Installation

CRAN version

install.packages("gratis")

Development version

You can install the development version of gratis package from GitHub Repository with:

devtools::install_github("ykang/gratis")

Usage

Tutorial video

Watch this YouTube video provided by Prof. Rob Hyndman.

Load the package

library(gratis)
library(feasts)

Generate diverse time series

set.seed(27)
mar_model(seasonal_periods=12) %>%
  generate(length=120, nseries=2) %>%
  autoplot(value)

Generate mutiple seasonal time series

mar_model(seasonal_periods=c(24, 24*7)) %>%
  generate(length=24*7*10, nseries=12) %>%
  autoplot(value)

Generate time series with controllable features

library(dplyr)
# Function to return spectral entropy, and ACF at lags 1 and 2
# given a numeric vector input
my_features <- function(y) {
  c(tsfeatures::entropy(y), acf = acf(y, plot = FALSE)$acf[2:3, 1, 1])
}
# Produce series with entropy = 0.5, ACF1 = 0.9 and ACF2 = 0.8
df <- generate_target(
  length = 60, feature_function = my_features, target = c(0.5, 0.9, 0.8)
)
df %>%
 as_tibble() %>%
 group_by(key) %>%
 reframe(value = my_features(value), 
           feature=c("entropy","acf1", "acf2")
           )
#> # A tibble: 30 × 3
#>    key       value feature
#>    <chr>     <dbl> <chr>  
#>  1 Series 1  0.509 entropy
#>  2 Series 1  0.906 acf1   
#>  3 Series 1  0.787 acf2   
#>  4 Series 10 0.465 entropy
#>  5 Series 10 0.896 acf1   
#>  6 Series 10 0.775 acf2   
#>  7 Series 2  0.483 entropy
#>  8 Series 2  0.901 acf1   
#>  9 Series 2  0.812 acf2   
#> 10 Series 3  0.504 entropy
#> # ℹ 20 more rows
autoplot(df)

Web application

You can also run the time series generation procedure in a shiny app

app_gratis()

Or visit our online Shiny APP

See also

References

License

This package is free and open source software, licensed under GPL-3.

Acknowledgements

Feng Li and Yanfei Kang are supported by the National Natural Science Foundation of China (No. 11501587 and No. 11701022 respectively). Rob J Hyndman is supported by the Australian Centre of Excellence in Mathematical and Statistical Frontiers.

Copy Link

Version

Install

install.packages('gratis')

Monthly Downloads

384

Version

1.0.8

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Feng Li

Last Published

February 26th, 2026

Functions in gratis (1.0.8)

simulate_target

Generating time series with controllable features using MAR models
rmixnorm_ts

Simulate autoregressive random variables from mixture of normal
simulate.mar

Generate synthetic data from a Mixture Autoregressive model
arima_model

Specify parameters for an ARIMA model
app_gratis

Web Application to generate time series with controllable features.
generate_ts

Generate time series from random parameter spaces of the mixture autoregressive (MAR) models.
generate_ts_with_target

Generating time series with controllable features.
pi_coefficients

Compute pi coefficients of an AR process from SARIMA coefficients.
generate_msts

Generate multiple seasonal time series from random parameter spaces of the mixture autoregressive (MAR) models.
gratis-package

gratis: GeneRAting TIme Series with diverse and controllable characteristics
generate.mar

Generate a tsibble of synthetic data from a Mixture Autoregressive model
ets_model

Specify parameters for an ETS model
mar_model

Specify parameters for a Mixture Autoregressive model
rmixnorm

Generate random variables from a mixture of multivariate normal distributions
reexports

Objects exported from other packages