如何使用 `hts::combinef()` 获得自上而下的预测?
How to get top down forecasts using `hts::combinef()`?
我正在尝试将 hts
包中的预测协调方法与先前存在的预测进行比较。 forecast.gts
函数对我不可用,因为没有计算上易于处理的方法来创建用户定义的函数,returns 预测对象中的值。因此,我在包中使用 combinef()
函数来重新分配预测。我已经能够使用正确的 weights
来获得 wls
和 nseries
方法,并且 ols
版本是默认版本。我能够使用以下方法获得 "bottom up" 方法:
# 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
这样的东西可能会给我三个自上而下的预测之一,但这只会导致一堆 0
s 或 NaN
值取决于您如何看待它。
combinef(allf, htseg1$nodes, weights = c(1, rep(0, numTS - 1)))
我知道自上而下的方法并不是最难手动计算的,我可以编写一个函数来完成,但是 hts
包中是否有任何工具可以帮助解决这个问题?我想保持数据格式一致以简化我的分析。最具体地说,我想获得 "top down forcasted proportions" 或 tdfp
方法。
使用 "top-down" 方法协调预测的函数当前未导出。可能我应该导出它们以使 "top-down" 结果在下一版本中与 combinef()
一样易于处理。解决方法如下:
hts:::TdFp(allf, nodes = htseg1$nodes)
希望对您有所帮助。
我正在尝试将 hts
包中的预测协调方法与先前存在的预测进行比较。 forecast.gts
函数对我不可用,因为没有计算上易于处理的方法来创建用户定义的函数,returns 预测对象中的值。因此,我在包中使用 combinef()
函数来重新分配预测。我已经能够使用正确的 weights
来获得 wls
和 nseries
方法,并且 ols
版本是默认版本。我能够使用以下方法获得 "bottom up" 方法:
# 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
这样的东西可能会给我三个自上而下的预测之一,但这只会导致一堆 0
s 或 NaN
值取决于您如何看待它。
combinef(allf, htseg1$nodes, weights = c(1, rep(0, numTS - 1)))
我知道自上而下的方法并不是最难手动计算的,我可以编写一个函数来完成,但是 hts
包中是否有任何工具可以帮助解决这个问题?我想保持数据格式一致以简化我的分析。最具体地说,我想获得 "top down forcasted proportions" 或 tdfp
方法。
使用 "top-down" 方法协调预测的函数当前未导出。可能我应该导出它们以使 "top-down" 结果在下一版本中与 combinef()
一样易于处理。解决方法如下:
hts:::TdFp(allf, nodes = htseg1$nodes)
希望对您有所帮助。