web-dev-qa-db-ja.com

tidyvertにおける階層的モデリング/調整の問題

Rob HyndmanのRstudio.confワークショップ のように階層予測を実行しようとしていますが、いくつかの問題が発生しています。これが私のコードです:

library(dplyr)
library(tsibbledata)
library(tsibble)
library(fable)

aus_retail_2013_tr <- aus_retail %>%
    filter(Month <= yearmonth("2013 Dec"))
aus_retail_2013_vl <- aus_retail %>%
    filter(Month > yearmonth("2013 Dec"))

hmod <- aus_retail_2013_tr %>%
    aggregate_key(State*Industry, Turnover=sum(Turnover)) %>%
    model(ar=ARIMA(log(Turnover))) %>%
    reconcile(ar_adj=min_trace(ar))

fcasts_hmod <- forecast(hmod, aus_retail_2013_vl)

fcasts_hmod %>%
    filter(is_aggregated(Industry), State == "Victoria") %>%
    autoplot()

プロットの出力は以下のとおりです。

enter image description here

私の主な問題は:

  • 和解によって実際に予測がまったく変わったようには見えません。画像は、arおよびar_adj行は同一です。
  • 予測は2014年から2015年までの期間のみですが、完全なデータセットは2018年に行くことを知っています。

どうすれば修正できますか?後者はおそらくすべての時系列が期間全体をカバーしているわけではないためですが、欠落期間をスキップしないようにreconcileを取得するにはどうすればよいですか?

これは、dplyr 0.8.5、fable 0.2.0、fabletools 0.1.3、およびtsibble 0.8.6の場合です。 Ubuntu/R 3.6.3とWindows 10/R 4.0.0の両方で同じ結果が得られます。

PS。固定期間を予測しようとすると、エラーが発生します。

> fcasts_hmod <- forecast(hmod, h="5 years")
Error: Reconciliation of non-normal forecasts is not yet supported.
Run `rlang::last_error()` to see where the error occurred.
7
Hong Ooi

これらの問題はバグです(または、現在の調整実装の範囲外です)。これらは、パッケージのBugReports URL( https://github.com/tidyverts/fabletools/issues )から報告できます。

私の主な問題は:

和解によって実際に予測がまったく変わったようには見えません。図は、ar行とar_adj行が同一であることを示しています。

予測は2014年から2015年までの期間のみですが、完全なデータセットは2018年に行くことを知っています。

調整済みモデルの予測はエラーになっているはずです。これは、開発バージョンでの現在の動作です。 forecast()new_data引数には148の時系列が含まれていますが、181個のモデルから予測を作成しています。これは、リクエストされた予測が最下位レベルのシリーズ(aus_retail_2013_vlは集計されていません)。

PS。固定された地平線を予測しようとすると、エラーが発生します。

Error: Reconciliation of non-normal forecasts is not yet supported.
Run `rlang::last_error()` to see where the error occurred.```

これは、モデルに対数変換された応答変数があり、逆変換するとlogNormal分布を持つ予測が生成されるためです。確率的予測の調整は困難であり、現在は正規分布に対してのみ実装されています。フォールバックとしてポイント予測の調整を追加します( https://github.com/tidyverts/fabletools/issues/216 )。