if (FALSE) {
suppressPackageStartupMessages(library(modeltime))
suppressPackageStartupMessages(library(timetk))
suppressPackageStartupMessages(library(dplyr))
data <- ts_to_tbl(AirPassengers) %>%
select(-index)
splits <- time_series_split(
data
, date_col
, assess = 12
, skip = 3
, cumulative = TRUE
)
rec_objs <- ts_auto_recipe(
.data = data
, .date_col = date_col
, .pred_col = value
)
wfsets <- ts_wfs_mars(
.model_type = "earth"
, .recipe_list = rec_objs
)
wf_fits <- wfsets %>%
modeltime_fit_workflowset(
data = training(splits)
, control = control_fit_workflowset(
allow_par = TRUE
, verbose = TRUE
)
)
models_tbl <- wf_fits %>%
filter(.model != "NULL")
calibration_tbl <- models_tbl %>%
modeltime_calibrate(new_data = testing(splits))
output <- ts_model_auto_tune(
.modeltime_model_id = 1,
.calibration_tbl = calibration_tbl,
.splits_obj = splits,
.drop_training_na = TRUE,
.date_col = date_col,
.value_col = value,
.tscv_assess = "12 months",
.tscv_skip = "3 months",
.num_cores = parallel::detectCores() - 1
)
}
Run the code above in your browser using DataLab