-#' Obtain jump forecast by the Neighbors method
+#' getNeighborsJumpPredict
+#'
+#' Apply optimized weights on gaps observed on selected neighbors.
+#' This jump prediction method can only be used in conjunction with the Neighbors
+#' Forecaster, because it makes use of the optimized parameters to re-apply the weights
+#' on the jumps observed at days interfaces of the past neighbors.
#'
#' @inheritParams computeForecast
#' @inheritParams getZeroJumpPredict
-getNeighborsJumpPredict = function(data, today, memory, horizon, params, ...)
+#'
+#' @aliases J_Neighbors
+#'
+getNeighborsJumpPredict = function(data, today, memory, predict_from, horizon,
+ params, ...)
{
first_day = max(1, today-memory)
- filter = params$indices >= first_day
+ filter = (params$indices >= first_day)
indices = params$indices[filter]
weights = params$weights[filter]
- if (any(is.na(weights) | is.na(indices)))
- return (NA)
-
gaps = sapply(indices, function(i) {
- data$getSerie(i+1)[1] - tail(data$getSerie(i), 1)
+ if (predict_from >= 2)
+ data$getSerie(i)[predict_from] - data$getSerie(i)[predict_from-1]
+ else
+ head(data$getSerie(i),1) - tail(data$getSerie(i-1),1)
})
scal_product = weights * gaps
norm_fact = sum( weights[!is.na(scal_product)] )