2017-03-28 6 views
0

私は、htsパッケージの予測調整方法を以前の予測値と比較しようとしています。予測オブジェクト内の値を返すユーザー定義関数を作成する計算的に扱いにくい方法がないため、関数forecast.gtsは使用できません。このため、私はパッケージ内のcombinef()関数を使用して予測を再配布しています。私は適切なweightsの仕事をして、wlsnseriesの方法を得て、olsのバージョンがデフォルトです。私が使用して「ボトムアップ」の方法を取得することができました:`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) 

を私が最初に体重1、残り0を作るようなものが私に3つのトップダウン予測のいずれかを与えるかもしれないと期待していたが、それは単に結果あなたがそれを見ようとする方法に応じて、0またはNaNの値の束になります。

combinef(allf, htseg1$nodes, weights = c(1, rep(0, numTS - 1))) 

は、私は方法は手動で計算する最も難しいものではありませんトップダウン知っている、と私はちょうどそれを行うための関数を書くことができますが、これを支援することができ htsパッケージ内のツールがあるのですか?私は分析を簡素化するためにデータフォーマットを一貫させておきたいと思います。最も具体的には、私は "トップダウンフォーキャストされた割合"または tdfpメソッドを取得したいと思います。

答えて

1

「トップダウン」方法を使用して予測を調整する機能は、現在エクスポートされていません。おそらく私は次のバージョンでcombinef()のような扱いやすい "トップダウン"の結果を作るためにそれらをエクスポートする必要があります。回避策は次のとおりです。

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

希望します。

関連する問題