寓言中的预测 ARIMA 爆炸

forecasting in fable ARIMA blowing up

我正在尝试拟合包含假人的 ARIMA 模型(寓言包)。 这是我使用的代码

mod_region <- aggregated_region %>% 
  filter(SETTLEMENTDATE < '2020-02-11') %>% 
  model( 
    arima = ARIMA(sum ~ as.factor(Day))
  )
fc_region <- mod_region %>% 
  forecast(h='7 days’)

它给出了这个错误:

“Error: object 'Day' not found Unable to compute required variables from provided new_data. Does your model require extra variables to produce forecasts?”

我试着在 google 上查找,但什么也找不到。

我早些时候认为它可能会创建 7 个假人,这就是代码崩溃的原因,然后我使用 arima = ARIMA(sum ~ I(Day == ’Sunday’)) 但是在使用 forecast() 函数时它给出了相同的错误。

你知道为什么会这样吗?

首先,您需要在建模之前创建变量。所以在调用模型函数之前添加Day的因子版本。

其次,您需要 tsibble 中的所有变量,而不是按照注释作为单独的对象。

以下代码将处理您的数据。

library(tidyverse)
library(tsibble)
library(fable)
aggregated_region <- readRDS('aggregated_region.rds') %>%
  mutate(Day = as.factor(Day))
train <- aggregated_region %>% 
  filter(Date < '2020-02-11')
test <- aggregated_region %>% 
  filter(Date >= '2020-02-11') 

mod_region <- train %>% 
  model(arima = ARIMA(sum ~ Day)) 
fc_region <- mod_region %>% 
  forecast(new_data = test)