train_model
ComponentsR/train_functions.R
create_model.Rd
Add, edit, or remove the components of the train_model
function
create_model() add_input(model.obj, input) add_methods(model.obj, methods) remove_methods(model.obj, method_ids) add_train_method(model.obj, train_method) add_horizon(model.obj, horizon) build_model(model.obj) set_error(model.obj, error) add_xreg(model.obj, xreg) add_level(model.obj, level)
model.obj  The train_model skeleton, created by the create_model function or edited by add_input, add_methods, remove_methods, add_train_method or add_horizon 

input  A univariate time series object (ts class) 
methods  A list, defines the models to use for training and forecasting the series. The list must include a sub list with the model type, and the model's arguments (when applicable) and notes about the model. The sublist name will be used as the model ID. Possible models:

method_ids  A character, defines the IDs of the model methods to be remove with the remove_methods function 
train_method  A list, defines the train approach, either using a single testing partition (sample out) or use multiple testing partitions (backtesting). The list should include the training method argument, (please see 'details' for the structure of the argument) 
horizon  An integer, defines the forecast horizon 
error  A character, defines the error metrics to be used to sort the models leaderboard. Possible metric  "MAPE" or "RMSE" 
xreg  Optional, a list with two vectors (e.g., data.frame or matrix) of external regressors, one vector corresponding to the input series and second to the forecast itself (e.g., must have the same length as the input and forecast horizon, respectively) 
level  An integer, set the confidence level of the prediction intervals 
# NOT RUN { ### Building train_model function by adding its different components # Create a skeleton model md < create_model() class(md) # Add input data(USgas) md < add_input(model.obj = md, input = USgas) # Add methods methods < list(ets1 = list(method = "ets", method_arg = list(opt.crit = "lik"), notes = "ETS model with opt.crit = lik"), ets2 = list(method = "ets", method_arg = list(opt.crit = "amse"), notes = "ETS model with opt.crit = amse"), arima1 = list(method = "arima", method_arg = list(order = c(1,1,1), seasonal = list(order = c(1,0,1))), notes = "SARIMA(1,1,1)(1,0,1)")) md < add_methods(model.obj = md, methods = methods) # Add additional methods methods2 < list(arima2 = list(method = "arima", method_arg = list(order = c(2,1,2), seasonal = list(order = c(1,1,1))), notes = "SARIMA(2,1,2)(1,1,1)"), hw = list(method = "HoltWinters", method_arg = NULL, notes = "HoltWinters Model"), tslm = list(method = "tslm", method_arg = list(formula = input ~ trend + season), notes = "tslm model with trend and seasonal components")) md < add_methods(model.obj = md, methods = methods2) # Remove methods md < remove_methods(model.obj = md, method_ids = c("ets2")) # Add train method md < add_train_method(model.obj = md, train_method = list(partitions = 6, sample.out = 12, space = 3)) # Set the forecast horizon md < add_horizon(model.obj = md, horizon = 12) # Add the forecast prediction intervals confidence level md < add_level(model.obj = md, level = c(90, 95)) ### Alternatively, pipe the function with the magrittr package library(magrittr) md < create_model() %>% add_input(input = USgas) %>% add_methods(methods = methods) %>% add_methods(methods = methods2) %>% add_train_method(train_method = list(partitions = 4, sample.out = 12, space = 3)) %>% add_horizon(horizon = 12) %>% add_level(level = c(90, 95)) # Run the model fc < md %>% build_model() # }