【发布时间】:2021-01-22 12:34:51
【问题描述】:
我正在尝试估计 100 个不同系列的 ARIMA 模型。所以我使用fabletools::model() 方法和fable::ARIMA() 函数来完成这项工作。但我无法在模型估计中使用我的外生变量。
我的系列有 3 个不同的列,第一个标识第一个出口的 ID 标签,然后是 Date.Time 标签,最后是销售。除了这些变量之外,我还有代表一天中的小时和一周的虚拟变量。
按照下面给出的代码,我将包含我的 endegounus 和 exegenous 变量的数据框转换为 tstibble。
ts_forecast <- df11 %>% select(-Date) %>%
mutate(ID = factor(ID)) %>% group_by(ID) %>% as_tsibble(index=Date.Time,key=ID)%>%tsibble::fill_gaps(Sales=0) %>%
fabletools::model(Arima = ARIMA(Sales,stepwise = TRUE,xreg=df12))
使用此代码,我尝试预测使用 ID 因子标识的多个网点的相同日期时间间隔的值。但是,代码返回以下错误。
> Could not find an appropriate ARIMA model.
> This is likely because automatic selection does not select models with characteristic roots that may be numerically unstable.
> For more details, refer to https://otexts.com/fpp3/arima-r.html#plotting-the-characteristic-roots
销售是我的内生目标变量,df12 包括代表小时和天的虚拟变量。一些商店不会在某些特定时间创造销售,因此它们代表 01:00 AM 的虚拟变量对于所有观察都可能为零。但是我不认为这会是一个问题,而 fable 使用逐步方法。我想,当代码看到变量为 0 时,它可以排除它们
我不确定是什么问题。我是否使用有问题的方式将 xreg 添加到模型中(在 ARIMA hep 页面中,它说 xreg= 就像以前的预测包一样)或者问题与我提到的第二个问题有关,包括所有观察的“0”。如果是第二个,则可能有解决方案可以排除所有具有恒定 0 值的变量。
如果你能帮助我,我会很高兴。
谢谢
【问题讨论】:
-
fable 使用公式接口。查看
ARIMA的帮助文件以查看使用协变量的示例。 -
非常感谢您的帮助。我将代码更改为公式表示法。但我仍然需要添加每小时虚拟变量,因为网点的销售具有显着的每小时季节性。但我无法使用我之前创建的每小时显示一天中的时间的假人。当我添加这些变量时,我收到特征根错误。但是我尝试使用包中提供的 common_xreg 函数,但我认为 season(periods = 24) 不适合每小时的假人。因为我再次收到排名不足错误。
标签: r time-series forecast fable-r