View source: R/train_functions.R
ts_grid | R Documentation |
Tuning time series models with grid search approach using backtesting method. If set to "auto" (default), will use all available cores in the system minus 1
ts_grid(ts.obj, model, optim = "MAPE", periods, window_length = NULL,
window_space, window_test, hyper_params, parallel = TRUE,
n.cores = "auto")
ts.obj |
A univariate time series object of a class "ts" |
model |
A string, defines the model c("HoltWinters"), currently support only Holt-Winters model |
optim |
A string, set the optimization method - c("MAPE", "RMSE") |
periods |
A string, set the number backtesting periods |
window_length |
An integer, defines the length of the backtesting training window. If set to NULL (default) will use an expending window starting the from the first observation, otherwise will use a sliding window. |
window_space |
An integer, set the space length between each of the backtesting training partition |
window_test |
An integer, set the length of the backtesting testing partition |
hyper_params |
A list, defines the tuning parameters and their range |
parallel |
Logical, if TRUE use multiple cores in parallel |
n.cores |
Set the number of cores to use if the parallel argument is set to TRUE. If set to "auto" (default), will use n-1 of the available cores |
A list
## Not run:
data(USgas)
# Starting with a shallow search (sequence between 0 and 1 with jumps of 0.1)
# To speed up the process, will set the parallel option to TRUE
# to run the search in parallel using 8 cores
hw_grid_shallow <- ts_grid(ts.obj = USgas,
periods = 6,
model = "HoltWinters",
optim = "MAPE",
window_space = 6,
window_test = 12,
hyper_params = list(alpha = seq(0.01, 1,0.1),
beta = seq(0.01, 1,0.1),
gamma = seq(0.01, 1,0.1)),
parallel = TRUE,
n.cores = 8)
# Use the parameter range of the top 20 models
# to set a narrow but more agressive search
a_min <- min(hw_grid_shallow$grid_df$alpha[1:20])
a_max <- max(hw_grid_shallow$grid_df$alpha[1:20])
b_min <- min(hw_grid_shallow$grid_df$beta[1:20])
b_max <- max(hw_grid_shallow$grid_df$beta[1:20])
g_min <- min(hw_grid_shallow$grid_df$gamma[1:20])
g_max <- max(hw_grid_shallow$grid_df$gamma[1:20])
hw_grid_second <- ts_grid(ts.obj = USgas,
periods = 6,
model = "HoltWinters",
optim = "MAPE",
window_space = 6,
window_test = 12,
hyper_params = list(alpha = seq(a_min, a_max,0.05),
beta = seq(b_min, b_max,0.05),
gamma = seq(g_min, g_max,0.05)),
parallel = TRUE,
n.cores = 8)
md <- HoltWinters(USgas,
alpha = hw_grid_second$alpha,
beta = hw_grid_second$beta,
gamma = hw_grid_second$gamma)
library(forecast)
fc <- forecast(md, h = 60)
plot_forecast(fc)
## End(Not run)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.