X-Git-Url: https://git.auder.net/?p=talweg.git;a=blobdiff_plain;f=pkg%2FR%2FForecaster.R;h=da8579b7312bfcc520d8e2a8504202bb68ff2cbd;hp=2955479007e57eb5b4a63f7d520631e651a7d0bd;hb=98e958cab563866f8e00886b54336018a2e8bc97;hpb=af3b84f4cacade7d83221ca0249b546c50ddf340 diff --git a/pkg/R/Forecaster.R b/pkg/R/Forecaster.R index 2955479..da8579b 100644 --- a/pkg/R/Forecaster.R +++ b/pkg/R/Forecaster.R @@ -5,45 +5,41 @@ #' @docType class #' @importFrom R6 R6Class #' -#' @field params List of computed parameters, for post-run analysis (dev) -#' @field data Dataset, object of class Data -#' @field pjump Function: how to predict the jump at day interface ? +#' @field .params List of computed parameters, for post-run analysis (dev) +#' @field .pjump Function: how to predict the jump at day interface ? #' -#' @section Methods: \describe{ -#' \item{\code{initialize(data, pjump)}} -#' {Initialize a Forecaster object with a Data object and a jump prediction function.} -#' \item{\code{predictSerie(today,memory,horizon,...)}} -#' {Predict a new serie of \code{horizon} values at day index \code{today} +#' @section Methods: +#' \describe{ +#' \item{\code{initialize(data, pjump)}}{ +#' Initialize a Forecaster object with a Data object and a jump prediction function.} +#' \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.} -#' \item{\code{predictShape(today,memory,horizon,...)}} -#' {Predict a new shape of \code{horizon} values at day index \code{today} +#' \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.}} +#' \item{\code{getParameters()}}{ +#' Return (internal) parameters.}} Forecaster = R6::R6Class("Forecaster", private = list( .params = list(), - .data = NULL, .pjump = NULL ), public = list( - initialize = function(data, pjump) + initialize = function(pjump) { - private$.data <- data private$.pjump <- pjump invisible(self) }, - predictSerie = function(today, memory, horizon, ...) + predictSerie = function(data, today, memory, horizon, ...) { # Parameters (potentially) computed during shape prediction stage - predicted_shape = self$predictShape(today, memory, horizon, ...) - predicted_delta = private$.pjump( - private$.data, today, memory, horizon, private$.params, ...) + predicted_shape = self$predictShape(data, today, memory, horizon, ...) + predicted_delta = private$.pjump(data,today,memory,horizon,private$.params,...) # Predicted shape is aligned it on the end of current day + jump - predicted_shape + tail(private$.data$getSerie(today),1) - - predicted_shape[1] + predicted_delta + predicted_shape+tail(data$getSerie(today),1)-predicted_shape[1]+predicted_delta }, - predictShape = function(today, memory, horizon, ...) + predictShape = function(data, today, memory, horizon, ...) NULL #empty default implementation: to implement in inherited classes , getParameters = function()