2014-10-08 92 views
1

我被要求嘗試從ARIMA模型(μ,Φ,θ)中找到參數,我最初認爲它只是ARIMA模型的階數,例如(1,0,1 )(1,1,0)但我的經理說這不是他想要的。ARIMA輸出在r中的定義

我查看了ARIMA模型運行後的總結,發現了phi,theta和delta的值,但有多個值,我非常不確定哪一個是我需要的。

這裏是我發現的值:

M<-matrix(c("08Q1", "08Q2", "08Q3", "08Q4", "09Q1", "09Q2", "09Q3", "09Q4", "10Q1", "10Q2", "10Q3", "10Q4", "11Q1", "11Q2", "11Q3", "11Q4", "12Q1", "12Q2", "12Q3", "12Q4", "13Q1", "13Q2", "13Q3", "13Q4", "14Q1", "14Q2", 79160.56, 91759.73, 91186.48, 106353.82, 70346.47, 80279.15, 82611.60, 131392.72, 93798.99, 105944.78, 103913.13, 154530.69, 110157.40, 117416.09, 127423.42, 156752.00,120097.81, 121307.75, 115021.12, 150657.83, 113711.53, 115353.14, 112701.98, 154319.18,116803.54, 118352.54),ncol=2,byrow=FALSE) 
deltaT<-1/4 
horiz<-4 
startY<-c(8,1) 
aslog<-"y" 
Nu<-M[,length(M[1,])] 
Nu<-as.numeric(Nu) 
Nu<-ts(Nu,deltat=deltaT,start=startY) 
Mdates<-as.character(M[,1]) 
if(aslog=="y") 
    {N<-log(Nu)} else 
    {N<-Nu} 
library(forecast) 
library(tseries) 
max.sdiff <- 3 
arima.force.seasonality <- "n" 
suppressWarnings(kpssW <- kpss.test(N, null="Level")) 
suppressWarnings(ppW <- tryCatch({ppW <- pp.test(N, alternative = "stationary")}, error = function(ppW) {ppW <- list(error = "TRUE", p.value = 0.99)})) 
suppressWarnings(adfW <- adf.test(N, alternative = "stationary", k = trunc((length(N)-1)^(1/3)))) 
if(kpssW$p.value < 0.05 | ppW$p.value > 0.05 | adfW$p.value > 0.05) {ndiffsW = 1} else {ndiffsW = 0} 
aaw <- auto.arima(N, max.D= max.sdiff, d=ndiffsW, seasonal=TRUE, 
        allowdrift=FALSE, stepwise=FALSE, trace=FALSE, seasonal.test="ch") 
orderWA <- c(aaw$arma[1], aaw$arma[6] , aaw$arma[2]) 
orderWS <- c(aaw$arma[3], aaw$arma[7] , aaw$arma[4]) 
if(sum(aaw$arma[1:2])==0) {orderWA[1] <- 1} else {NULL} 
if(arima.force.seasonality == "y") {if(sum(aaw$arma[3:4])==0) {orderWS[1] <- 1} else {NULL}} else {NULL} 
ArimaW1 <- Arima(N, order= orderWA, seasonal=list(order=orderWS), method="ML") 
ArimaW1$model 

此示出了用於披5個不同的值,4 theta和1德爾塔。我怎麼知道哪個是正確的參數值?或者,我是否全部使用它們來顯示參數,並強制參數在我的數據的截斷版本上測試擬合的準確性?

回答

2

您可以使用coef功能得到擬合係數:

coef(ArimaW1) 
    ar1  sar1  sma1 
-0.1535883 0.9898988 -0.6517680 

這些都是等於當運行summary(ArimaW1)或只是ArimaW1時所顯示的係數。如果模型的形式爲ARIMA(P,d,Q)(P,d,Q)[米],則:

  • P = ar係數(μs)
  • Q = ma係數(μs )
  • P = sar係數(μs)
  • Q = sma係數(μs)

擬合的精確度即從summary(ArimaW1)輸出的一部分可以使用進行評估功能:

accuracy(ArimaW1) 
         ME  RMSE  MAE  MPE  MAPE  MASE 
Training set 0.005871904 0.0812424 0.05851961 0.04856836 0.5022439 0.3297573 
        ACF1 
Training set 0.03194607 

我認爲(即猜),您在ArimaW1$model發現了多個係數值從通過MLE配件剩菜。如果您運行debugonce(Arima),您可以看到在擬合過程中,mod中的係數返回爲fit$model,發生變化(但我認爲只有一次或兩次)。

順便說一下,如果您正在尋找使用R Forecasting: Principles And Practice的季節性ARIMA型號的快速介紹,值得推薦。

+1

非常感謝謝謝! – 2014-10-09 08:30:13