X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FJ_Neighbors.R;fp=pkg%2FR%2FJ_Neighbors.R;h=33ba00d1dbad97d5405b9854b0ec8eb2d7eae514;hb=ff5df8e310b73883565761ab4b1aa5a0672e9f27;hp=0000000000000000000000000000000000000000;hpb=63ff1ecbd80adfe347faa0d954f526d15f033c22;p=talweg.git diff --git a/pkg/R/J_Neighbors.R b/pkg/R/J_Neighbors.R new file mode 100644 index 0000000..33ba00d --- /dev/null +++ b/pkg/R/J_Neighbors.R @@ -0,0 +1,21 @@ +#' Obtain jump forecast by the Neighbors method +#' +#' @inheritParams computeForecast +#' @inheritParams getZeroJumpPredict +getNeighborsJumpPredict = function(data, today, memory, horizon, params, ...) +{ + first_day = max(1, today-memory) + 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) + }) + scal_product = weights * gaps + norm_fact = sum( weights[!is.na(scal_product)] ) + sum(scal_product, na.rm=TRUE) / norm_fact +}