此代码正常工作
require(fable)
it <- tsibbledata::global_economy %>%
filter(Country == "Italy")
fm0 <- model(.data = it,
ARIMA(log(GDP) ~ Population),
ETS(log(GDP)))
下一个预计不会工作
fm1 <- model(.data = it,
ARIMA(log(GDP) ~ Population + pdq(3,1,7) +PDQ(5,1,1)),
ETS(log(GDP)))
由于ARIMA模型,显然它不起作用。 ETS工作正常
我可以做到:
fm2 <- try(
model(.data = it,
ARIMA(log(GDP) ~ Population + pdq(3,1,7) +PDQ(5,1,1)),
ETS(log(GDP))))
但这会使两个模型都失败
我想要类似的东西
fm3 <- try(
model(.data = it,
try(ARIMA(log(GDP) ~ Population + pdq(3,1,7) +PDQ(5,1,1))),
ETS(log(GDP))))
以便fm3包含ETS的正确结果和ARIMA的“ try-error”类对象
可能会修改fablelite ::: estimate,以便它可以处理错误,这是解决方案吗?
任何帮助将不胜感激
答案 0 :(得分:0)
很好的建议,这是我们已经考虑了一段时间的功能(https://github.com/tidyverts/fable/issues/74)。
我在if(a) b=a
if(a) b=true
参数上添加了.safely
参数,它将返回格式化的警告并返回model()
而不是错误(https://github.com/tidyverts/fablelite/commit/1c7dccd7e48211125cf566bcce9ba8c9fc4e47ce)。
null_model()
是一个没有估计的模型,所有模型方法(null_model()
,forecast()
等)将给出适当结构化的accuracy()
值。
我将NA
设置为默认值,因此上述代码现在提供:
.safely=TRUE
由reprex package(v0.2.1)于2019-05-30创建