2016-06-24 37 views
1

私はforecast::auto.arimaを使用して時系列予測を実行していますが、適合時系列オブジェクトからpdqに(および季節的に同様に)割り当てられた値を抽出する方法があるかどうかを確認しようとしていました。例:Rの適合ARIMAモデルからp、d、q値を抽出する。

fit <- auto.arima(mydata) 

auto.arima()ARIMA(1,1,0)(0,1,1)[12]モデルを選んだと言います。適度な値からp,d,q(およびP,DQ)の値を抽出する方法はありますか?最後に、私は次のように6つの変数が自動的に割り当てがしたい:あなたは?auto.arimaを見れば、あなたはそれがstats::arimaと同じオブジェクトを返すことを知っているだろう

p=1, d=1, q=0, P=0, D=1, Q=1 

答えて

3

。さらに?arimaを見ると、戻り値の$modelから必要な情報が見つかることがわかります。 $modelの詳細は?KalmanLikeから読み取ることができます:

phi, theta: numeric vectors of length >= 0 giving AR and MA parameters. 

    Delta: vector of differencing coefficients, so an ARMA model is 
      fitted to ‘y[t] - Delta[1]*y[t-1] - ...’. 

だから、あなたがすべき:?auto.arimaから

p <- length(fit$model$phi) 
q <- length(fit$model$theta) 
d <- fit$model$Delta 

例:

library(forecast) 
fit <- auto.arima(WWWusage) 

length(fit$model$phi) ## 1 
length(fit$model$theta) ## 1 
fit$model$Delta ## 1 

fit$coef 
#  ar1  ma1 
# 0.6503760 0.5255959 

代わりに(実際にはより良い)、あなた$armaの値を参照できます:

arma: A compact form of the specification, as a vector giving the 
     number of AR, MA, seasonal AR and seasonal MA coefficients, 
     plus the period and the number of non-seasonal and seasonal 
     differences. 

しかし、正しく一致させる必要があります。上記の例では、そこにある:

表記 ARIMA(p,d,q)(P,D,Q)[m]を使用して
fit$arma 
# [1] 1 1 0 0 1 1 0 

、我々は明確に提示するためにname属性を追加することができます。

setNames(fit$arma, c("p", "q", "P", "Q", "m", "d", "D")) 
# p q P Q m d D 
# 1 1 0 0 1 1 0 
+0

おかげで、更新されたバージョンは、私が探していたまさにです! – user1723699

関連する問題