问题描述
我正在使用出色的 fable
包,并尝试使用 arima 和 ets 模型创建分层预测,并与 td、mo、bu 和 min 跟踪进行协调以比较并查看最佳方法。我的系列在系列后期有一些需要回归的效果,所以我试图创建一个二元回归器来处理这个问题。我已阅读 link1 和 link2 关于使用 new_data
参数添加具有分层预测的回归量,而不是我用于非分层预测的 xreg
参数预报。正如 Rob Hyndman 在链接 1 中所描述的那样,我通过将数据拆分为训练集和测试集并将测试传递给 new_data
来使用这种方法取得了成功。我在当前任务中遇到的问题是,需要建模的效果都在系列的后期,因此它们都在测试集中。
首先这里是我可重现的示例数据:
library(tidyverse)
library(forecast)
library(fable)
library(tsibble)
library(tsibbledata)
library(lubridate)
data <- aus_livestock %>%
filter(State %in% c("Tasmania","New South Wales","Queensland"),as.Date(Month) > as.Date("2000-01-01")) %>%
aggregate_key(State,Count=sum(Count)) %>%
mutate(xreg=as.factor(if_else(as.Date(Month) > as.Date("2018-01-01") &
as.Date(Month) < as.Date("2018-10-01"),1,0)))
我过去做过这样的事情:
train <- data %>%
filter(as.Date(Month) < as.Date("2017-10-01"))
test <- data %>%
filter(as.Date(Month) >= as.Date("2017-10-01"))
mod_data <- train %>%
model(ets=ETS(Count),arima=ARIMA(Count ~ xreg)
) %>%
reconcile(bu_ets=bottom_up(ets),td_ets=top_down(ets),mint_ets=min_trace(ets),bu_arima=bottom_up(arima),td_arima=top_down(arima),mint_arima=min_trace(arima)
)
forc_data <- mod_data %>%
forecast(new_data=test)
autoplot(forc_data,data,level=NULL)
但由于在这种情况下,训练集中的回归量全为零,因此预计会产生错误 Provided exogenous regressors are rank deficient,removing regressors: xreg1
。我认为我需要做的是将我拥有的所有数据提供给模型,而不是将数据拆分为训练和测试,但是当 new_data
没有数据时,我不确定如何使用寓言预测该模型文件。我得到的最接近的是这样的:
dates <- sort(rep(seq(as.Date("2019-01-01"),as.Date("2020-12-01"),"months"),3))
future_data <- tibble(
Month=dates,State=rep(c("Tasmania",24),Count=0
) %>%
mutate(Month=yearmonth(Month)) %>%
as_tsibble(index=Month,key=State) %>%
aggregate_key(State,Count=sum(Count)) %>%
mutate(xreg=factor(0,levels=c(0,1))) %>%
select(-Count)
mod_data <- data %>%
model(ets=ETS(Count),mint_arima=min_trace(arima)
)
forc_data <- mod_data %>%
forecast(new_data=future_data)
autoplot(forc_data,level=NULL)
奇怪的是,当我尝试运行预测片段 R session aborted R has encountered a Fatal error
时,这段代码会导致我的 R Studio 崩溃。我认为这可能与代码无关,因为我实际上让它对我的真实数据起作用,但预测看起来并不像我预期的那样。
所以,总而言之,当所有回归效应都需要在测试集期间发生时,我想知道如何使用 fable
来预测具有外生回归量的分层序列。
预先感谢您提供的任何帮助!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)