data <-c(88, 84, 85, 85, 84, 85, 83, 85, 88, 89, 91, 99, 104, 112, 126, 138, 146,151, 150, 148, 147, 149, 143, 132, 131, 139, 147, 150, 148, 145, 140, 134, 131, 131, 129, 126, 126, 132, 137, 140, 142, 150, 159, 167, 170, 171, 172, 172, 174, 175, 172, 172, 174, 174, 169, 165, 156, 142, 131, 121, 112, 104, 102, 99, 99, 95, 88, 84, 84, 87, 89, 88, 85, 86, 89, 91, 91, 94, 101, 110, 121, 135, 145, 149, 156, 165, 171, 175, 177, 182, 193, 204, 208, 210, 215, 222, 228, 226, 222, 220)
为什么作用于数据第一差异的ARMA模型与相应的ARIMA模型不同?ARIMA,ARMA和AIC?
for (p in 0:5)
{
for (q in 0:5)
{
#data.arma = arima(diff(data), order = c(p, 0, q));cat("p =", p, ", q =", q, "AIC =", data.arma$aic, "\n");
data.arma = arima(data, order = c(p, 1, q));cat("p =", p, ", q =", q, "AIC =", data.arma$aic, "\n");
}
}
同样的,在预测包Arima(data,c(5,1,4))
和Arima(diff(data),c(5,0,4))
。我可以得到
auto.arima(diff(data),max.p=5,max.q=5,d=0,approximation=FALSE, stepwise=FALSE, ic ="aic", trace=TRUE);
auto.arima(data,max.p=5,max.q=5,d=1,approximation=FALSE, stepwise=FALSE, ic ="aic", trace=TRUE);
所需的一致性,但它似乎是最小AIC估计这些数据尚未考虑通过后面auto.arima算法的持有人;因此ARMA(3,0)不是最佳选择,而是ARMA(5,4)作用于第一差异。一个相关的问题是,在考虑一个模型比另一个模型好的程度之前,两个AIC估计值应该有多少差别 - 尽管9个系数可能有点过多,但至少应该考虑/报告最小的AIC持有者对100个观察值进行预测。
我的R课题是:
1)双循环的矢量化版本,所以它比较快?
2)为什么arima(5,1,4)
作用于数据不同于arma(5,4)
作用于数据的第一个差异?哪一个是要报告的?
3)如何对AICs输出进行排序,使较小的先出现?
谢谢。
谢谢,罗布。加入最大秩序= 9,ARIMA(5,1,4)/ ARMA(5,4)的AIC为1e + 20,不管它是什么意思,所以它仍然选择ARIMA(3,1,0)/ ARMA 3,0)为最佳。 – andrekos 2009-11-03 06:23:03
当适配存在问题时,auto.arima()返回1e20的AIC(即10^20)。这可能是一个收敛问题,或者这些参数可能接近平稳性和可逆性的边界。这些信号表明该模型可能存在问题,最好不要使用。 – 2009-11-03 07:13:11
一如既往,感谢您对stackoverflow的贡献,Rob! – griffin 2009-11-03 16:44:37