如何在R中创建具有特定MA(或q)项的ARIMA模型

时间:2013-02-25 04:20:45

标签: r time time-series

我无法确定使用arima {stats}来创建具有特定MA术语的ARMA模型的特定方式,这些MA术语不仅仅是最大数量。

我的意思是,我需要特定的AR(1)MA(1,4)模型,该模型应该产生拦截,AR1术语,MA1术语和MA4术语......但这是不同于AR(1)MA(4)模型,它将具有MA1,MA2,MA3和MA(4)的术语。

我可以使用tseries包中的arma函数做到这一点。

> ar1ma14.model<-arma(ppi.d, lag=list(ar=1, ma=c(1,4)))
Warning message:
In arma(ppi.d, lag = list(ar = 1, ma = c(1, 4))) : order is ignored
  

摘要(ar1ma14.model)

Call:
arma(x = ppi.d, lag = list(ar = 1, ma = c(1, 4)))

Model:
ARMA(1,4)

Residuals:
   Min         1Q     Median         3Q        Max 
-0.0401487 -0.0056047  0.0004295  0.0045259  0.0379418 

Coefficient(s):
           Estimate  Std. Error  t value Pr(>|t|)    
ar1        0.765279    0.080376    9.521  < 2e-16 ***
ma1       -0.355297    0.102216   -3.476 0.000509 ***
ma4        0.297776    0.098485    3.024 0.002498 ** 
intercept  0.001855    0.001026    1.808 0.070603 .  

所以它适用于arma,但是arma函数与arima没有相同的预测能力。

我已经尝试了在arima(p,d,q)中插入列表作为q的所有可能性,但是我找不到其他人做过它的例子。

有没有人有想法?

1 个答案:

答案 0 :(得分:2)

我明白了。

这是季节性参数的含义,我怀疑,但无法使其正常工作。

基本上AR(1)MA(1,4)模型是AR(1)MA(1)模型,在t-4周期具有季节性移动平均值(这是有道理的,因为这是季度数据)。

所以用arima做的方法是:

ar1ma14.model<-arima(ppi.d, order=c(1,0,1), seasonal=list(order=c(0,0,1), period=4))

Call:
arima(x = ppi.d, order = c(1, 0, 1), seasonal = list(order = c(0, 0, 1), period = 4))

Coefficients:
         ar1      ma1    sma1  intercept
      0.8077  -0.3877  0.2297     0.0076
s.e.  0.0855   0.1295  0.0891     0.0032

同样,我需要测试AR(2)MA(| 4 |)模型,该模型仅包含MA4术语而不包括MA1,MA2或MA3。那将是一个带有季节性MA4的AR(2)模型......

ar2ma4.model<-arima(ppi.d, order=c(2,0,0), seasonal=list(order=c(0,0,1), period=4))

Call:
arima(x = ppi.d, order = c(2, 0, 0), seasonal = list(order = c(0, 0, 1), period = 4))

Coefficients:
         ar1     ar2    sma1  intercept
      0.4570  0.1611  0.2574     0.0078
s.e.  0.0769  0.0790  0.0841     0.0027

sigma^2 estimated as 0.0001147:  log likelihood = 523.37,  aic = -1036.75