1

我正在尝试拟合包含假人的 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’)

它给出了这个错误:

“错误:找不到对象'Day' 无法从提供的计算所需的变量new_data。您的模型是否需要额外的变量来生成预测?”</p>

我试着在谷歌上查找,但什么也想不通。

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

你知道为什么会发生这种情况吗?

4

1 回答 1

0

首先,您需要在建模之前创建变量。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)
于 2020-04-11T02:00:30.413 回答