给出奇数结果的R-ARIMA模型
我试图在R中使用ARIMA模型来预测数据。我的时间序列的一部分如下所示:给出奇数结果的R-ARIMA模型,r,time-series,R,Time Series,我试图在R中使用ARIMA模型来预测数据。我的时间序列的一部分如下所示: dt = msts(data$val, seasonal.periods=c(7, 30)) fit = auto.arima(dt) plot(forecast(fit, 300)) 对你来说,这只是一段时间,让你了解它。我有从2010年到2015年的每日数据 我想预测未来的情况。我正在使用forecast库,我的代码如下所示: dt = msts(data$val, seasonal.periods=c(7, 30
dt = msts(data$val, seasonal.periods=c(7, 30))
fit = auto.arima(dt)
plot(forecast(fit, 300))
对你来说,这只是一段时间,让你了解它。我有从2010年到2015年的每日数据
我想预测未来的情况。我正在使用forecast
库,我的代码如下所示:
dt = msts(data$val, seasonal.periods=c(7, 30))
fit = auto.arima(dt)
plot(forecast(fit, 300))
这导致:
这个模型既不好也不有趣。我的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.5
和0.4
。绘制此时间序列会产生:
因此,我创建了一个ARIMA模型,并绘制了预测结果:
plot(forecast(auto.arima(y), 300))
结果是:
为什么ARIMA函数不能学习这个明显的模型?如果我使用
arima
函数并强制它尝试AR(2)模型,我不会得到更好的结果。auto。arima
不处理多个季节性周期。为此,请使用tbats
dt = msts(data$val, seasonal.periods=c(7, 30))
fit = tbats(dt)
plot(forecast(fit, 300))
auto.arima
将只使用最大的季节性时段,并尽可能做到最好。嘿@Rob Hyndman谢谢你,我没有意识到这一点。tbats确实提供了更好的结果,但我仍然不确定为什么arima函数甚至不能提供简单的arima模型。请参阅我的编辑。这不是AR(2)模型。右侧的滞后项表示x
,因此该模型为线性趋势加上噪声。然而,auto.arima
应该仍然能够做得更好。由于某种原因,它错过了这一趋势。