R/arima.R

Defines functions ts_arima

Documented in ts_arima

# BILOT AI-jack ARIMA-module
# (c) Bilot Oy 2020
# Any user is free to modify this software for their 
# own needs, bearing in mind that it comes with no warranty.

#' Function for training ARIMA time series model
#'
#' @param df data object
#' @param set config object
#' @param model_id autogenerated model_id
#'
#' @return #' a list containing model details ("arima_model"),
#' its coefficients ("arima_coeff"), evaluation on known data ("arima_eval"),
#' as well as a future forecast ("arima_forecast")
#'
#' @export

ts_arima <- function(df, set, model_id){
  library(timetk)
  library(tidyquant)
  library(sweep)
  library(forecast)
  X <- df
  X[,1] <- as.Date(dmy(X[,1]))
  X <- tibble::as_tibble(X)
  X <- tk_ts(X, start = set$ts$arima$start, freq = set$ts$arima$freq)
  
  if (has_timetk_idx(X)){
    fit_arima <- auto.arima(X)
    ts_coef <- sw_tidy(fit_arima)
    ts_metr <- sw_glance(fit_arima)
    ts_eval <- sw_augment(fit_arima, timetk_idx = TRUE)
    ts_fcast <- forecast(fit_arima, h = set$ts$arima$h)
  }else{
    stop("Dataset doesn't have a time series index.")
  }
  return(
    list(
      arima_model = fit_arima,
      arima_coeff = ts_coef,
      arima_eval = ts_eval,
      arima_forecast = ts_fcast,
      arima_metr = ts_metr,
    )
  )
}
Bilot/AI-jack-opensource-R documentation built on July 28, 2020, 1:15 a.m.