J'essaie de comparer les méthodes de réconciliation des prévisions à partir du progiciel hts
sur des prévisions existantes. La fonction forecast.gts
n'est pas disponible pour moi car il n'existe aucun moyen calculable traitable pour créer une fonction définie par l'utilisateur qui renvoie les valeurs dans un objet de prévision. Pour cette raison, j'utilise la fonction combinef()
dans le package pour redistribuer les prévisions. J'ai été capable de travailler du bon weights
pour obtenir les méthodes wls
et nseries
, et la version ols
est la version par défaut. Je suis en mesure d'obtenir la méthode « bottom up » à l'aide:Comment obtenir des prévisions descendantes en utilisant `hts :: combinef()`?
# 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)
J'espérais que quelque chose comme faire le premier poids 1
et le reste 0
pourrait me donner l'un des trois haut en bas prévisions, mais seulement des résultats dans un tas de 0
s ou NaN
valeurs selon la façon dont vous essayez de le regarder.
combinef(allf, htseg1$nodes, weights = c(1, rep(0, numTS - 1)))
Je sais haut en bas les méthodes ne sont pas la chose la plus difficile à calculer manuellement, et je peux écrire une fonction pour le faire, mais sont-il des outils dans le paquet hts
qui peut aider? Je voudrais garder le format de données cohérent pour simplifier mon analyse. Plus précisément, je voudrais obtenir la "méthode descendante" ou la méthode tdfp
.