diff --git a/DESCRIPTION b/DESCRIPTION index 618fd62..ff2862d 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: tsarma Type: Package Title: Univariate ARMA Models -Version: 0.1.0 +Version: 0.2.0 Author: Alexios Galanos Maintainer: alexios galanos Depends: R (>= 3.5.0), methods, tsmethods diff --git a/R/methods.R b/R/methods.R index 3d296c0..c9d5776 100644 --- a/R/methods.R +++ b/R/methods.R @@ -527,6 +527,11 @@ tsfilter.tsarma.spec <- function(object, y = NULL, newxreg = NULL, ...) #' predict.tsarma.estimate <- function(object, h = 1, newxreg = NULL, bootstrap = FALSE, nsim = 1000, innov = NULL, innov_type = "r", innov_init = NULL, forc_dates = NULL, series_init = NULL, ...) { + if (!is.null(innov)) { + if (!is.matrix(innov)) stop("\ninnov must be a matrix of size nsim x h") + if (NROW(innov) != nsim) stop("\nNROW(innov) must be equal to nsim") + if (NCOL(innov) != h) stop("\nNCOL(innov) must be equal to h") + } model <- object$spec$model$model p <- .predict_arma(object = object, h = h, newxreg = newxreg, bootstrap = bootstrap, nsim = nsim, innov = innov, innov_type = innov_type, innov_init = innov_init, forc_dates = forc_dates, series_init = series_init) diff --git a/R/predict.R b/R/predict.R index d18d9f1..ab25c81 100644 --- a/R/predict.R +++ b/R/predict.R @@ -54,7 +54,7 @@ innov <- matrix(sample(as.numeric(residuals(object)), nsim * h, replace = TRUE), nrow = nsim, ncol = h) sim <- simulate(object, h = h, nsim = nsim, innov = innov, innov_init = innov_init, series_init = series_init, innov_type = "r") } else { - sim <- simulate(object, h = h, nsim = nsim, innov = NULL, innov_init = innov_init, series_init = series_init) + sim <- simulate(object, h = h, nsim = nsim, innov = innov, innov_type = innov_type, innov_init = innov_init, series_init = series_init) } sim <- sim$simulated colnames(sim) <- as.character(forc_dates)