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()
プロットの出力は以下のとおりです。
私の主な問題は:
ar
およびar_adj
行は同一です。どうすれば修正できますか?後者はおそらくすべての時系列が期間全体をカバーしているわけではないためですが、欠落期間をスキップしないように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.
これらの問題はバグです(または、現在の調整実装の範囲外です)。これらは、パッケージの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 )。