0

我在RStudio 社区提出了这个问题,但没有收到任何答案,所以我想我会在这里试一试。我的问题与 budugulo 在这里提出的问题有关选择具有最低 RMSE 的模型,但我想知道如何更进一步,使用对测试数据具有最佳预测能力的模型,并将其应用于整个原始分层数据集以获得未来的观察结果。

我了解如何使用一个单独的时间序列预测未来,但我正在尝试预测一个分层数据集,该数据集需要太多时间才能将最佳模型单独预测到所有原始时间序列上以预测未来的观察结果。有没有办法将最佳模型(使用最低 RMSE)拟合到分层数据集中的原始时间序列上,以预测未来 3 年(2020 年)的未来观测结果?我尝试使用 refit() 但无济于事。

希望下面的代码将有助于回答我的问题。

library(tidyverse)
library(tsibble)
library(fable)
library(fpp3)


fit <- tourism %>%
  filter(Quarter <= yearquarter("2015 Q1")) %>%
  model(
    ets = ETS(Trips),
    arima = ARIMA(Trips)
  )

fc <- fit %>%
  forecast(new_data = filter(tourism, Quarter > yearquarter("2015 Q1")))

bestrmse <- accuracy(fc, tourism) %>%
  group_by(Region, State, Purpose) %>%
  filter(RMSE == min(RMSE)) %>%
  select(.model:Region)

bestfits <- fit %>%
  pivot_longer(cols=ets:arima, names_to = ".model", values_to = "fit") %>%
  right_join(bestrmse) %>%
  mutate(.model = "best") %>%
  pivot_wider(Region:Purpose, names_from = ".model", values_from = "fit") %>%
  as_mable(key = c(Region, State, Purpose), model = best)

#Apply 'best' models from bestfits onto original non-trained/non-tested time series and 
#forecast future observations into 2020.
4

0 回答 0