diff --git a/.Rbuildignore b/.Rbuildignore new file mode 100644 index 0000000..931662b --- /dev/null +++ b/.Rbuildignore @@ -0,0 +1,3 @@ +^.*\.Rproj$ +^\.Rproj\.user$ +^README\.Rmd$ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5b6a065 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.Rproj.user +.Rhistory +.RData +.Ruserdata diff --git a/DESCRIPTION b/DESCRIPTION new file mode 100644 index 0000000..82e89e8 --- /dev/null +++ b/DESCRIPTION @@ -0,0 +1,34 @@ +Package: rjd3highfreq +Type: Package +Title: Seasonal Adjustment of High Frequency Data with 'JDemetra+ 3.0' +Version: 1.0.0 +Authors@R: c( + person("Jean", "Palate", role = c("aut", "cre"), + email = "jean.palate@nbb.be")) +Description: Interface around 'JDemetra+ 3.x' () seasonal adjustment software, STACE project. + It offers access to several functions around the seasonal adjustment of high frequency data time series: + STL, Loess, fractional airline and extension of X-11. +Depends: + R (>= 3.6.0) +Imports: + rJava (>= 1.0-6), + RProtoBuf (>= 0.4.17), + rjd3toolkit (>= 3.0.1), + rjd3sts (>= 1.0.1), + checkmate, + methods +SystemRequirements: Java JRE 17 or higher +License: EUPL +URL: https://github.com/palatej/rjd3highfreq +LazyData: TRUE +Suggests: + knitr, + rmarkdown +RoxygenNote: 7.2.3 +BugReports: https://github.com/palatej/rjd3highfreq/issues +Encoding: UTF-8 +Collate: + 'utils.R' + 'jd3_fractionalairline.R' + 'print.R' + 'zzz.R' diff --git a/NAMESPACE b/NAMESPACE new file mode 100644 index 0000000..d429dff --- /dev/null +++ b/NAMESPACE @@ -0,0 +1,34 @@ +# Generated by roxygen2: do not edit by hand + +S3method(print,JDFractionalAirlineDecomposition) +S3method(print,JDFractionalAirlineEstimation) +export(fractionalAirlineDecomposition) +export(fractionalAirlineDecomposition_raw) +export(fractionalAirlineDecomposition_ssf) +export(fractionalAirlineEstimation) +export(jd2r_fractionalAirlineDecomposition) +export(jd2r_multiAirlineDecomposition) +export(multiAirlineDecomposition) +export(multiAirlineDecomposition_raw) +export(multiAirlineDecomposition_ssf) +import(rjd3sts) +importFrom(RProtoBuf,readProtoFiles2) +importFrom(methods,new) +importFrom(rJava,.jarray) +importFrom(rJava,.jcall) +importFrom(rJava,.jcast) +importFrom(rJava,.jcastToArray) +importFrom(rJava,.jclass) +importFrom(rJava,.jevalArray) +importFrom(rJava,.jinstanceof) +importFrom(rJava,.jnew) +importFrom(rJava,.jnull) +importFrom(rJava,.jpackage) +importFrom(rJava,is.jnull) +importFrom(rjd3toolkit,dictionary) +importFrom(rjd3toolkit,result) +importFrom(stats,frequency) +importFrom(stats,is.ts) +importFrom(stats,pt) +importFrom(stats,start) +importFrom(stats,ts) diff --git a/R/jd3_fractionalairline.R b/R/jd3_fractionalairline.R new file mode 100644 index 0000000..320f970 --- /dev/null +++ b/R/jd3_fractionalairline.R @@ -0,0 +1,329 @@ +#' @include utils.R +NULL + +ucm_extract<-function(jrslt, cmp){ + path<-paste0("ucarima.component(", cmp,")") + return (arima_extract(jrslt, path)) +} + +arima_extract<-function(jrslt, path){ + str<-rjd3toolkit::.proc_str(jrslt, paste0(path, ".name")) + ar<-rjd3toolkit::.proc_vector(jrslt, paste0(path, ".ar")) + delta<-rjd3toolkit::.proc_vector(jrslt, paste0(path, ".delta")) + ma<-rjd3toolkit::.proc_vector(jrslt, paste0(path, ".ma")) + var<-rjd3toolkit::.proc_numeric(jrslt, paste0(path, ".var")) + return (rjd3toolkit::arima_model(str, ar,delta,ma,var)) +} + + + +#' Perform an Arima Model Based (AMB) decomposition +#' +#' @param y input time series. +#' @param period period of the seasonal component, any positive real number. +#' @param adjust Boolean: TRUE: actual fractional airline model is to be used, FALSE: the period is rounded to the nearest integer. +#' @param sn decomposition into signal and noise (2 components only). The signal is the seasonally adjusted series and the noise the seasonal component. +#' @param stde Boolean: TRUE: compute standard deviations of the components. In some cases (memory limits), it is currently not possible to compute them +#' @param nbcasts number of backcasts. +#' @param nfcasts number of forecasts. +#' +#' @return +#' @export +#' +#' @examples +fractionalAirlineDecomposition <- function(y, period, sn = F, stde = F, nbcasts = 0, nfcasts = 0) +{ + checkmate::assertNumeric(y, null.ok = F) + checkmate::assertNumeric(period, len = 1, null.ok = F) + checkmate::assertLogical(sn, len = 1, null.ok = F) + jrslt <- .jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", + "Ljdplus/highfreq/base/core/extendedairline/decomposition/LightExtendedAirlineDecomposition;", + "decompose", as.numeric(y), period, sn, stde, as.integer(nbcasts), + as.integer(nfcasts)) + return(jd2r_fractionalAirlineDecomposition(jrslt, sn, stde, period)) +} + + +#' Perform an Arima Model Based (AMB) decomposition on several periodcities at once +#' +#' @param y input time series. +#' @param periods vector of periods values of the seasonal component, any positive real numbers. +#' @param adjust Boolean: TRUE: actual fractional airline model is to be used, FALSE: the period is rounded to the nearest integer. +#' @param sn decomposition into signal and noise (2 components only). The signal is the seasonally adjusted series and the noise the seasonal component. +#' @param stde Boolean: TRUE: compute standard deviations of the components. In some cases (memory limits), it is currently not possible to compute them +#' @param nbcasts number of backcasts. +#' @param nfcasts number of forecasts. +#' +#' @return +#' @export +#' +#' @examples +multiAirlineDecomposition <- function(y, periods, ndiff = 2, ar = F, stde = F, nbcasts = 0, + nfcasts = 0) +{ + if (length(periods) == 1) { + return(fractionalAirlineDecomposition(y, periods, stde = stde, + nbcasts = nbcasts, nfcasts = nfcasts)) + } + checkmate::assertNumeric(y, null.ok = F) + jrslt <- .jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", + "Ljdplus/highfreq/base/core/extendedairline/decomposition/LightExtendedAirlineDecomposition;", + "decompose", as.numeric(y), .jarray(periods), as.integer(ndiff), + ar, stde, as.integer(nbcasts), as.integer(nfcasts)) + if (length(periods) == 1) { + return(jd2r_fractionalAirlineDecomposition(jrslt, F, + stde, periods)) + } + else { + return(jd2r_multiAirlineDecomposition(jrslt, stde, periods)) + } +} + + +#' Linearize the series with a fractional airline model +#' +#' @param y input time series. +#' @param periods vector of periods values of the seasonal component, any positive real numbers. +#' @param x matrix of user-defined regression variables (see rjd3toolkit for building calendar regressors). +#' @param mean add constant mean to y after differencing. +#' @param outliers type of outliers sub vector of c("AO","LS","WO") +#' @param criticalValue Critical value for automatic outlier detection +#' @param precision Precision of the likelihood +#' @param approximateHessian Compute approximate hessian (based on the optimizing procedure) +#' @param nfcasts Number of forecasts +#' +#' @return +#' @export +#' +#' @examples +fractionalAirlineEstimation <- function( + y, periods, x = NULL, ndiff = 2, ar = F, mean = FALSE, + outliers = NULL, criticalValue = 6, precision = 1e-12, approximateHessian = F, nfcasts=0) +{ + checkmate::assertNumeric(y, null.ok = F) + checkmate::assertNumeric(criticalValue, len = 1, null.ok = F) + checkmate::assertNumeric(precision, len = 1, null.ok = F) + checkmate::assertLogical(mean, len = 1, null.ok = F) + if (is.null(outliers)) + joutliers <- .jnull("[Ljava/lang/String;") + else joutliers = .jarray(outliers, "java.lang.String") + jrslt <- .jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", + "Ljdplus/highfreq/base/core/extendedairline/ExtendedAirlineEstimation;", "estimate", + as.numeric(y), rjd3toolkit::.r2jd_matrix(x), mean, .jarray(periods), + as.integer(ndiff), ar, joutliers, criticalValue, precision, + approximateHessian, as.integer(nfcasts)) + model <- list( + y = as.numeric(y), + periods = periods, + variables = rjd3toolkit::.proc_vector(jrslt, "variables"), + xreg = rjd3toolkit::.proc_matrix(jrslt, "regressors"), + b = rjd3toolkit::.proc_vector(jrslt, "b"), + bcov = rjd3toolkit::.proc_matrix(jrslt, "bvar"), + linearized = rjd3toolkit::.proc_vector(jrslt, "lin"), + component_wo = rjd3toolkit::.proc_vector(jrslt, "component_wo"), + component_ao = rjd3toolkit::.proc_vector(jrslt, "component_ao"), + component_ls = rjd3toolkit::.proc_vector(jrslt, "component_ls"), + component_outliers = rjd3toolkit::.proc_vector(jrslt, "component_outliers"), + component_userdef_reg_variables = rjd3toolkit::.proc_vector(jrslt, "component_userdef_reg_variables"), + component_mean = rjd3toolkit::.proc_vector(jrslt, "component_mean")) + + estimation <- list(parameters = rjd3toolkit::.proc_vector(jrslt, "parameters"), + score = rjd3toolkit::.proc_vector(jrslt, "score"), + covariance = rjd3toolkit::.proc_matrix(jrslt, "pcov")) + + likelihood <- rjd3toolkit::.proc_likelihood(jrslt, "likelihood.") + + return(structure(list(model = model, + estimation = estimation, + likelihood = likelihood), + class = "JDFractionalAirlineEstimation")) +} + +#' Title +#' +#' @param y +#' @param periods +#' @param ndiff +#' @param stde +#' @param nbcasts +#' @param nfcasts +#' +#' @return +#' @export +#' +#' @examples +multiAirlineDecomposition_raw<-function(y, periods, ndiff=2, ar=F, stde=F, nbcasts=0, nfcasts=0){ + checkmate::assertNumeric(y, null.ok = F) + + jrslt<-.jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", + "Ljdplus/highfreq/base/core/extendedairline/decomposition/LightExtendedAirlineDecomposition;", + "decompose", as.numeric(y), + .jarray(periods), as.integer(ndiff), ar, stde, as.integer(nbcasts), as.integer(nfcasts)) + + return (jrslt) +} + +#' Title +#' +#' @param jdecomp +#' +#' @return +#' @export +#' +#' @examples +multiAirlineDecomposition_ssf<-function(jdecomp){ + jssf<-.jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", + "Ljdplus/highfreq/base/core/ssf/extractors/SsfUcarimaEstimation;", "ssfDetails", jdecomp) + return (rjd3toolkit::.jd3_object(jssf, result=T)) +} + +#' Title +#' +#' @param y +#' @param period +#' @param sn +#' @param stde +#' @param nbcasts +#' @param nfcasts +#' +#' @return +#' @export +#' +#' @examples +fractionalAirlineDecomposition_raw<-function(y, period, sn=F, stde=F, nbcasts=0, nfcasts=0){ + checkmate::assertNumeric(y, null.ok = F) + checkmate::assertNumeric(period, len = 1, null.ok = F) + checkmate::assertLogical(sn, len = 1, null.ok = F) + jrslt<-.jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", + "Ljdplus/highfreq/base/core/extendedairline/decomposition/LightExtendedAirlineDecomposition;", + "decompose", as.numeric(y), + period, sn, stde, as.integer(nbcasts), as.integer(nfcasts)) + return (jrslt) +} + +#' Title +#' +#' @param jdecomp +#' +#' @return +#' @export +#' +#' @examples +fractionalAirlineDecomposition_ssf<-function(jdecomp){ + jssf<-.jcall("jdplus/highfreq/base/r/FractionalAirlineProcessor", "Ljdplus/highfreq/base/core/ssf/extractors/SsfUcarimaEstimation;", "ssfDetails", jdecomp) + return (rjd3toolkit::.jd3_object(jssf, result=T)) +} + + +#' Title +#' +#' @param jrslt +#' @param stde +#' +#' @return +#' @export +#' +#' @examples +jd2r_multiAirlineDecomposition <- function (jrslt, stde = F, periods) +{ + ncmps <- rjd3toolkit::.proc_int(jrslt, "ucarima.size") + model <- rjd3highfreq:::arima_extract(jrslt, "ucarima_model") + cmps <- lapply(1:ncmps, function(cmp) { + return(rjd3highfreq:::ucm_extract(jrslt, cmp)) + }) + ucarima <- rjd3toolkit::ucarima_model(model, cmps) + yc <- rjd3toolkit::.proc_vector(jrslt, "y") + estimation <- list( + parameters = rjd3toolkit::.proc_vector(jrslt, "parameters"), + score = rjd3toolkit::.proc_vector(jrslt, "score"), + covariance = rjd3toolkit::.proc_matrix(jrslt, "pcov"), + periods = periods) + likelihood <- rjd3toolkit::.proc_likelihood(jrslt, "likelihood.") + ncmps <- rjd3toolkit::.proc_int(jrslt, "ncmps") + if (stde) { + decomposition <- lapply((1:ncmps), function(j) { + return(cbind( + rjd3toolkit::.proc_vector(jrslt, paste0("cmp(", j, ")")), + rjd3toolkit::.proc_vector(jrslt, paste0("cmp_stde(", j, ")")))) + }) + } + else { + decomposition <- lapply((1:ncmps), function(j) { + return(rjd3toolkit::.proc_vector(jrslt, paste0("cmp(", j, ")"))) + }) + } + return(structure(list(ucarima = ucarima, + decomposition = decomposition, + estimation = estimation, + likelihood = likelihood), + class = "JDFractionalAirlineDecomposition")) +} + + +#' Title +#' +#' @param jrslt +#' @param sn +#' @param stde +#' +#' @return +#' @export +#' +#' @examples +jd2r_fractionalAirlineDecomposition <- function (jrslt, sn = F, stde = F, period) +{ + ncmps <- rjd3toolkit::.proc_int(jrslt, "ucarima.size") + model <- rjd3highfreq:::arima_extract(jrslt, "ucarima_model") + cmps <- lapply(1:ncmps, function(cmp) { + return(rjd3highfreq:::ucm_extract(jrslt, cmp)) + }) + ucarima <- rjd3toolkit::ucarima_model(model, cmps) + yc <- rjd3toolkit::.proc_vector(jrslt, "y") + sa <- rjd3toolkit::.proc_vector(jrslt, "sa") + s <- rjd3toolkit::.proc_vector(jrslt, "s") + if (sn) { + if (stde) { + decomposition <- list( + y = yc, + sa = sa, + s = s, + s.stde = rjd3toolkit::.proc_vector(jrslt, "s_stde")) + } + else { + decomposition <- list(y = yc, sa = sa, s = s) + } + } + else { + t <- rjd3toolkit::.proc_vector(jrslt, "t") + i <- rjd3toolkit::.proc_vector(jrslt, "i") + if (stde) { + decomposition <- list( + y = yc, + t = t, + sa = sa, + s = s, + i = i, + t.stde = rjd3toolkit::.proc_vector(jrslt, "t_stde"), + s.stde = rjd3toolkit::.proc_vector(jrslt, "s_stde"), + i.stde = rjd3toolkit::.proc_vector(jrslt, "i_stde")) + } + else { + decomposition <- list(y = yc, t = t, sa = sa, s = s, i = i) + } + } + estimation <- list( + parameters = rjd3toolkit::.proc_vector(jrslt, "parameters"), + score = rjd3toolkit::.proc_vector(jrslt, "score"), + covariance = rjd3toolkit::.proc_matrix(jrslt, "pcov"), + periods = period) + + likelihood <- rjd3toolkit::.proc_likelihood(jrslt, "likelihood.") + + return(structure(list(ucarima = ucarima, + decomposition = decomposition, + estimation = estimation, + likelihood = likelihood), + class = "JDFractionalAirlineDecomposition")) +} + + diff --git a/R/print.R b/R/print.R new file mode 100644 index 0000000..4926498 --- /dev/null +++ b/R/print.R @@ -0,0 +1,137 @@ + +#' @export +print.JDFractionalAirlineDecomposition <- function(x, digits = max(3L, getOption("digits") - 3L), ...) +{ + # Estimated MA parameters (coefs, se, student) + nb_freq <- length(x$estimation$parameters) - 1L + est_ma_params <- data.frame( + MA_parameter = c("Theta(1)", + paste0("Theta(", paste0("period = ", + x$estimation$periods), ")")), + Coef = x$estimation$parameters, + Coef_SE = sqrt(diag(x$estimation$covariance)), + check.names = FALSE) + est_ma_params$Tstat <- est_ma_params$Coef / est_ma_params$Coef_SE + + cat("\n") + cat("Estimate MA parameters:") + cat("\n") + print(est_ma_params, row.names = FALSE) + + cat("\n") + cat("Decomposition:") + cat("\n") + decompo_table <- do.call(cbind, x$decomposition) + print(tail(decompo_table, n = 10)) + cat("\n") + + cat("Number of observations:", formatC(x$likelihood$nobs, digits = digits)) + cat("\n") + + cat("Sum of square residuals:", formatC(x$likelihood$ssq, digits = digits), + "on", x$likelihood$df, "degrees of freedom", + sep = " ") + cat("\n") + + cat("Log likelihood = ", formatC(x$likelihood$ll, digits = digits), + ", \n\taic = ", formatC(x$likelihood$aic, digits = digits), + ", \n\taicc = ", formatC(x$likelihood$aicc, digits = digits), + ", \n\tbic(corrected for length) = ", + formatC(x$likelihood$bicc, digits = digits), sep = "") + cat("\n") + + cat("Hannan–Quinn information criterion = ", + formatC(x$likelihood$hannanquinn, digits = digits), sep = "") + + cat("\n\n") + + return(invisible(x)) +} + +#' @export +print.JDFractionalAirlineEstimation <- function(x, digits = max(3L, getOption("digits") - 3L), ...) { + + nb_outliers <- sum((x$model$variables |> + substr(1L, 2L) |> + toupper()) %in% c("AO", "WO", "LS")) + nb_reg_cjo <- length(x$model$variables) - nb_outliers + + summary_coeff <- data.frame( + "Variable" = x$model$variables, + "Coef" = x$model$b, + "Coef_SE" = sqrt(diag(x$model$bcov))) + summary_coeff$Tstat <- round(summary_coeff$Coef / summary_coeff$Coef_SE, digits) + summary_coeff$Coef <- round(summary_coeff$Coef, digits) + summary_coeff$Coef_SE <- round(summary_coeff$Coef_SE, digits) + + if (nb_outliers > 0) { + + outliers_coeff <- summary_coeff[(nb_reg_cjo + 1L):nrow(summary_coeff), ] + outliers <- outliers_coeff$Variable + + } + + if(nb_reg_cjo > 0) { + reg_cjo_coeff <- summary_coeff[1:nb_reg_cjo, ] + reg_cjo <- reg_cjo_coeff$Variable + } + + # Estimated MA parameters (coefs, se, student) + nb_freq <- (x$estimation$parameters |> length()) - 1L + est_ma_params <- data.frame( + MA_parameter = c("Theta(1)", + paste0("Theta(", paste0("period = ", + x$model$periods), ")")), + Coef = x$estimation$parameters, + Coef_SE = sqrt(diag(x$estimation$covariance)), + check.names = FALSE) + est_ma_params$Tstat <- est_ma_params$Coef / est_ma_params$Coef_SE + + cat("\n") + cat("Estimate MA parameters:") + cat("\n") + print(est_ma_params, row.names = FALSE) + + cat("\n") + cat("Number of calendar regressors:", nb_reg_cjo, ", Number of outliers :", nb_outliers) + cat("\n\n") + + if(nb_reg_cjo > 0) { + cat("TD regressors coefficients:") + cat("\n") + print(reg_cjo_coeff, row.names = FALSE) + # print(head(reg_cjo_coeff, 10), row.names = FALSE) + # if (nb_reg_cjo > 10) cat("...\n") + cat("\n") + } + + if(nb_outliers > 0) { + cat("Outliers coefficients:") + cat("\n") + print(outliers_coeff, row.names = FALSE) + # print(head(outliers_coeff, 10), row.names = FALSE) + # if (nb_outliers > 10) cat("...\n") + cat("\n") + } + + cat("Number of observations:", formatC(x$likelihood$nobs, digits = digits)) + cat("\n") + + cat("Sum of square residuals:", formatC(x$likelihood$ssq, digits = digits), + "on", x$likelihood$df, "degrees of freedom", + sep = " ") + cat("\n") + + cat("Log likelihood = ", formatC(x$likelihood$ll, digits = digits), + ", \n\taic = ", formatC(x$likelihood$aic, digits = digits), + ", \n\taicc = ", formatC(x$likelihood$aicc, digits = digits), + ", \n\tbic(corrected for length) = ", + formatC(x$likelihood$bicc, digits = digits), sep = "") + cat("\n") + + cat("Hannan–Quinn information criterion = ", + formatC(x$likelihood$hannanquinn, digits = digits), sep = "") + + cat("\n\n") + return(invisible(x)) +} diff --git a/R/utils.R b/R/utils.R new file mode 100644 index 0000000..d8fa7a0 --- /dev/null +++ b/R/utils.R @@ -0,0 +1,6 @@ +#' @importFrom rJava .jpackage .jcall .jnull .jarray .jevalArray .jcast .jcastToArray .jinstanceof is.jnull .jnew .jclass +#' @importFrom RProtoBuf readProtoFiles2 +#' @importFrom stats frequency is.ts pt start ts +#' @importFrom rjd3toolkit result dictionary +#' @importFrom methods new +NULL diff --git a/R/zzz.R b/R/zzz.R new file mode 100644 index 0000000..4518ca3 --- /dev/null +++ b/R/zzz.R @@ -0,0 +1,16 @@ +#' @include utils.R +#' @import rjd3sts + +.onLoad <- function(libname, pkgname) { + if (! requireNamespace("rjd3sts", quietly=T)) stop("Loading rjd3 libraries failed") + + result <- .jpackage(pkgname, lib.loc=libname) + if (!result) stop("Loading java packages failed") + + #proto.dir <- system.file("proto", package = pkgname) + #RProtoBuf::readProtoFiles2(protoPath = proto.dir) + + # reload extractors + .jcall("jdplus/toolkit/base/api/information/InformationExtractors", "V", "reloadExtractors") +} + diff --git a/README.Rmd b/README.Rmd new file mode 100644 index 0000000..217b3e1 --- /dev/null +++ b/README.Rmd @@ -0,0 +1,27 @@ +--- +output: github_document +--- + + + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>", + fig.path = "man/figures/README-", + out.width = "100%" +) +``` + +# rjd3highfreq + +High-frequency time series + +## Installation + +```{r, eval = FALSE} +# Install development version from GitHub +# install.packages("remotes") +remotes::install_github("palatej/rjd3toolkit") +remotes::install_github("palatej/rjd3highfreq") +``` \ No newline at end of file diff --git a/README.md b/README.md index 933648f..993feac 100644 --- a/README.md +++ b/README.md @@ -1 +1,15 @@ -# rjd3highfreq \ No newline at end of file + + + +# rjd3highfreq + +High-frequency time series + +## Installation + +``` r +# Install development version from GitHub +# install.packages("remotes") +remotes::install_github("palatej/rjd3toolkit") +remotes::install_github("palatej/rjd3highfreq") +``` diff --git a/inst/java/jdplus-highfreq-base-api-1.1.0-SNAPSHOT.jar b/inst/java/jdplus-highfreq-base-api-1.1.0-SNAPSHOT.jar new file mode 100644 index 0000000..d1196c3 Binary files /dev/null and b/inst/java/jdplus-highfreq-base-api-1.1.0-SNAPSHOT.jar differ diff --git a/inst/java/jdplus-highfreq-base-core-1.1.0-SNAPSHOT.jar b/inst/java/jdplus-highfreq-base-core-1.1.0-SNAPSHOT.jar new file mode 100644 index 0000000..17df54c Binary files /dev/null and b/inst/java/jdplus-highfreq-base-core-1.1.0-SNAPSHOT.jar differ diff --git a/inst/java/jdplus-highfreq-base-r-1.1.0-SNAPSHOT.jar b/inst/java/jdplus-highfreq-base-r-1.1.0-SNAPSHOT.jar new file mode 100644 index 0000000..eab0634 Binary files /dev/null and b/inst/java/jdplus-highfreq-base-r-1.1.0-SNAPSHOT.jar differ diff --git a/man/fractionalAirlineDecomposition.Rd b/man/fractionalAirlineDecomposition.Rd new file mode 100644 index 0000000..f193a25 --- /dev/null +++ b/man/fractionalAirlineDecomposition.Rd @@ -0,0 +1,33 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{fractionalAirlineDecomposition} +\alias{fractionalAirlineDecomposition} +\title{Perform an Arima Model Based (AMB) decomposition} +\usage{ +fractionalAirlineDecomposition( + y, + period, + sn = F, + stde = F, + nbcasts = 0, + nfcasts = 0 +) +} +\arguments{ +\item{y}{input time series.} + +\item{period}{period of the seasonal component, any positive real number.} + +\item{sn}{decomposition into signal and noise (2 components only). The signal is the seasonally adjusted series and the noise the seasonal component.} + +\item{stde}{Boolean: TRUE: compute standard deviations of the components. In some cases (memory limits), it is currently not possible to compute them} + +\item{nbcasts}{number of backcasts.} + +\item{nfcasts}{number of forecasts.} + +\item{adjust}{Boolean: TRUE: actual fractional airline model is to be used, FALSE: the period is rounded to the nearest integer.} +} +\description{ +Perform an Arima Model Based (AMB) decomposition +} diff --git a/man/fractionalAirlineDecomposition_raw.Rd b/man/fractionalAirlineDecomposition_raw.Rd new file mode 100644 index 0000000..1c7ca70 --- /dev/null +++ b/man/fractionalAirlineDecomposition_raw.Rd @@ -0,0 +1,31 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{fractionalAirlineDecomposition_raw} +\alias{fractionalAirlineDecomposition_raw} +\title{Title} +\usage{ +fractionalAirlineDecomposition_raw( + y, + period, + sn = F, + stde = F, + nbcasts = 0, + nfcasts = 0 +) +} +\arguments{ +\item{y}{} + +\item{period}{} + +\item{sn}{} + +\item{stde}{} + +\item{nbcasts}{} + +\item{nfcasts}{} +} +\description{ +Title +} diff --git a/man/fractionalAirlineDecomposition_ssf.Rd b/man/fractionalAirlineDecomposition_ssf.Rd new file mode 100644 index 0000000..de278e3 --- /dev/null +++ b/man/fractionalAirlineDecomposition_ssf.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{fractionalAirlineDecomposition_ssf} +\alias{fractionalAirlineDecomposition_ssf} +\title{Title} +\usage{ +fractionalAirlineDecomposition_ssf(jdecomp) +} +\arguments{ +\item{jdecomp}{} +} +\description{ +Title +} diff --git a/man/fractionalAirlineEstimation.Rd b/man/fractionalAirlineEstimation.Rd new file mode 100644 index 0000000..76976d9 --- /dev/null +++ b/man/fractionalAirlineEstimation.Rd @@ -0,0 +1,42 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{fractionalAirlineEstimation} +\alias{fractionalAirlineEstimation} +\title{Linearize the series with a fractional airline model} +\usage{ +fractionalAirlineEstimation( + y, + periods, + x = NULL, + ndiff = 2, + ar = F, + mean = FALSE, + outliers = NULL, + criticalValue = 6, + precision = 1e-12, + approximateHessian = F, + nfcasts = 0 +) +} +\arguments{ +\item{y}{input time series.} + +\item{periods}{vector of periods values of the seasonal component, any positive real numbers.} + +\item{x}{matrix of user-defined regression variables (see rjd3toolkit for building calendar regressors).} + +\item{mean}{add constant mean to y after differencing.} + +\item{outliers}{type of outliers sub vector of c("AO","LS","WO")} + +\item{criticalValue}{Critical value for automatic outlier detection} + +\item{precision}{Precision of the likelihood} + +\item{approximateHessian}{Compute approximate hessian (based on the optimizing procedure)} + +\item{nfcasts}{Number of forecasts} +} +\description{ +Linearize the series with a fractional airline model +} diff --git a/man/jd2r_fractionalAirlineDecomposition.Rd b/man/jd2r_fractionalAirlineDecomposition.Rd new file mode 100644 index 0000000..5b0a74d --- /dev/null +++ b/man/jd2r_fractionalAirlineDecomposition.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{jd2r_fractionalAirlineDecomposition} +\alias{jd2r_fractionalAirlineDecomposition} +\title{Title} +\usage{ +jd2r_fractionalAirlineDecomposition(jrslt, sn = F, stde = F, period) +} +\arguments{ +\item{jrslt}{} + +\item{sn}{} + +\item{stde}{} +} +\description{ +Title +} diff --git a/man/jd2r_multiAirlineDecomposition.Rd b/man/jd2r_multiAirlineDecomposition.Rd new file mode 100644 index 0000000..81d0305 --- /dev/null +++ b/man/jd2r_multiAirlineDecomposition.Rd @@ -0,0 +1,16 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{jd2r_multiAirlineDecomposition} +\alias{jd2r_multiAirlineDecomposition} +\title{Title} +\usage{ +jd2r_multiAirlineDecomposition(jrslt, stde = F, periods) +} +\arguments{ +\item{jrslt}{} + +\item{stde}{} +} +\description{ +Title +} diff --git a/man/multiAirlineDecomposition.Rd b/man/multiAirlineDecomposition.Rd new file mode 100644 index 0000000..233ae71 --- /dev/null +++ b/man/multiAirlineDecomposition.Rd @@ -0,0 +1,34 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{multiAirlineDecomposition} +\alias{multiAirlineDecomposition} +\title{Perform an Arima Model Based (AMB) decomposition on several periodcities at once} +\usage{ +multiAirlineDecomposition( + y, + periods, + ndiff = 2, + ar = F, + stde = F, + nbcasts = 0, + nfcasts = 0 +) +} +\arguments{ +\item{y}{input time series.} + +\item{periods}{vector of periods values of the seasonal component, any positive real numbers.} + +\item{stde}{Boolean: TRUE: compute standard deviations of the components. In some cases (memory limits), it is currently not possible to compute them} + +\item{nbcasts}{number of backcasts.} + +\item{nfcasts}{number of forecasts.} + +\item{adjust}{Boolean: TRUE: actual fractional airline model is to be used, FALSE: the period is rounded to the nearest integer.} + +\item{sn}{decomposition into signal and noise (2 components only). The signal is the seasonally adjusted series and the noise the seasonal component.} +} +\description{ +Perform an Arima Model Based (AMB) decomposition on several periodcities at once +} diff --git a/man/multiAirlineDecomposition_raw.Rd b/man/multiAirlineDecomposition_raw.Rd new file mode 100644 index 0000000..f35584e --- /dev/null +++ b/man/multiAirlineDecomposition_raw.Rd @@ -0,0 +1,32 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{multiAirlineDecomposition_raw} +\alias{multiAirlineDecomposition_raw} +\title{Title} +\usage{ +multiAirlineDecomposition_raw( + y, + periods, + ndiff = 2, + ar = F, + stde = F, + nbcasts = 0, + nfcasts = 0 +) +} +\arguments{ +\item{y}{} + +\item{periods}{} + +\item{ndiff}{} + +\item{stde}{} + +\item{nbcasts}{} + +\item{nfcasts}{} +} +\description{ +Title +} diff --git a/man/multiAirlineDecomposition_ssf.Rd b/man/multiAirlineDecomposition_ssf.Rd new file mode 100644 index 0000000..38e686f --- /dev/null +++ b/man/multiAirlineDecomposition_ssf.Rd @@ -0,0 +1,14 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/jd3_fractionalairline.R +\name{multiAirlineDecomposition_ssf} +\alias{multiAirlineDecomposition_ssf} +\title{Title} +\usage{ +multiAirlineDecomposition_ssf(jdecomp) +} +\arguments{ +\item{jdecomp}{} +} +\description{ +Title +} diff --git a/rjd3highfreq.Rproj b/rjd3highfreq.Rproj new file mode 100644 index 0000000..9dbf118 --- /dev/null +++ b/rjd3highfreq.Rproj @@ -0,0 +1,20 @@ +Version: 1.0 + +RestoreWorkspace: Default +SaveWorkspace: Default +AlwaysSaveHistory: Default + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: Sweave +LaTeX: pdfLaTeX + +BuildType: Package +PackageUseDevtools: Yes +PackageInstallArgs: --no-multiarch --with-keep.source +PackageBuildBinaryArgs: --no-multiarch +PackageCheckArgs: --no-multiarch +PackageRoxygenize: rd,collate,namespace