Question

Je suis en train de me expliquer le résultat de la prévision de l'application d'un modèle ARIMA à un ensemble de données de séries chronologiques. Les données sont de la M1 compétition, la série est MNB65. Je suis en train d'ajuster les données à un modèle ARIMA (1,0,0) et obtenir les prévisions. J'utilise R. Voici quelques extraits de sortie:

> arima(x, order = c(1,0,0))
Series: x 
ARIMA(1,0,0) with non-zero mean 
Call: arima(x = x, order = c(1, 0, 0)) 
Coefficients:
         ar1  intercept
      0.9421  12260.298
s.e.  0.0474    202.717

> predict(arima(x, order = c(1,0,0)), n.ahead=12)
$pred
Time Series:
Start = 53 
End = 64 
Frequency = 1 
[1] 11757.39 11786.50 11813.92 11839.75 11864.09 11887.02 11908.62 11928.97 11948.15 11966.21 11983.23 11999.27

J'ai quelques questions:

(1) Comment puis-je expliquer que, bien que l'ensemble de données montre une tendance à la baisse claire, les prévisions de cette évolution du modèle vers le haut? Cela se produit également pour ARIMA (2,0,0), qui est le meilleur ajustement arima pour les données à l'aide auto.arima (paquet prévisions) et pour un modèle ARIMA (1,0,1).

(2) La valeur de l'ordonnée à l'origine pour le modèle ARIMA (1,0,0) est 12260,298. Ne doit pas l'interception satisfaire l'équation: C = mean * (1 - sum(AR coeffs)), auquel cas, la valeur doit être 715.52. Je dois manquer ici quelque chose de fondamental.

(3) Ceci est clairement une série de moyenne non stationnaire. Pourquoi un modèle encore sélectionné comme le meilleur modèle AR (2) par auto.arima? Y aurait-il une explication intuitive?

Merci.

Était-ce utile?

La solution

  1. modèle

    Non ARIMA (p, 0, q) permettra une tendance parce que le modèle est stationnaire. Si vous voulez vraiment inclure une tendance, utilisez ARIMA (p, 1, q) avec un terme de dérive, ou ARIMA (p, 2, q). Le fait que auto.arima () suggère-t-0 différences indiqueraient généralement il n'y a pas de tendance claire.

  2. Le fichier d'aide pour Arima () montre que l'interception est en fait la moyenne. Autrement dit, le modèle AR (1) est (Y_t-c) = ϕ(Y_{t-1} - c) + e_t plutôt que Y_t = c + ϕY_{t-1} + e_t comme on pouvait s'y attendre.

  3. auto.arima() utilise un test de racine unitaire pour déterminer le nombre de différences nécessaires. vérifier les résultats de l'unité test de racine pour voir ce qui se passe. Vous pouvez toujours spécifier le nombre de différences dans auto.arima() si vous pensez que les tests de racine unitaire ne mènent pas à un modèle sensible.

Voici les résultats de deux tests pour vos données:

R> adf.test(x)

        Augmented Dickey-Fuller Test

data:  x 
Dickey-Fuller = -1.031, Lag order = 3, p-value = 0.9249
alternative hypothesis: stationary 

R> kpss.test(x)

        KPSS Test for Level Stationarity

data:  x 
KPSS Level = 0.3491, Truncation lag parameter = 1, p-value = 0.09909

Ainsi, le FAD dit fortement non stationnaire (l'hypothèse nulle dans ce cas) alors que le KPSS ne rejette pas tout à fait stationnarité (hypothèse nulle pour ce test). auto.arima() utilise ce dernier par défaut. Vous pouvez utiliser auto.arima(x,test="adf") si vous voulez que le premier test. Dans ce cas, il suggère le modèle ARIMA (0,2,1) qui a une tendance.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top