2013-02-25 103 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