X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=pkg%2FR%2FJ_Neighbors.R;h=40341d9eb9cf77df34226a8c0f6f78180d6226ac;hb=c36568faefc97bb417d355e2084398c1ad1acf92;hp=12fc9d4266780c143fc2b250f161d7f7d271dce6;hpb=2057c793ad9929ed5bef8663ea28b896c84df0fc;p=talweg.git diff --git a/pkg/R/J_Neighbors.R b/pkg/R/J_Neighbors.R index 12fc9d4..40341d9 100644 --- a/pkg/R/J_Neighbors.R +++ b/pkg/R/J_Neighbors.R @@ -1,8 +1,15 @@ -#' 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 #' +#' @aliases J_Neighbors +#' getNeighborsJumpPredict = function(data, today, memory, horizon, params, ...) { first_day = max(1, today-memory) @@ -10,11 +17,8 @@ getNeighborsJumpPredict = function(data, today, memory, horizon, params, ...) indices = params$indices[filter] weights = params$weights[filter] - if (any(is.na(weights) | is.na(indices))) - return (NA) - gaps = sapply(indices, function(i) { - head( data$getSerie(i+1), 1) - tail( data$getSerie(i), 1) + head( data$getSerie(i+1),1 ) - tail( data$getSerie(i),1 ) }) scal_product = weights * gaps norm_fact = sum( weights[!is.na(scal_product)] )