【问题标题】:Fitting a model to a high frequency timeseries and forecasting on the short term using fable将模型拟合到高频时间序列并使用寓言进行短期预测
【发布时间】:2020-01-21 06:30:10
【问题描述】:

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

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

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

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 的reference book)
  • 我掌握的数据有限(时间序列很短,只有几个月)
  • 方法不适合快速变化的数据(每日和每周重复模式)
  • 我的代码中的问题

【问题讨论】:

  • This 问题可能会提供见解。

标签: r time-series forecasting tsibble fable-r


【解决方案1】:

您的 15 分钟频率数据显示出多种季节性模式。这些模型产生的预测质量很差,因为它们并非旨在捕捉这些模式(因此它们不是)。

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

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

【讨论】:

  • 感谢您的回答。我一直在玩这两种模型(感谢 Prophet 界面!),到目前为止成功非常有限。我认为这不是在调整配合方面寻求帮助的合适地方:我应该在哪里这样做?也许我想在 Cross 验证 SO 上的聊天会更合适......还是 github 问题?
  • 不确定在哪里适合这个 - 虽然你在这里问过,但我没有看到在 cmets 中继续讨论的问题(只要它是公开的,其他人可以从中受益) )。我认为 SO 更适合问题,而 GitHub 更适合问题。我将首先以几种不同的方式可视化您的季节性,以更好地了解季节性结构。 feasts::gg_season() 和 feasts::gg_subseries() 可能会对此有所帮助。识别季节性模式应该有助于确定适当的模型(可能是每日季节性 + 每周季节性 + 水平)。
  • 不幸的是,feasts 似乎不能很好地处理高频数据。我现在正在尝试使用每小时数据集,它无处不在。但是,到目前为止,我一直无法使用 fable.prophet 获得任何好的结果,但是直接使用 prophet(糟糕的代码设计......但性能出色)导致了良好的预测(取决于数据集,MAPE 为 10-20% )。
  • 你有一些feasts函数不能处理高频数据的例子吗?目的是让盛宴处理所有数据,尤其是高频数据。我们一直在使用它来分析每 5 分钟观察一次的数据,并且没有发现问题。 GitHub 将是报告这些问题的好地方。至于fable.prophet,它直接调用prophet::prophet(),所以我很想看看你试图用它指定什么模型。
  • 当然,有时间我会打开一些问题。这很可能是我自己的错(或者更可能是缺乏理解),但让我们看看。
猜你喜欢
  • 2021-02-04
  • 2021-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-04
  • 2017-07-26
  • 2019-12-02
  • 1970-01-01
相关资源
最近更新 更多