2

我有一个频率相当高(15 分钟)的值的时间序列。时间序列没有缺失值,并显示了一些每日和每周的周期性组件。

我正在尝试fable在 R 中对其进行建模,但我似乎找不到任何体面的结果,我想知道我是否做错了什么。

这是我的代码,使用可以下载的示例数据集:

library(tsibble)
library(fable)
library(dplyr)
library(lubridate)

download.file("https://srv-file7.gofile.io/download/9yo0cg/so_data.csv", destfile = "so_data.csv", method = "wget")
csv = read.csv("so_data.csv") %>%
    mutate(time = ymd_hms(time)) %>%
    as_tsibble(index = time)

# Take a look
csv %>% summary
csv %>% autoplot

这是时间序列: 在此处输入图像描述 如您所见,它非常有规律,具有良好的每日周期性。让我们尝试使用几个模型的默认设置对其进行建模:

csv %>%
    model(
        ets = ETS(value),
        arima = ARIMA(value),
        snaive = SNAIVE(value)
    ) %>%
    forecast(h = "1 week") %>%
    autoplot(csv)

他们都失败了: 在此处输入图像描述

我对这个过程的有限理解显然是错误的,默认值在这种情况下没有用。但是我尝试调整它们,不幸的是,我无法捕捉到更好的东西。无论如何,由于我是该领域的菜鸟,我不明白这是否是由于:

  • 我没有设置正确的默认参数(我应该更深入地研究fable参考书
  • 我可用的有限数据(短时间序列,只有几个月)
  • 方法不适合快速变化的数据(每日和每周重复模式)
  • 我的代码中的问题
4

1 回答 1

4

您的 15 分钟频率数据显示出多种季节性模式。这些模型产生的预测质量很差,因为它们不是为了捕捉这些模式而设计的(所以它们不是)。

您的代码看起来不错,并且(在视觉上)数据似乎具有适当模型应捕获的强大模式。

目前有两个更复杂的模型可以与 fable 一起使用,它们应该能够捕获多种季节性模式,从而为您提供更好的预测。他们是:

于 2019-09-22T03:02:07.730 回答