2017-03-28 5 views
0

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.

Répondre

1

Les fonctions de rapprochement des prévisions utilisant la méthode "top-down" ne sont actuellement pas exportées. Probablement je devrais les exporter pour rendre les résultats "top-down" aussi traitables que combinef() dans la prochaine version. La solution de contournement est la suivante:

hts:::TdFp(allf, nodes = htseg1$nodes) 

Espérons que cela aide.