reorganize folder
[talweg.git] / pkg / R / J_Neighbors.R
diff --git a/pkg/R/J_Neighbors.R b/pkg/R/J_Neighbors.R
new file mode 100644 (file)
index 0000000..03d3340
--- /dev/null
@@ -0,0 +1,20 @@
+#' Obtain jump forecast by the Neighbors method
+#'
+#' @inheritParams getForecast
+#' @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
+}