我有一个频率相当高(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
的参考书) - 我可用的有限数据(短时间序列,只有几个月)
- 方法不适合快速变化的数据(每日和每周重复模式)
- 我的代码中的问题