将模型拟合到高频时间序列并使用寓言进行短期预测
Fitting a model to a high frequency timeseries and forecasting on the short term using fable
我有一个具有相当高频率(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)
- 我可用的数据有限(时间序列短,只有几个月)
- 该方法不适用于快速变化的数据(每日和每周重复模式)
- 我的代码中的问题
您的 15 分钟频率数据显示出多种季节性模式。这些模型产生的预测质量很差,因为它们并非旨在捕获这些模式(因此它们不是)。
您的代码看起来不错,并且(在视觉上)数据似乎具有合适的模型应该捕获的强大模式。
目前有两个更复杂的模型可以与寓言一起使用,它们应该能够捕捉多种季节性模式,从而为您提供更好的预测。他们是:
- 更快(https://github.com/tidyverts/fasster)
- 先知(https://github.com/facebook/prophet) with the fable interface (https://github.com/mitchelloharawild/fable.prophet/)
我有一个具有相当高频率(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) - 我可用的数据有限(时间序列短,只有几个月)
- 该方法不适用于快速变化的数据(每日和每周重复模式)
- 我的代码中的问题
您的 15 分钟频率数据显示出多种季节性模式。这些模型产生的预测质量很差,因为它们并非旨在捕获这些模式(因此它们不是)。
您的代码看起来不错,并且(在视觉上)数据似乎具有合适的模型应该捕获的强大模式。
目前有两个更复杂的模型可以与寓言一起使用,它们应该能够捕捉多种季节性模式,从而为您提供更好的预测。他们是:
- 更快(https://github.com/tidyverts/fasster)
- 先知(https://github.com/facebook/prophet) with the fable interface (https://github.com/mitchelloharawild/fable.prophet/)