我一直在尝试学习和应用 ARIMA 模型。我一直在阅读 Pankratz 撰写的关于 ARIMA 的优秀文章 -使用单变量框进行预测 - 詹金斯模型:概念和案例。作者在文中特别强调了选择 ARIMA 模型时的简约原则。
我开始玩R包预测auto.arima()
中的函数。这是我所做的,我模拟了 ARIMA,然后应用了. 下面是2个例子。正如您在两个示例中所看到的,清楚地确定了一个许多人认为不简约的模型。特别是在示例 2 中,当实际 ARIMA(1,0,1) 就足够且简约时,识别出 ARIMA(3,0,3)。auto.arima()
auto.arima()
auto.arima()
以下是我的问题。我将不胜感激任何建议和建议。
- 是否有关于何时使用/修改使用自动算法识别的模型的指导,例如
auto.arima()
? auto.arima()
仅使用 AIC(我认为这是使用的)来识别模型有什么坑吗?- 可以构建一个简洁的自动算法吗?
顺便说一句,我auto.arima()
只是作为一个例子。这将适用于任何自动算法。
下面是示例#1:
set.seed(182)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)
auto.arima(y)
qa <- arima(y,order=c(1,0,1))
qa
以下是来自 的结果auto.arima()
。请注意,所有系数都是微不足道的。即,值 < 2。
ARIMA(1,0,2) with non-zero mean
Coefficients:
ar1 ma1 ma2 intercept
0.5395 0.2109 -0.3385 19.9850
s.e. 0.4062 0.4160 0.3049 0.0878
sigma^2 estimated as 1.076: log likelihood=-728.14
AIC=1466.28 AICc=1466.41 BIC=1487.36
以下是arima()
使用 ARIMA(1,0,1) 顺序运行的结果
Series: y
ARIMA(1,0,1) with non-zero mean
Coefficients:
ar1 ma1 intercept
0.2398 0.6478 20.0323
s.e. 0.0531 0.0376 0.1002
sigma^2 estimated as 1.071: log likelihood=-727.1
AIC=1462.2 AICc=1462.28 BIC=1479.06
示例 2:
set.seed(453)
y <- arima.sim(n=500,list(ar=0.2,ma=0.6),mean = 10)
auto.arima(y)
qa <- arima(y,order=c(1,0,1))
qa
以下是来自的结果auto.arima()
:
ARIMA(3,0,3) with non-zero mean
Coefficients:
ar1 ar2 ar3 ma1 ma2 ma3 intercept
0.7541 -1.0606 0.2072 0.1391 0.5912 0.5491 20.0326
s.e. 0.0811 0.0666 0.0647 0.0725 0.0598 0.0636 0.0939
sigma^2 estimated as 1.027: log likelihood=-716.84
AIC=1449.67 AICc=1449.97 BIC=1483.39
以下是arima()
按 ARIMA(1,0,1) 顺序运行的结果
Series: y
ARIMA(1,0,1) with non-zero mean
Coefficients:
ar1 ma1 intercept
0.2398 0.6478 20.0323
s.e. 0.0531 0.0376 0.1002
sigma^2 estimated as 1.071: log likelihood=-727.1
AIC=1462.2 AICc=1462.28 BIC=1479.06