+++ /dev/null
-#' Compute error
-#'
-#' Obtain the errors between forecast and data
-#'
-#' @param data Dataset, object of class \code{Data} output of \code{getData}
-#' @param forecast Forecast object, class \code{Forecast} output of \code{computeForecast}
-#' @param horizon Horizon where to compute the error (<= horizon used in \code{computeForecast})
-#'
-#' @return A list (abs,MAPE) of lists (day,indices)
-#'
-#' @export
-computeError = function(data, forecast, horizon=data$getStdHorizon())
-{
- L = forecast$getSize()
- mape_day = rep(0, horizon)
- abs_day = rep(0, horizon)
- mape_indices = rep(NA, L)
- abs_indices = rep(NA, L)
-
- nb_no_NA_data = 0
- for (i in seq_len(L))
- {
- index = forecast$getIndexInData(i)
- serie = data$getSerie(index+1)[1:horizon]
- pred = forecast$getSerie(i)[1:horizon]
- if (!any(is.na(serie)) && !any(is.na(pred)))
- {
- nb_no_NA_data = nb_no_NA_data + 1
- mape_increment = abs(serie - pred) / serie
- mape_increment[is.nan(mape_increment)] = 0. # 0 / 0
- mape_increment[!is.finite(mape_increment)] = 1. # >0 / 0
- mape_day = mape_day + mape_increment
- abs_increment = abs(serie - pred)
- abs_day = abs_day + abs_increment
- mape_indices[i] = mean(mape_increment)
- abs_indices[i] = mean(abs_increment)
- }
- }
-
- list(
- "abs" = list(
- "day" = abs_day / nb_no_NA_data,
- "indices" = abs_indices),
- "MAPE" = list(
- "day" = mape_day / nb_no_NA_data,
- "indices" = mape_indices) )
-}