X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=pkg%2FR%2FcomputeForecast.R;h=082ba80d7887ea81914f47eadcf68a45e7c9c8e7;hb=8f5671db610e1e455b33b54986ac2e57de0da0d7;hp=c778d66f16043327b0f5fade15fc29d5c77c5ae3;hpb=4f3fdbb8e2ac4bd57a4e27539a58ef0e7ec2304c;p=talweg.git diff --git a/pkg/R/computeForecast.R b/pkg/R/computeForecast.R index c778d66..082ba80 100644 --- a/pkg/R/computeForecast.R +++ b/pkg/R/computeForecast.R @@ -19,14 +19,14 @@ #' \itemize{ #' \item Persistence : use last (similar) day #' \item Neighbors: re-use the weights from F_Neighbors -#' \item Zero: just output 0 (no adjustment) +#' \item LastValue: start serie with last observed value +#' \item Zero: no adjustment => use shape prediction only #' } -#' If pjump=NULL, then no adjustment is performed (output of \code{predictShape()} is -#' used directly). #' @param predict_from First time step to predict. #' @param memory Data depth (in days) to be used for prediction. #' @param horizon Last time step to predict. #' @param ncores Number of cores for parallel execution (1 to disable). +#' @param verbose TRUE to print basic traces (runs beginnings) #' @param ... Additional parameters for the forecasting models. #' #' @return An object of class Forecast @@ -35,7 +35,7 @@ #' ts_data <- system.file("extdata","pm10_mesures_H_loc.csv",package="talweg") #' exo_data <- system.file("extdata","meteo_extra_noNAs.csv",package="talweg") #' data <- getData(ts_data, exo_data, limit=200) -#' pred <- computeForecast(data, 100:130, "Persistence", "Zero", +#' pred <- computeForecast(data, 100:130, "Persistence", "LastValue", #' predict_from=8, memory=50, horizon=12, ncores=1) #' \dontrun{ #' #Sketch for real-time mode: @@ -60,7 +60,7 @@ #' } } #' @export computeForecast = function(data, indices, forecaster, pjump, predict_from, - memory=Inf, horizon=length(data$getSerie(1)), ncores=3, ...) + memory=Inf, horizon=length(data$getSerie(1)), ncores=3, verbose=FALSE, ...) { # (basic) Arguments sanity checks predict_from = as.integer(predict_from)[1] @@ -76,19 +76,20 @@ computeForecast = function(data, indices, forecaster, pjump, predict_from, stop("Indices out of range") if (!is.character(forecaster)) stop("forecaster (name): character") - if (!is.null(pjump) && !is.character(pjump)) - stop("pjump (function): character or NULL") + if (!is.character(pjump)) + stop("pjump (function): character") pred = Forecast$new( sapply(indices, function(i) integerIndexToDate(i,data)) ) forecaster_class_name = getFromNamespace( paste(forecaster,"Forecaster",sep=""), "talweg") - if (!is.null(pjump)) - pjump <- getFromNamespace(paste("get",pjump,"JumpPredict",sep=""), "talweg") + pjump <- getFromNamespace(paste("get",pjump,"JumpPredict",sep=""), "talweg") forecaster = forecaster_class_name$new(pjump) computeOneForecast <- function(i) { + if (verbose) + print(paste("Index",i)) list( "forecast" = forecaster$predictSerie(data,i,memory,predict_from,horizon,...), "params" = forecaster$getParameters(),