2016-06-24 1 views
1

Je cours une prévision de série temporelle en utilisant forecast::auto.arima, et j'essayais de voir s'il y a un moyen d'extraire les valeurs assignées à p, d, q (et de façon saisonnière aussi bien si applicable) de l'objet de séries chronologiques ajusté. Exemple:Extraction des valeurs p, d, q d'un modèle ARIMA ajusté dans R?

fit <- auto.arima(mydata) 

Say auto.arima() choisi un modèle ARIMA(1,1,0)(0,1,1)[12]. Existe-t-il un moyen d'extraire les valeurs de p, d, q (et P, D, Q) de l'ajustement? En fin de compte, je voudrais avoir six variables automatiquement attribuées comme suit:

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

Répondre

3

Si vous regardez ?auto.arima, vous saurez qu'il retourne le même objet que stats::arima. Si vous regardez plus loin ?arima, vous voyez que l'information que vous voulez peut être trouvée de $model de la valeur retournée. Le détail de $model peut être lu à partir ?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] - ...’. 

Donc, vous devez faire:

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

Exemple de ?auto.arima:

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 

Sinon (en fait mieux), vous peut se référer à la valeur $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. 

Mais vous devez les faire correspondre correctement et avec soin. Pour l'exemple ci-dessus, il y a:

fit$arma 
# [1] 1 1 0 0 1 1 0 

En utilisant la notation ARIMA(p,d,q)(P,D,Q)[m], on peut ajouter l'attribut name pour une présentation claire:

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

Merci, la version mise à jour est exactement ce que je cherchais! – user1723699