| Title: | Fast Extrapolation of Time Features using K-Nearest Neighbors |
|---|---|
| Description: | Fast extrapolation of univariate and multivariate time features using K-Nearest Neighbors. Version 2.0 adds approximate nearest-neighbor search, optional GPU acceleration, probabilistic forecast distributions, conformal prediction intervals, and multi-scale sequence representations. The compact set of hyper-parameters is tuned via grid or random search. |
| Authors: | Giancarlo Vercellino [aut, cre] |
| Maintainer: | Giancarlo Vercellino <[email protected]> |
| License: | GPL-3 |
| Version: | 2.0.0 |
| Built: | 2026-07-17 12:51:45 UTC |
| Source: | https://github.com/cran/jenga |
A data frame with with daily and cumulative cases of Covid infections and deaths in Europe since March 2021.
covid_in_europecovid_in_europe
A data frame with 5 columns and 163 rows.
www.ecdc.europa.eu
Automatic projections of time features using approximate nearest neighbors, optional GPU acceleration, probabilistic forecasts, conformal intervals, and multiscale sequence representations.
jenga( df, seq_len = NULL, smoother = FALSE, k = NULL, method = NULL, kernel = NULL, ci = 0.8, n_windows = 10, mode = NULL, n_sample = 30, search = "random", dates = NULL, error_scale = "naive", error_benchmark = "naive", seed = 42, ann = "auto", gpu = "auto", probabilistic = TRUE, conformal = TRUE, multiscale = c(1, 2, 4), n_draws = 1000 )jenga( df, seq_len = NULL, smoother = FALSE, k = NULL, method = NULL, kernel = NULL, ci = 0.8, n_windows = 10, mode = NULL, n_sample = 30, search = "random", dates = NULL, error_scale = "naive", error_benchmark = "naive", seed = 42, ann = "auto", gpu = "auto", probabilistic = TRUE, conformal = TRUE, multiscale = c(1, 2, 4), n_draws = 1000 )
df |
A data frame with time features on columns (numerical or categorical features, but not both). |
seq_len |
Positive integer. Time-step number of the projected sequence |
smoother |
Logical. Perform optimal smoothing using standard loess (only for numerical features). Default: FALSE |
k |
Positive integer. Number of neighbors to consider when applying kernel average. Min number is 3. Default: NULL (automatic selection). |
method |
String. Distance method for calculating neighbors. Possible options are: "euclidean", "manhattan", "minkowski", "chebyshev", "canberra", "clark", "sorensen", "lorentzian", "cosine", "correlation", and "hamming". Default: NULL (automatic selection). |
kernel |
String. Kernel used to calculate neighbor weights. Possible options are: "norm", "cauchy", "logis", "unif", "t", "laplace", "epanechnikov", "triangular", "biweight", "triweight", and "cosine". Default: NULL (automatic selection). |
ci |
Confidence interval. Default: 0.8 |
n_windows |
Positive integer. Number of validation tests to measure/sample error. Default: 10. |
mode |
String. Sequencing method: deterministic ("segmented"), or non-deterministic ("sampled"). Default: NULL (automatic selection). |
n_sample |
Positive integer. Number of samples for grid or random search. Default: 30. |
search |
String. Two option available: "grid", "random". Default: "random". |
dates |
Date. Vector with dates for time features. |
error_scale |
String. Scale for the scaled error metrics. Two options: "naive" (average of naive one-step absolute error for the historical series) or "deviation" (standard error of the historical series). Default: "naive". |
error_benchmark |
String. Benchmark for the relative error metrics. Two options: "naive" (sequential extension of last value) or "average" (mean value of true sequence). Default: "naive". |
seed |
Positive integer. Random seed. Default: 42. |
ann |
String. Approximate nearest-neighbor backend. Options are: "auto", "exact", and "projection". Default: "auto". |
gpu |
String. Acceleration policy for distance calculations. Options are: "auto", "off", and "torch". Default: "auto". |
probabilistic |
Logical. Return simulated forecast distributions and probabilistic summaries. Default: TRUE. |
conformal |
Logical. Add split-conformal forecast intervals calibrated on validation windows. Default: TRUE. |
multiscale |
Positive integer vector. Sequence aggregation scales used in the neighbor representation. Default: c(1, 2, 4). |
n_draws |
Positive integer. Number of simulated draws for probabilistic forecasts. Default: 1000. |
This function returns a list including:
exploration: list of all models, complete with predictions, test metrics, prediction stats and plot
history: a table with the sampled models, hyper-parameters, validation errors
best_model: results for the best model, including:
predictions: min, max, q25, q50, q75, quantiles at selected ci, and different statics for numerical and categorical variables
testing_errors: training and testing errors for one-step and sequence for each ts feature (different measures for numerical and categorical variables)
distribution: simulated forecast draws for each feature when probabilistic = TRUE
settings: v2 execution settings for ANN, GPU, conformal, probabilistic and multiscale options
time_log
Giancarlo Vercellino [email protected]
Useful links:
jenga(covid_in_europe[, c(2, 3)], n_sample = 1) jenga(covid_in_europe[, c(4, 5)], n_sample = 1)jenga(covid_in_europe[, c(2, 3)], n_sample = 1) jenga(covid_in_europe[, c(4, 5)], n_sample = 1)
Plot jenga forecast objects
## S3 method for class 'jenga_plot' plot(x, ...)## S3 method for class 'jenga_plot' plot(x, ...)
x |
A jenga forecast plot object. |
... |
Additional arguments passed to the base plotting device. |
Print jenga forecast plot objects
## S3 method for class 'jenga_plot' print(x, ...)## S3 method for class 'jenga_plot' print(x, ...)
x |
A jenga forecast plot object. |
... |
Additional arguments passed to the base plotting device. |