Expliquant les prévisions à partir d'un modèle ARIMA
Je suis en train d'expliquer à moi-même la prévision de résultat de l'application d'un modèle ARIMA pour une série chronologique de données. Les données proviennent de la M1-Concurrence, la série est MNB65. Je suis en train d'essayer d'adapter les données à un ARIMA(1,0,0) modèle et obtenir les prévisions. Je suis à l'aide de 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 expliquer que, bien que l'ensemble de données montre une nette tendance à la baisse, les prévisions de ce modèle, les tendances à la hausse. C'est également le cas pour ARIMA(2,0,0), qui est le meilleur ARIMA ajustement pour les données à l'aide de l'auto.arima (prévision) et pour un ARIMA(1,0,1) modèle.
(2) l'ordonnée à L'origine de la valeur pour l'ARIMA(1,0,0) le modèle est 12260.298. Ne pas les intercepter satisfaire à l'équation: C = moyenne * (1 - sum(AR coeffs)), auquel cas, la valeur doit être 715.52. Quelque chose doit m'échapper de base ici.
(3) C'est clairement une série non-stationnaire de moyenne. Pourquoi un AR(2) modèle sélectionné comme étant le meilleur modèle en auto.arima? Pourrait-il y avoir une explication intuitive?
Grâce.
OriginalL'auteur Samik R | 2010-04-21
Vous devez vous connecter pour publier un commentaire.
Pas ARIMA(p,0,q) modèle permettra une tendance, parce que le modèle est à l'arrêt. Si vous voulez vraiment comprendre une tendance, l'utilisation ARIMA(p,1,q) avec une dérive du terme, ou ARIMA(p,2,q). Le fait que l'auto.arima() suggère 0 différences indiquent généralement il n'y a pas de tendance claire.
Le fichier d'aide pour arima() montre que l'ordonnée à l'origine est en fait la moyenne. C'est, de l'AR(1) modèle (Y_t-c) = phi*(Y_{t-1} - c) + e_t plutôt que Y_t = c + phi*Y_{t-1} + e_t comme vous vous en doutez.
auto.arima() utilise un test de racine unitaire pour déterminer le nombre de différences nécessaires. Afin de vérifier les résultats du test de racine unitaire pour voir ce qu'il se passe. Vous pouvez toujours spécifier le nombre de différences dans l'auto.arima() si vous pensez que les tests de racine unitaire sont ne conduisant pas à un modèle raisonnable.
Voici les résultats de deux tests de vos données:
Donc l'ADF dit fortement non stationnaire (l'hypothèse nulle dans ce cas), tandis que le KPSS ne pas tout rejeter de stationnarité (l'hypothèse nulle de ce test). auto.arima() utilise par défaut. Vous pouvez utiliser l'option auto.arima(x,test="fad") si vous voulez que le premier test. Dans ce cas, il suggère le modèle ARIMA(0,2,1) qui n'ont une tendance.
Prof. Hyndman, est-il un moyen pour être sûr qu'une série I(2) ou requiert deux fois plus de différenciation pour la rendre stationnaire ? Les résultats pour une analyse plus approfondie permettra de varier si la série est d'une différenciation, une fois ou deux fois. Votre post suggère d'utiliser KPSS, mais existe-il des alternatives ? Je vous remercie.
OriginalL'auteur Rob Hyndman