--- /dev/null
+#' @include Forecaster.R
+#'
+#' @title Average Forecaster
+#'
+#' @description Return the (pointwise) average of the all the (similar) centered day curves
+#' in the past. Inherits \code{\link{Forecaster}}
+AverageForecaster = setRefClass(
+ Class = "AverageForecaster",
+ contains = "Forecaster",
+
+ methods = list(
+ initialize = function(...)
+ {
+ callSuper(...)
+ },
+ predictShape = function(today, memory, horizon, ...)
+ {
+ avg = rep(0., horizon)
+ first_day = max(1, today-memory)
+ index = today-7 + 1
+ nb_no_na_series = 0
+ repeat
+ {
+ {
+ serie_on_horizon = data$getCenteredSerie(index)[1:horizon]
+ index = index - 7
+ };
+ if (!any(is.na(serie_on_horizon)))
+ {
+ avg = avg + serie_on_horizon
+ nb_no_na_series = nb_no_na_series + 1
+ };
+ if (index < first_day)
+ break
+ }
+ avg / nb_no_na_series
+ }
+ )
+)