如何在多级层次结构中使用“hts”?

6
我需要对一个大型时间序列集(5000+)进行预测。我希望采用分层方法,先在较高层次上进行预测,然后将预测结果分配到每个SKU上。我认为有必要这样做,以便在更低的地理细节层面上进行缩放,同时在更高的层次上进行预测(自上而下)。
例如,下面是我考虑的结构示例。
Total
  => Europe
     => Netherlands
        => RegionA
           => Client_A_in_Netherlands
              => SKU1
              => SKU2
              => SKU3
           => Client_Q_in_Netherlands
              => SKU15
     => Germany1
        => (...)
           => ClientY_in_Germany
              => SKU89
  => Africa
     => South Africa
        => (...)
           => Client_Z_in_SouthAfrica
              => SKU792

我希望能够在大陆层面(例如欧洲或非洲)进行自上而下的预测。然后将适当的份额分配给各国,再分别分配给该国内的客户,最后再分配到SKU上。
在“hts”包的文档中,有一个关于如何使用两级层次结构进行此操作的示例。我想知道是否有人可以建议如何在多级层次结构下进行此操作?
2个回答

8
我们在hts软件包(版本4+)中引入了一个新概念——"节点",以替换旧的"gmatrix"。为了说明"节点"的使用方法,这里举一个由4个层级(不包括总共)和24个底层时间序列组成的层级结构的例子。
bts <- ts(matrix(rnorm(240), nrow = 10, ncol = 24)) 
nodes <- list(2, rep(2, 2), rep(2, 4), rep(3, 8))
hts(bts, nodes = nodes)
nodes中的每个元素指定该级别上每个节点具有的子节点数。
下面显示了树形图:
=> A
  => AA
    => AAA
      => 3 bottom time series
    => AAB
      => 3 bottom time series
  => AB
    => ABA
      => 3 bottom time series
    => ABB
      => 3 bottom time series
=> B
  => BA
    => BAA
      => 3 bottom time series
    => BAB
      => 3 bottom time series
  => BB
    => BBA
      => 3 bottom time series
    => BBB
      => 3 bottom time series

3
文档有点简洁,但是您可以在定义hts时使用多级层次结构。
在“hts”包的参考手册中(pdf文件链接),您会找到对论文的引用。具体来说,在pdf的第7页上,引用了htseg1:
R. J Hyndman、R. A. Ahmed、G. Athanasopoulos和H.L. Shang(2011)的文献 《Computational Statistics and Data Analysis》,55(9),2579-2589http://robjhyndman.com/papers/hierarchical/ 该链接(免费在线版本为工作论文)具有3个级别的示例,与您的continent|country|client示例非常相似。http://robjhyndman.com/papers/Hierarchical6.pdf (请参见第6节,标题为Numerical Simulations,第14页)
希望这能帮到您。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接