akaike标准:ar中的ar()vs arima()

时间:2013-09-28 00:14:41

标签: r

对于ar(1)和arima(1,0,0),AIC之间存在巨大差异:

> a <- ar(rn, lags=1)
> a$aic   
0          1          2          3          4          5          6          7 ...          
6.0215169  1.2184962  2.0020937  1.1786418  0.9002231  0.0000000  1.1728207  ... 

> b<-arima(rn, order=c(1,0,0))  
> b$aic
[1] -6840.676

回归系数相当接近:ar为-0.068,arima为-0.077。 非常感谢任何评论。 艾力

1 个答案:

答案 0 :(得分:2)

ar()的帮助中,您可以阅读:

aic每个模型与最佳拟合模型之间的AIC差异。

因此,它显示所选(“最佳”)模型的aic = 0,因为差异为零。

arima()显示您的实际情况。

例如,请考虑以下模拟数据集:

set.seed(11)
d<-rnorm(100)

然后估算ar和arma模型:

ar.m<-ar(d,demean=FALSE)
ar.m
Call:
ar(x = d)

Coefficients:
      1  
-0.1847  

Order selected 1  sigma^2 estimated as  0.816

你看到ar选择了一个滞后。所以用arima估算相同的模型:

arima.m<-arima(d,order=c(1,0,0))
arima.m
Call:
arima(x = d, order = c(1, 0, 0))

Coefficients:
          ar1  intercept
      -0.1838    -0.1220
s.e.   0.0980     0.0756

sigma^2 estimated as 0.7995:  log likelihood = -130.72,  aic = 267.45    

你现在看到,arima.m的aic是267.45

现在aic使用ar.m的残差和aic的公式计算:

ar.m.res<-ar.m$resid
rss.ar.m<-sum(ar.m.res[-1]^2)
l.ar.m<-1/(2*pi*rss.ar.m/100)^50*exp(-50)
2*2-2*log(l.ar.m)

267.5334

几乎一样......