如何自上而下预测2级hts对象的比例?

时间:2017-04-17 16:39:28

标签: r time-series forecasting hierarchical

我之前曾要求this question尝试使用hts套件预测比例预测重组。那里的解决方案适用于多级层次结构,但是当我尝试在两级层次结构上使用该解决方案时,我发现了一个错误。

library(hts)
# Create the hierarchy
newhts <- hts(htseg1$bts, list(ncol(htseg1$bts)))
# forecast creation adapted from the `combinef()` example
h <- 12
ally <- aggts(newhts)
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)
# Earo Wang's solution to my previous question
hts:::TdFp(allf, nodes = htseg1$nodes)
  

* .default(fcasts [,1L],prop)出错:时间序列/向量长度不匹配

问题似乎出现了,因为两级层次结构会跳过条件if的最后一个if (l.levels > 2L)条件。此条件乘法的最后一个陈述包括prop乘以时间序列flist[[k + 1L]]的片段,它将prop转换为时间序列矩阵。如果跳过此语句,prop仍然是一个常规矩阵,当时间序列向量fcasts[, 1L]乘以矩阵prop时会导致错误。

我理解TdFp是一个非导出函数,因此可能不像包中的其他函数那样健壮,但有没有解决这个问题的方法?由于这是一个相对简单的案例,我可以自己编写解决方案,但由于hts::forecast.hts()可以处理method = "tdfp"的两个级别层次结构,我认为可能有一个很好的清洁解决方案。

0 个答案:

没有答案