Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Akai01/caretForecast
Conformal Time Series Forecasting Using State of Art Machine Learning Algorithms
https://github.com/Akai01/caretForecast
caret conformal-prediction data-science econometrics forecast forecasting forecasting-models machine-learning macroeconometrics microeconometrics r time-series time-series-forcasting time-series-prediction
Last synced: about 1 month ago
JSON representation
Conformal Time Series Forecasting Using State of Art Machine Learning Algorithms
- Host: GitHub
- URL: https://github.com/Akai01/caretForecast
- Owner: Akai01
- License: gpl-3.0
- Created: 2020-09-21T13:57:10.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-10-24T07:11:56.000Z (about 2 years ago)
- Last Synced: 2024-04-14T04:06:12.798Z (8 months ago)
- Topics: caret, conformal-prediction, data-science, econometrics, forecast, forecasting, forecasting-models, machine-learning, macroeconometrics, microeconometrics, r, time-series, time-series-forcasting, time-series-prediction
- Language: R
- Homepage:
- Size: 2 MB
- Stars: 20
- Watchers: 1
- Forks: 9
- Open Issues: 3
-
Metadata Files:
- Readme: README.Rmd
- License: LICENSE.md
Awesome Lists containing this project
- awesome-conformal-prediction - caretForecast - Conformal Time Series Forecasting Using State of Art Machine Learning Algorithms
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```# caretForecast
caretForecast aspires to equip users with the means of using machine learning algorithms for time series data forecasting.
## Installation
The CRAN version with:
``` r
install.packages("caretForecast")```
The development version from [GitHub](https://github.com/) with:
``` r
# install.packages("devtools")
devtools::install_github("Akai01/caretForecast")
```
## ExampleBy using caretForecast, users can train any regression model that is compatible with the caret package. This allows them to use any machine learning model they need in order to solve specific problems, as shown by the examples below.
### Load the library
```{r example1}
library(caretForecast)data(retail_wide, package = "caretForecast")
```
### Forecasting with glmboost
```{r, example2}
i <- 8dtlist <- caretForecast::split_ts(retail_wide[,i], test_size = 12)
training_data <- dtlist$train
testing_data <- dtlist$test
fit <- ARml(training_data, max_lag = 12, caret_method = "glmboost",
verbose = FALSE)forecast(fit, h = length(testing_data), level = c(80,95))-> fc
accuracy(fc, testing_data)
autoplot(fc) +
autolayer(testing_data, series = "testing_data")```
### Forecasting with cubist regression
```{r, example3}
i <- 9dtlist <- caretForecast::split_ts(retail_wide[,i], test_size = 12)
training_data <- dtlist$train
testing_data <- dtlist$test
fit <- ARml(training_data, max_lag = 12, caret_method = "cubist",
verbose = FALSE)forecast(fit, h = length(testing_data), level = c(80,95), PI = TRUE)-> fc
accuracy(fc, testing_data)
autoplot(fc) +
autolayer(testing_data, series = "testing_data")```
### Forecasting using Support Vector Machines with Linear Kernel
```{r, example4}
i <- 9
dtlist <- caretForecast::split_ts(retail_wide[,i], test_size = 12)
training_data <- dtlist$train
testing_data <- dtlist$test
fit <- ARml(training_data, max_lag = 12, caret_method = "svmLinear2",
verbose = FALSE, pre_process = c("scale", "center"))forecast(fit, h = length(testing_data), level = c(80,95), PI = TRUE)-> fc
accuracy(fc, testing_data)
autoplot(fc) +
autolayer(testing_data, series = "testing_data")get_var_imp(fc)
get_var_imp(fc, plot = F)
```
### Forecasting using Ridge Regression
```{r, example5}
i <- 8
dtlist <- caretForecast::split_ts(retail_wide[,i], test_size = 12)
training_data <- dtlist$train
testing_data <- dtlist$test
fit <- ARml(training_data, max_lag = 12, caret_method = "ridge",
verbose = FALSE)forecast(fit, h = length(testing_data), level = c(80,95), PI = TRUE)-> fc
accuracy(fc, testing_data)
autoplot(fc) +
autolayer(testing_data, series = "testing_data")get_var_imp(fc)
get_var_imp(fc, plot = F)
```## Adding external variables
The xreg argument can be used for adding promotions, holidays, and other external variables to the model. In the example below, we will add seasonal dummies to the model. We set the 'seasonal = FALSE' to avoid adding the Fourier series to the model together with seasonal dummies.
```{r, example6}
xreg_train <- forecast::seasonaldummy(AirPassengers)
newxreg <- forecast::seasonaldummy(AirPassengers, h = 21)
fit <- ARml(AirPassengers, max_lag = 4, caret_method = "cubist",
seasonal = FALSE, xreg = xreg_train, verbose = FALSE)fc <- forecast(fit, h = 12, level = c(80, 95, 99), xreg = newxreg)
autoplot(fc)
get_var_imp(fc)
```
# Forecasting Hierarchical or grouped time series
```{r, example7, warning=FALSE, message=FALSE}
library(hts)data("htseg1", package = "hts")
fc <- forecast(htseg1, h = 4, FUN = caretForecast::ARml,
caret_method = "ridge", verbose = FALSE)plot(fc)
```