R ARIMA模型给出了奇怪的结果

时间:2015-06-29 17:51:22

标签: r time-series

我正在尝试在R中使用ARIMA模型来预测数据。我的时间序列片段如下所示:

enter image description here

这只是你了解它的一小部分时间。我有从2010年到2015年的每日数据。

我想将此预测到未来。我正在使用forecast库,我的代码如下所示:

dt = msts(data$val, seasonal.periods=c(7, 30))
fit = auto.arima(dt)
plot(forecast(fit, 300))

这导致:

enter image description here

这个模型不好或有趣。我的seasonal.periods是由我定义的,因为我希望看到每周和每月的季节性,但结果看起来相同,没有定义季节性时间。

我错过了什么吗?预测预测很快就会从一点到另一点变化很小。

编辑:

为了进一步说明我在说什么,这是一个具体的例子。假设我有以下假数据集:

x = 1:500
y = 0.5*c(NA, head(x, -1)) - 0.4*c(NA, NA, head(x, -2)) + rnorm(500, 0, 5)

这是一个AR(2)模型,其系数为0.50.4。绘制这个时间序列产生:

enter image description here

所以我创建了一个ARIMA模型并绘制了预测结果:

plot(forecast(auto.arima(y), 300))

结果是:

enter image description here

为什么ARIMA功能无法学习这个明显的模型?如果我使用arima函数并强制它尝试AR(2)模型,我没有得到任何更好的结果。

1 个答案:

答案 0 :(得分:1)

auto.arima不处理多个季节性时段。请使用tbats

dt = msts(data$val, seasonal.periods=c(7, 30))
fit = tbats(dt)
plot(forecast(fit, 300))

auto.arima将使用最大的季节性时期,并尝试尽其所能。