2013-02-25 104 views
3

我很难计算出使用arima {stats}创建具有特定MA项的ARMA模型的特定方式,最大数量。如何在R中创建具有特定MA(或q)项的ARIMA模型

我的意思是,我需要具体的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(p,d,q)中插入一个列表作为q的所有可能性,并且我找不到其他任何示例。

有没有人有想法?

+0

arima()命令不允许使用术语的子集。目前还不清楚为什么你会这么做。 – 2013-02-25 11:06:44

回答

2

我想通了。

这是什么季节性参数是为我所怀疑,但无法让它工作正确。基本上,AR(1)MA(1,4)模型是在t-4时段具有季节性移动平均值的AR(1)MA(1)模型(因为这是季度数据,所以是有意义的)。

因此,与华冠做到这一点的方法是:

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 
+0

这非常有用,但是如何添加多个季节词? – Digio 2016-04-29 19:58:04