我正在尝试使用 tidyverts 包(tsibble、feasts、fable)进行一些时间序列分析。我正在按照这里的教程进行操作。数据是十年的每日计数。
> summary(mockTsib)
Date CallTypeCode calls
Min. :2010-01-01 Length:11181 Min. : 0.00
1st Qu.:2012-07-20 Class :character 1st Qu.: 7.00
Median :2015-02-07 Mode :character Median : 21.00
Mean :2015-02-07 Mean : 32.71
3rd Qu.:2017-08-27 3rd Qu.: 58.00
Max. :2020-03-15 Max. :148.00
我有一个带有一个键列、三行和两列模型(ets 和 arima)的 mable。
> mockMod
# A mable: 3 x 3
# Key: CallTypeCode [3]
CallTypeCode ets arima
<chr> <model> <model>
1 A <ETS(A,N,A)> <ARIMA(2,1,1)(0,0,2)[7]>
2 B <ETS(A,N,A)> <ARIMA(2,1,2)(1,0,0)[7]>
3 S <ETS(A,N,A)> <ARIMA(0,1,2)(2,0,0)[7]>
当我通过管道到 predict() 来预测 30 天的数据时,我收到以下错误:
> mockMod %>% forecast(h = 30)
Error: Can't slice a scalar
但是,当我将模型列直接传递给预测()时,似乎没有问题。
etsPredictions <- mockMod$ets %>% forecast(h = 30)
arimaPredictions <- mockMod$arima %>% forecast(h = 30)
然后我可以手动构建寓言,但这真的很痛苦,而且我担心我会跳过一个我不理解的错误。
谁能帮我理解这个错误?