#'
#' Forecast encapsulation
#'
-#' @field pred List with
-#' \itemize{
-#' \item serie: forecasted serie
-#' \item params: corresponding list of parameters (weights, neighbors...)
-#' \item index: corresponding index in data object
-#' }
-#'
#' @docType class
#' @importFrom R6 R6Class
#'
-#' @export
+#' @field .pred List with \itemize{
+#' \item serie: forecasted serie
+#' \item params: corresponding list of parameters (weights, neighbors...)
+#' \item index: corresponding index in data object}
+#' @field .dates vector of day indices where forcast occurs
+#'
+#' @section Methods: \describe{
+#' \item{\code{initialize(dates)}}
+#' {Initialize a Forecast object with a series of date indices.}
+#' \item{\code{predictSerie(today,memory,horizon,...)}}
+#' {Predict a new serie of \code{horizon} values at day index \code{today} using \code{memory}
+#' days in the past.} TODO: continue #######################################
+#' \item{\code{predictShape(today,memory,horizon,...)}}
+#' {Predict a new shape of \code{horizon} values at day index \code{today} using \code{memory}
+#' days in the past.}
+#' \item{\code{getParameters()}}
+#' {Return (internal) parameters.} }
Forecast = R6::R6Class("Forecast",
private = list(
- .pred = "list",
- .dates = "Date"
+ .pred = list(),
+ .dates = c()
),
public = list(
initialize = function(dates)
- initialize(self, private, dates)
+ initializeForecast(self, private, dates)
,
getSize = function()
- getSize(private)
+ getSizeForecast(private)
,
append = function(new_serie, new_params, new_index)
- append(private, new_serie, new_params, new_index)
+ appendForecast(private, new_serie, new_params, new_index)
,
getDates = function()
- getDates(private)
+ getDatesForecast(private)
,
getSerie = function(index)
- getSerie(private, index)
+ getSerieForecast(private, index)
,
getParams = function(index)
- getParams(private, index)
+ getParamsForecast(private, index)
,
getIndexInData = function(index)
- getIndexInData(private, index)
+ getIndexInDataForecast(private, index)
)
)
#' @param o Object of class Forecast
#' @param private List of private members in o
#' @param dates vector of dates where forecast occurs
-initialize = function(o, private, dates)
+initializeForecast = function(o, private, dates)
{
- private$.dates <<- dates
- private$.pred <<- list()
+ private$.dates <- dates
invisible(o)
}
#' Number of individual forecasts"
#'
-#' @inheritParams initialize
-getSize = function(private)
+#' @inheritParams initializeForecast
+getSizeForecast = function(private)
length(private$.pred)
#' Obtain a new pair (serie, params)"
#'
-#' @inheritParams initialize
-append = function(new_serie, new_params, new_index_in_data)
+#' @inheritParams initializeForecast
+#' @param new_serie Values of a new serie
+#' @param new_params Associated (optimized) parameters
+#' @param new_index_in_data Corresponding index in data
+appendForecast = function(private, new_serie, new_params, new_index_in_data)
{
- private$.pred[[length(private$.pred)+1]] <<-
+ private$.pred[[length(private$.pred)+1]] <-
list("serie"=new_serie, "params"=new_params, "index_in_data"=new_index_in_data)
}
#' Dates where prediction occurs
#'
-#' inheritParams initialize
-getDates = function(private)
+#' inheritParams initializeForecast
+getDatesForecast = function(private)
private$.dates
#' Serie values at specified index"
#'
-#' @inheritParams initialize
+#' @inheritParams initializeForecast
#' @param index Return value at this index
-getSerie = function(index)
+getSerieForecast = function(index)
{
if (is(index,"Date"))
index = match(index, private$.dates)
#' Params at specified index"
#'
-#' @inheritParams getSerie
-getParams = function(index)
+#' @inheritParams getSerieForecast
+getParamsForecast = function(index)
{
if (is(index,"Date"))
index = match(index, private$.dates)
#' (day) Index in data where prediction took place"
#'
-#' @inheritParams getSerie
-getIndexInData = function(index)
+#' @inheritParams getSerieForecast
+getIndexInDataForecast = function(index)
{
if (is(index,"Date"))
index = match(index, private$.dates)