带有时间序列的具有残差相关的直线(预测包中的auto.arima)

时间:2019-02-19 18:18:53

标签: r arima

我有一个带有自相关残差的时间序列。因此,我的想法是在R的预报包中使用auto.arima()函数,以找到截距和斜率。

不幸的是,auto.arima()函数的输出导致拟合线明显不正确。斜率很可能是正确的,但截距太低了。

Graph

我正在使用的r代码:

require(forecast)
y <- as.numeric(readClipboard())
x <- 1:length(y)
arimareg <- auto.arima(y, xreg=x, max.p=5, max.q=10, max.order = 12, stepwise=FALSE,  approximation=FALSE, seasonal=FALSE)
intercept <- unname(arimareg$coef[length(arimareg$coef)-1])
slope <- unname(arimareg$coef[length(arimareg$coef)])

结果: 拦截:0.474869856067 坡度:0.00539552660742

我要复制到剪贴板的时间序列如下所示:

1.0000
0.9999
0.9993
1.0299
1.0267
1.0305
1.1427
1.1339
1.1323
1.2051
1.2091
1.2087
1.3343
1.3381
1.3361
1.3848
1.3853
1.3865
1.4207
1.4378
1.4394
1.4546
1.4506
1.4518
1.4495
1.4458
1.4461
1.4468
1.4461
1.4470
1.4645
1.4621
1.4592
1.4833
1.4773
1.4738
1.5398
1.5284
1.5302
1.5562
1.5541
1.5501
1.5740
1.5703
1.5715
1.5893
1.5874
1.5867
1.6213
1.6211
1.6175
1.6206
1.6131
1.6038
1.6034
1.6041
1.6015
1.6009
1.5940
1.5865
1.5877
1.5890
1.5885
1.6111
1.6100
1.6065
1.6241
1.6263
1.6250
1.6490
1.6565
1.6560
1.6911
1.6864
1.6837
1.7143
1.7103
1.7102
1.7298
1.7253
1.7341
1.7567
1.7512
1.7455
1.7338
1.7329
1.7276
1.7022
1.6975
1.6928
1.6454
1.6361
1.6293
1.5601
1.5591
1.5508
1.4704
1.4650
1.4655
1.4439
1.4464
1.4486
1.4669
1.4810
1.4872
1.5151
1.5191
1.5223
1.5384
1.5417
1.5449
1.5650
1.5714
1.5741

我确定自己在做一些愚蠢的事情,但不幸的是我无法弄清楚是什么。

任何帮助将不胜感激!

编辑:我了解现在出了什么问题。如果我的观测值少于〜160,那么输出中将不会有截距。这意味着我存储为截距的值实际上是最后一个MA()滞后系数。

上面的代码应从以下位置进行调整:

intercept <- unname(arimareg$coef[length(arimareg$coef)-1])

收件人:

intercept <- unname(arimareg$coef['intercept'])

问题仍然存在;观察次数少时,为什么输出中没有截距。

1 个答案:

答案 0 :(得分:0)

根据forecast developersauto.arima()被设计为自动包含在常量中:

  

默认情况下,对于d = 0或d = 1,如果它提高了AIC值,则将包含一个常数。对于d> 1,常量始终被忽略。

因此,您的模型似乎没有intercept术语,这是完全正常的。

如果您要检查模型对于所提供的数据是否正常工作,可以使用fitted()函数:

plot(x = x, y = fitted(arimareg), col = "blue", type = "l", lwd = 3, 
    panel.first = grid(col = "black"))
points(x = x, y = y, bg = "red", col = "darkred", pch = 21)

哪个给

enter image description here

它能回答您的问题吗?