Title: | Conformal Time Series Forecasting Using State of Art Machine Learning Algorithms |
---|---|
Description: | Conformal time series forecasting using the caret infrastructure. It provides access to state-of-the-art machine learning models for forecasting applications. The hyperparameter of each model is selected based on time series cross-validation, and forecasting is done recursively. |
Authors: | Resul Akay [aut, cre] |
Maintainer: | Resul Akay <[email protected]> |
License: | GPL (>= 3) |
Version: | 0.1.1 |
Built: | 2024-11-11 03:44:43 UTC |
Source: | https://github.com/akai01/caretforecast |
Autoregressive forecasting using various Machine Learning models.
ARml( y, max_lag = 5, xreg = NULL, caret_method = "cubist", metric = "RMSE", pre_process = NULL, cv = TRUE, cv_horizon = 4, initial_window = NULL, fixed_window = FALSE, verbose = TRUE, seasonal = TRUE, K = frequency(y)/2, tune_grid = NULL, lambda = NULL, BoxCox_method = c("guerrero", "loglik"), BoxCox_lower = -1, BoxCox_upper = 2, BoxCox_biasadj = FALSE, BoxCox_fvar = NULL, allow_parallel = FALSE, ... )
ARml( y, max_lag = 5, xreg = NULL, caret_method = "cubist", metric = "RMSE", pre_process = NULL, cv = TRUE, cv_horizon = 4, initial_window = NULL, fixed_window = FALSE, verbose = TRUE, seasonal = TRUE, K = frequency(y)/2, tune_grid = NULL, lambda = NULL, BoxCox_method = c("guerrero", "loglik"), BoxCox_lower = -1, BoxCox_upper = 2, BoxCox_biasadj = FALSE, BoxCox_fvar = NULL, allow_parallel = FALSE, ... )
y |
A univariate time series object. |
max_lag |
Maximum value of lag. |
xreg |
Optional. A numerical vector or matrix of external regressors, which must have the same number of rows as y. (It should not be a data frame.). |
caret_method |
A string specifying which classification or regression model to use. Possible values are found using names(getModelInfo()). A list of functions can also be passed for a custom model function. See http://topepo.github.io/caret/ for details. |
metric |
A string that specifies what summary metric will be used to
select the optimal model. See |
pre_process |
A string vector that defines a pre-processing of the predictor data. Current possibilities are "BoxCox", "YeoJohnson", "expoTrans", "center", "scale", "range", "knnImpute", "bagImpute", "medianImpute", "pca", "ica" and "spatialSign". The default is no pre-processing. See preProcess and trainControl on the procedures and how to adjust them. Pre-processing code is only designed to work when x is a simple matrix or data frame. |
cv |
Logical, if |
cv_horizon |
The number of consecutive values in test set sample. |
initial_window |
The initial number of consecutive values in each training set sample. |
fixed_window |
Logical, if FALSE, all training samples start at 1. |
verbose |
A logical for printing a training log. |
seasonal |
Boolean. If |
K |
Maximum order(s) of Fourier terms |
tune_grid |
A data frame with possible tuning values. The columns are named the same as the tuning parameters. Use getModelInfo to get a list of tuning parameters for each model or see http://topepo.github.io/caret/available-models.html. (NOTE: If given, this argument must be named.) |
lambda |
BoxCox transformation parameter. If |
BoxCox_method |
|
BoxCox_lower |
|
BoxCox_upper |
|
BoxCox_biasadj |
|
BoxCox_fvar |
|
allow_parallel |
If a parallel backend is loaded and available, should the function use it? |
... |
Ignored. |
A list class of forecast containing the following elemets
x : The input time series
method : The name of the forecasting method as a character string
mean : Point forecasts as a time series
lower : Lower limits for prediction intervals
upper : Upper limits for prediction intervals
level : The confidence values associated with the prediction intervals
model : A list containing information about the fitted model
newx : A matrix containing regressors
Resul Akay
library(caretForecast) train_data <- window(AirPassengers, end = c(1959, 12)) test <- window(AirPassengers, start = c(1960, 1)) ARml(train_data, caret_method = "lm", max_lag = 12) -> fit forecast(fit, h = length(test)) -> fc autoplot(fc) + autolayer(test) accuracy(fc, test)
library(caretForecast) train_data <- window(AirPassengers, end = c(1959, 12)) test <- window(AirPassengers, start = c(1960, 1)) ARml(train_data, caret_method = "lm", max_lag = 12) -> fit forecast(fit, h = length(test)) -> fc autoplot(fc) + autolayer(test) accuracy(fc, test)
Fit a conformal regressor.
conformalRegressor(residuals, sigmas = NULL)
conformalRegressor(residuals, sigmas = NULL)
residuals |
Model residuals. |
sigmas |
A vector of difficulty estimates |
A conformalRegressor object
Resul Akay
Boström, H., 2022. crepes: a Python Package for Generating Conformal Regressors and Predictive Systems. In Conformal and Probabilistic Prediction and Applications. PMLR, 179. https://copa-conference.com/papers/COPA2022_paper_11.pdf
Forecasting using ARml model
## S3 method for class 'ARml' forecast(object, h = frequency(object$y), xreg = NULL, level = c(80, 95), ...)
## S3 method for class 'ARml' forecast(object, h = frequency(object$y), xreg = NULL, level = c(80, 95), ...)
object |
An object of class "ARml", the result of a call to ARml. |
h |
forecast horizon |
xreg |
Optionally, a numerical vector or matrix of future external regressors |
level |
Confidence level for prediction intervals. |
... |
Ignored |
A list class of forecast containing the following elemets
x : The input time series
method : The name of the forecasting method as a character string
mean : Point forecasts as a time series
lower : Lower limits for prediction intervals
upper : Upper limits for prediction intervals
level : The confidence values associated with the prediction intervals
model : A list containing information about the fitted model
newxreg : A matrix containing regressors
Resul Akay
library(caretForecast) train_data <- window(AirPassengers, end = c(1959, 12)) test <- window(AirPassengers, start = c(1960, 1)) ARml(train_data, caret_method = "lm", max_lag = 12) -> fit forecast(fit, h = length(test), level = c(80,95)) -> fc autoplot(fc)+ autolayer(test) accuracy(fc, test)
library(caretForecast) train_data <- window(AirPassengers, end = c(1959, 12)) test <- window(AirPassengers, start = c(1960, 1)) ARml(train_data, caret_method = "lm", max_lag = 12) -> fit forecast(fit, h = length(test), level = c(80,95)) -> fc autoplot(fc)+ autolayer(test) accuracy(fc, test)
Variable importance for forecasting model.
get_var_imp(object, plot = TRUE)
get_var_imp(object, plot = TRUE)
object |
A list class of ARml or forecast object derived from ARml |
plot |
Boolean, if TRUE, variable importance will be ploted. |
A list class of "varImp.train". See varImp
or a
"trellis" plot.
Resul Akay
train <- window(AirPassengers, end = c(1959, 12)) test <- window(AirPassengers, start = c(1960, 1)) ARml(train, caret_method = "lm", max_lag = 12, trend_method = "none", pre_process = "center") -> fit forecast(fit, h = length(test), level = c(80,95)) -> fc autoplot(fc)+ autolayer(test) accuracy(fc, test) get_var_imp(fc, plot = TRUE)
train <- window(AirPassengers, end = c(1959, 12)) test <- window(AirPassengers, start = c(1960, 1)) ARml(train, caret_method = "lm", max_lag = 12, trend_method = "none", pre_process = "center") -> fit forecast(fit, h = length(test), level = c(80,95)) -> fc autoplot(fc)+ autolayer(test) accuracy(fc, test) get_var_imp(fc, plot = TRUE)
Predict a conformalRegressor
## S3 method for class 'conformalRegressor' predict( object, y_hat = NULL, sigmas = NULL, confidence = 0.95, y_min = -Inf, y_max = Inf, ... )
## S3 method for class 'conformalRegressor' predict( object, y_hat = NULL, sigmas = NULL, confidence = 0.95, y_min = -Inf, y_max = Inf, ... )
object |
A conformalRegressor object |
y_hat |
Predicted values |
sigmas |
Difficulty estimates |
confidence |
Confidence level |
y_min |
The minimum value to include in prediction intervals |
y_max |
The maximum value to include in prediction intervals |
... |
Ignored |
Prediction intervals
Resul Akay
A dataset containing 42 products' sales
retail
retail
A data class of "tbl_df", "tbl", "data.frame" with 13986 rows and 3 columns:
date
products
sales
https://robjhyndman.com/data/ausretail.csv
A dataset containing 42 products' sales
retail_wide
retail_wide
An object of class mts (inherits from ts, matrix) with 333 rows and 43 columns.
This data set is the wide format of retail
data.
https://robjhyndman.com/data/ausretail.csv
Split a time series into training and testing sets
split_ts(y, test_size = 10)
split_ts(y, test_size = 10)
y |
A univariate time series |
test_size |
The number of observations to keep in the test set |
A list with train and test elements
Resul Akay
dlist <- split_ts(retail_wide[,1], test_size = 12)
dlist <- split_ts(retail_wide[,1], test_size = 12)
Suggested methods for ARml
suggested_methods()
suggested_methods()
A character vector of Suggested methods
Resul Akay
suggested_methods()
suggested_methods()