#' @inheritParams getZeroDeltaForecast
getPersistenceDeltaForecast = function(data, today, memory, horizon, shape_params, ...)
{
- # Return level of last similar "tomorrow" (thus -6) computed on "horizon"
- data$getSerie(today-6)[1] - tail(data$getSerie(today-7), 1)
+ #return gap between end of similar day curve and first day of tomorrow (in the past)
+ first_day = max(1, today-memory)
+ index = today-7
+ repeat
+ {
+ {
+ last_similar_serie_end = tail( data$getCenteredSerie(index), 1)
+ last_similar_tomorrow_begin = data$getCenteredSerie(index+1)[1]
+ index = index - 7
+ };
+ if (!is.na(last_similar_serie_end) && !is.na(last_similar_tomorrow_begin))
+ return (last_similar_tomorrow_begin - last_similar_serie_end);
+ if (index < first_day)
+ return (NA)
+ }
}