I am trying to compare forecast reconciliation methods from the hts
package on previously existing forecasts. The forecast.gts
function is not available to me since there is no computationally tractable way to create a user defined function that returns the values in a forecast object. Because of this, I am using the combinef()
function in the package to redistribute the forecasts. I have been able to work of the proper weights
to get the wls
and nseries
methods, and the ols
version is the default. I was able to get the "bottom up" method using:
# Creates sample forecasts, taken from `combinef()` example library(hts) 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, PI = FALSE)$mean allf <- ts(allf, start = 51) # create the weight vector numTS <- ncol(allf) # Get the total number of series numBaseTS <- sum(tail(htseg1$nodes, 1)[[1]]) # Get the number of bottom level series # Create weights of 0 for all aggregate ts and 1 for the base level weightVals <- c(rep(0, numTS - numBaseTS), rep(1, numBaseTS)) y.f <- combinef(allf, htseg1$nodes, weights = weightVals)
I was hoping that something like making the first weight 1
and the rest 0
might give me one of the three top down forecast, but that just results in a bunch of 0
s or NaN
values depending on how you try to look at it.
combinef(allf, htseg1$nodes, weights = c(1, rep(0, numTS - 1)))
I know the top down methods aren't the hardest thing to compute manually, and I can just write a function to do that, but are there any tools in the hts
package that can help with this? I'd like to keep the data format consistent to simplify my analysis. Most specifically, I would like to get the "top down forcasted proportions" or tdfp
method.