combinef {hts} | R Documentation |
Optimally combine forecasts from a hierarchical or grouped time series
Description
Using the methods of Hyndman et al. (2016) and Hyndman et al. (2011), this function optimally combines
the forecasts at all levels of a hierarchical time series. The
forecast.gts
calls this function when the comb
method
is selected.
Usage
combinef(
fcasts,
nodes = NULL,
groups = NULL,
weights = NULL,
nonnegative = FALSE,
algorithms = c("lu", "cg", "chol", "recursive", "slm"),
keep = c("gts", "all", "bottom"),
parallel = FALSE,
num.cores = 2,
control.nn = list()
)
Arguments
fcasts |
Matrix of forecasts for all levels of the hierarchical time series. Each row represents one forecast horizon and each column represents one time series from the hierarchy. |
nodes |
If the object class is |
groups |
If the object class is |
weights |
A numeric vector. The default is |
nonnegative |
Logical. Should the reconciled forecasts be non-negative? |
algorithms |
An algorithm to be used for computing reconciled
forecasts. See |
keep |
Return a |
parallel |
Logical. Import parallel package to allow parallel processing. |
num.cores |
Numeric. Specify how many cores are going to be used. |
control.nn |
A list of control parameters to be passed on to the block principal pivoting algorithm. See 'Details'. |
Details
The control.nn
argument is a list that can supply any of the following components:
ptype
Permutation method to be used:
"fixed"
or"random"
. Defaults to"fixed"
.par
The number of full exchange rules that may be tried. Defaults to 10.
gtol
The tolerance of the convergence criteria. Defaults to
sqrt(.Machine$double.eps)
.
Value
Return the (non-negative) reconciled gts
object or forecasts at the bottom
level.
Author(s)
Alan Lee, Rob J Hyndman, Earo Wang and Shanika L Wickramasuriya
References
Hyndman, R. J., Ahmed, R. A., Athanasopoulos, G., & Shang, H. L. (2011). Optimal combination forecasts for hierarchical time series. Computational Statistics and Data Analysis, 55(9), 2579–2589. https://robjhyndman.com/publications/hierarchical/
Hyndman, R. J., Lee, A., & Wang, E. (2016). Fast computation of reconciled forecasts for hierarchical and grouped time series. Computational Statistics and Data Analysis, 97, 16–32. https://robjhyndman.com/publications/hgts/
Wickramasuriya, S. L., Turlach, B. A., & Hyndman, R. J. (to appear). Optimal non-negative forecast reconciliation. Statistics and Computing. https://robjhyndman.com/publications/nnmint/
See Also
Examples
# hts example
## Not run:
h <- 12
ally <- aggts(htseg1)
allf <- matrix(NA, nrow = h, ncol = ncol(ally))
for(i in 1:ncol(ally))
allf[,i] <- forecast(auto.arima(ally[,i]), h = h)$mean
allf <- ts(allf, start = 51)
y.f <- combinef(allf, get_nodes(htseg1), weights = NULL, keep = "gts", algorithms = "lu")
plot(y.f)
## End(Not run)
## Not run:
h <- 12
ally <- abs(aggts(htseg2))
allf <- matrix(NA, nrow = h, ncol = ncol(ally))
for(i in 1:ncol(ally))
allf[,i] <- forecast(auto.arima(ally[,i], lambda = 0, biasadj = TRUE), h = h)$mean
b.f <- combinef(allf, get_nodes(htseg2), weights = NULL, keep = "bottom",
algorithms = "lu")
b.nnf <- combinef(allf, get_nodes(htseg2), weights = NULL, keep = "bottom",
algorithms = "lu", nonnegative = TRUE)
## End(Not run)
# gts example
## Not run:
abc <- ts(5 + matrix(sort(rnorm(200)), ncol = 4, nrow = 50))
g <- rbind(c(1,1,2,2), c(1,2,1,2))
y <- gts(abc, groups = g)
h <- 12
ally <- aggts(y)
allf <- matrix(NA,nrow = h,ncol = ncol(ally))
for(i in 1:ncol(ally))
allf[,i] <- forecast(auto.arima(ally[,i]),h = h)$mean
allf <- ts(allf, start = 51)
y.f <- combinef(allf, groups = get_groups(y), keep ="gts", algorithms = "lu")
plot(y.f)
## End(Not run)