【发布时间】:2015-12-17 06:35:18
【问题描述】:
原问题:
我每天观察到以下时间序列数据:
series <- c(10, 25, 8, 27, 18, 21, 12, 9, 31, 18, 8, 30, 14, 13, 10, 14,
14, 14, 6, 9, 22, 21, 22, 8, 7, 6, 22, 21, 36, 16, 2, 13, 23,
40, 12, 27, 18, 10, 11, 37, 44, 30, 40, 25, 13, 11, 58, 56, 46,
39, 28, 27, 19, 20, 97, 90, 70, 73, 30, 22, 97, 34)
并希望使用 R forecasts 包中的 tbats 来适应它。我还想用每周相关性对其进行建模:
library(forecast)
x.msts = msts(series,seasonal.periods = 7)
model <- tbats(x.msts)
# shows "--- loading profile ---"
使用str 检查/绘制模型揭示了4.9e+17 的巨大拟合方差。
而且,在绘制未来的预测图时,我们观察到大幅波动:
> forecast(model)$mean
Multi-Seasonal Time Series:
Start: 9 7
Seasonal Periods: 7
Data:
[1] 1.483789e+44 -1.399297e+42 -2.566455e+44 -1.374316e+43 -1.527758e+38
[6] 2.036194e+42 5.639596e+42 8.231600e+40 -2.578859e+41 -1.355840e+43
这些估计是 TBATS 模型拟合过程的“正确”解决方案,还是 forecast 包中存在错误?如果不是错误,有人可以帮助我从数学上理解为什么这个看起来很正常的时间序列会产生这些估计吗?
这是我在简历上的第一篇文章,如果应该发在上面,请见谅!
回答后更新:
我已在github 上提交错误报告
还有一些人注意到我没有使用多个季节性因素,所以我想在这里表明这个错误仍然是一个问题:
x2.msts <- msts(series,seasonal.periods = c(7,30))
model_x2_1 <- tbats(x2.msts) # high variance
model_x2_2 <- tbats( series, seasonal.periods = c(7,30) ) # also high variance
【问题讨论】:
-
也就是说,您使用
msts是否有特定原因,它是为具有多个 季节性的系列而构建的? (不过,只是做x.ts <- ts(series,frequency= 7)并用tbats建模会得到相同的结果。)我同意结果看起来不稳定。 Rob Hyndman 或许能够阐明这一点 - 他是forecast软件包的作者,并且活跃于 CV 和 SO。如果您在此处和 SO (!) 上没有得到好的答案,请考虑给他写一封电子邮件。 -
@StephanKolassa 感谢您的澄清。我使用 msts 的原因是我正在批量预测一系列系列 (like in this post by Rob Hyndman),其中一些系列有多个季节性,所以我使用最通用的模型。
-
@StephanKolassa 查看回复后更新 - 在使用多个季节性时,这仍然是一个问题,事实上,更糟糕的是,因为 mra68 的方法无法解决问题(尽管我可能仍在做某事非常错误)
标签: r time-series forecasting