私は階層的な予測プロジェクトに取り組んでおり、Fable in Rを使用してミドルアウト アプローチを使用して、中間レベルで予測を作成し、予測された比率を使用して下向きに配布し、単に上向きに集計したいと考えています。
ただし、2 レベルを超える深さの階層を使用しようとすると、次のエラーが発生します。
Error: Problem with `mutate()` column `mo_ets`.
i `mo_ets = (function (object, ...) ...`.
x subscript out of bounds
2 つ以下の階層レベルを使用するように戻すこともできますが、それはトップダウン アプローチと同等であり、すべてのレベルを配置する必要がある Fable の機能の一部を使用したいと考えています。
以下のコードを問題なく実行できます。
library(fpp3)
tourism <- tsibble::tourism %>%
mutate(State = recode(State,
`New South Wales` = "NSW",
`Northern Territory` = "NT",
`Queensland` = "QLD",
`South Australia` = "SA",
`Tasmania` = "TAS",
`Victoria` = "VIC",
`Western Australia` = "WA"
)) %>%
aggregate_key(State / Region, Trips = sum(Trips)) %>%
model(ets=ETS(Trips)) %>%
reconcile(mo_ets = middle_out(ets),
method = "forecast_proportions",
level=State) %>%
forecast(h=3)
ただし、3 番目の最上位レベルを追加し、中央のStateレベルから予測し、 Region に分解し、 NewColに集約すると、上記のエラーが発生します。
library(fpp3)
tourism <- tsibble::tourism %>%
mutate(State = recode(State,
`New South Wales` = "NSW",
`Northern Territory` = "NT",
`Queensland` = "QLD",
`South Australia` = "SA",
`Tasmania` = "TAS",
`Victoria` = "VIC",
`Western Australia` = "WA"
)) %>%
mutate(NewCol = paste(State,"ABC",sep="")) %>%
aggregate_key(NewCol / State / Region, Trips = sum(Trips)) %>%
model(ets=ETS(Trips)) %>%
reconcile(mo_ets = middle_out(ets),
method = "forecast_proportions",
level=State) %>%
forecast(h=3)
top_downではなくmiddle_outアプローチを真に使用するためにこれを解決する方法はありますか?