Commit | Line | Data |
---|---|---|
25b75559 | 1 | #' Forecaster |
e030a6e3 | 2 | #' |
25b75559 | 3 | #' Forecaster (abstract class, implemented by all forecasters) |
e030a6e3 | 4 | #' |
a66a84b5 BA |
5 | #' @docType class |
6 | #' @importFrom R6 R6Class | |
7 | #' | |
e030a6e3 BA |
8 | #' @field params List of computed parameters, for post-run analysis (dev) |
9 | #' @field data Dataset, object of class Data | |
10 | #' @field pjump Function: how to predict the jump at day interface ? | |
25b75559 | 11 | #' |
a66a84b5 BA |
12 | #' @section Methods: \describe{ |
13 | #' \item{\code{initialize(data, pjump)}} | |
14 | #' {Initialize a Forecaster object with a Data object and a jump prediction function.} | |
15 | #' \item{\code{predictSerie(today,memory,horizon,...)}} | |
16 | #' {Predict a new serie of \code{horizon} values at day index \code{today} using \code{memory} | |
17 | #' days in the past.} | |
18 | #' \item{\code{predictShape(today,memory,horizon,...)}} | |
19 | #' {Predict a new shape of \code{horizon} values at day index \code{today} using \code{memory} | |
20 | #' days in the past.} | |
21 | #' \item{\code{getParameters()}} | |
5d83d815 | 22 | #' {Return (internal) parameters.}} |
25b75559 BA |
23 | Forecaster = R6::R6Class("Forecaster", |
24 | private = list( | |
a66a84b5 BA |
25 | .params = list(), |
26 | .data = NULL, | |
27 | .pjump = NULL | |
e030a6e3 | 28 | ), |
25b75559 BA |
29 | public = list( |
30 | initialize = function(data, pjump) | |
a66a84b5 BA |
31 | { |
32 | private$.data <- data | |
33 | private$.pjump <- pjump | |
34 | invisible(self) | |
35 | }, | |
25b75559 | 36 | predictSerie = function(today, memory, horizon, ...) |
a66a84b5 BA |
37 | { |
38 | # Parameters (potentially) computed during shape prediction stage | |
5d83d815 | 39 | predicted_shape = self$predictShape(today, memory, horizon, ...) |
a66a84b5 BA |
40 | predicted_delta = private$.pjump(private$.data,today,memory,horizon,private$.params,...) |
41 | # Predicted shape is aligned it on the end of current day + jump | |
42 | predicted_shape+tail(private$.data$getSerie(today),1)-predicted_shape[1]+predicted_delta | |
43 | }, | |
e030a6e3 | 44 | predictShape = function(today, memory, horizon, ...) |
5d83d815 | 45 | NULL #empty default implementation: to implement in inherited classes |
25b75559 | 46 | , |
e030a6e3 | 47 | getParameters = function() |
a66a84b5 | 48 | private$.params |
e030a6e3 BA |
49 | ) |
50 | ) |