我正试图仿效美国人的做法进行分层预测。罗布-亨德曼的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和tsbble 0.8.6下进行的。我在UbuntuR 3.6.3和Windows 10R 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.
这些问题都是bug(或者说更多的是超出了当前调和实现的范围)。你可以通过软件包的 BugReports URL 来报告这些问题 (https:/github.comtidyvertsfabletoolsissues。).
我的主要问题是。
调解似乎并没有改变预测的结果。图片显示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.```
这是因为您的模型有一个对数变换的响应变量,当对其进行反变换时,会产生具有对数正态分布的预测。概率预测调和是很困难的,目前只对正态分布实现了调和。我将在点预测上添加调和作为后备(https:/github.comtidyvertsfabletoolsissues216。).