Comment savoir si une série chronologique est stationnaire ou non stationnaire?

30

J'utilise R, je cherchai sur Google et appris que kpss.test(), PP.test()et adf.test()sont utilisées pour savoir sur stationnarité des séries chronologiques.

Mais je ne suis pas un statisticien, qui peut interpréter leurs résultats

> PP.test(x)

     Phillips-Perron Unit Root Test
data:  x 
Dickey-Fuller = -30.649, Truncation lag parameter = 7, p-value = 0.01

> kpss.test(b$V1)

  KPSS Test for Level Stationarity
  data:  b$V1 
  KPSS Level = 0.0333, Truncation lag parameter = 3, p-value = 0.1

Warning message:
In kpss.test(b$V1) : p-value greater than printed p-value
> adf.test(x)

    Augmented Dickey-Fuller Test

data:  x 
Dickey-Fuller = -9.6825, Lag order = 9, p-value = 0.01
alternative hypothesis: stationary

Warning message:
In adf.test(x) : p-value smaller than printed p-value

Je traite de milliers de séries chronologiques, veuillez me dire comment vérifier quantitativement la stationnarité des séries chronologiques.

Sagar Nikam
la source

Réponses:

22

Pour tester si une série est stationnaire par rapport à non stationnaire, vous devez considérer une séquence d'hypothèses alternatives. Un pour chaque hypothèse gaussienne listable. Il faut comprendre que les hypothèses gaussiennes concernent le processus d'erreur et n'ont rien à voir avec la série observée en cours d'évaluation. Comme résumé correctement par StasK, cela pourrait inclure des violations de la stationnarité, comme le changement moyen, le changement de variance, les changements dans les paramètres du modèle au fil du temps. Par exemple, un ensemble de valeurs à la hausse serait un exemple prima facie d'une série qui en Y n'était pas constante tandis que les résidus d'un modèle approprié pourraient être décrits comme ayant une moyenne constante. Ainsi, la série d'origine est non stationnaire dans la moyenne mais la série résiduelle est stationnaire dans sa moyenne. S'il y a des violations moyennes non atténuées dans la série résiduelle comme les impulsions, les changements de niveau, les impulsions saisonnières et / ou les tendances de l'heure locale, la série résiduelle (non traitée) peut être caractérisée comme étant non stationnaire dans la moyenne tandis qu'une série de variables indicatrices peut être facilement détectable et incorporé dans le modèle pour rendre les résidus du modèle stationnaires dans la moyenne. Maintenant, si la variance de la série d'origine présente une variance non stationnaire, il est tout à fait raisonnable de restreindre un filtre / modèle pour rendre un processus d'erreur qui a une variance constante. De même, les résidus d'un modèle peuvent avoir une variance non constante nécessitant l'un des trois remèdes possibles - Impulsions saisonnières et / ou tendances temporelles locales, la série résiduelle (non traitée) peut être caractérisée comme étant non stationnaire dans la moyenne tandis qu'une série de variables indicatrices pourrait être facilement détectée et incorporée dans le modèle pour rendre les résidus du modèle stationnaires dans la moyenne . Maintenant, si la variance de la série d'origine présente une variance non stationnaire, il est tout à fait raisonnable de restreindre un filtre / modèle pour rendre un processus d'erreur qui a une variance constante. De même, les résidus d'un modèle peuvent avoir une variance non constante nécessitant l'un des trois remèdes possibles - Impulsions saisonnières et / ou tendances temporelles locales, la série résiduelle (non traitée) peut être caractérisée comme étant non stationnaire dans la moyenne tandis qu'une série de variables indicatrices pourrait être facilement détectée et incorporée dans le modèle pour rendre les résidus du modèle stationnaires dans la moyenne . Maintenant, si la variance de la série d'origine présente une variance non stationnaire, il est tout à fait raisonnable de restreindre un filtre / modèle pour rendre un processus d'erreur qui a une variance constante. De même, les résidus d'un modèle peuvent avoir une variance non constante nécessitant l'un des trois remèdes possibles - Maintenant, si la variance de la série d'origine présente une variance non stationnaire, il est tout à fait raisonnable de restreindre un filtre / modèle pour rendre un processus d'erreur qui a une variance constante. De même, les résidus d'un modèle peuvent avoir une variance non constante nécessitant l'un des trois remèdes possibles - Maintenant, si la variance de la série d'origine présente une variance non stationnaire, il est tout à fait raisonnable de restreindre un filtre / modèle pour rendre un processus d'erreur qui a une variance constante. De même, les résidus d'un modèle peuvent avoir une variance non constante nécessitant l'un des trois remèdes possibles -

  1. Les moindres carrés pondérés (largement ignorés par certains analystes)
  2. Une transformation de puissance pour découpler la valeur attendue de la variance des erreurs identifiables via un test Box-Cox et / ou
  3. Un besoin d'un modèle GARCH pour tenir compte d'une structure ARIMA évidente dans les résidus au carré. En continuant si les paramètres changent avec le temps OU si la forme du modèle change avec le temps, on est confronté à la nécessité de détecter cette caractéristique et d'y remédier soit par segmentation des données, soit par l'utilisation d'une approche TAR à la Tong.
IrishStat
la source
34

La stationnarité signifie que la distribution marginale du processus ne change pas avec le temps. Une forme plus faible indique que la moyenne et la variance restent les mêmes au fil du temps. Donc, tout ce qui le viole sera considéré comme non stationnaire, pour toutes raisons stupides. Par exemple, un n'est pas stationnaire, car sa moyenne ne cesse de changer, bien qu'à première vue, il s'agit d'un processus assez simple et prévisible.yt=sint

Tous les tests que vous envisagez ont une alternative spécifique en tête: un processus de marche aléatoire ou une modification facile de celui-ci (par exemple, inclure des retards supplémentaires ,

yt=yt1+ϵt
yt2yt3avec de petits coefficients). Il s'agit d'un modèle simple d'un marché financier efficace, où aucune information ne peut être utilisée pour prédire les variations futures des prix. La plupart des économistes pensent que leurs séries chronologiques proviennent des modèles ARIMA; ces séries chronologiques ont des périodes bien définies où les choses se produisent (mois, trimestre ou année), de sorte que cela empire rarement qu'une série chronologique intégrée pour elles. Ces tests ne sont donc pas conçus pour des violations plus complexes de la stationnarité, comme le changement moyen, le changement de variance, le changement des coefficients autorégressifs, etc., bien que des tests pour ces effets aient évidemment été développés également.

En génie ou en sciences naturelles, vous êtes plus susceptible de rencontrer des séries chronologiques avec des problèmes plus compliqués, comme la dépendance à longue distance, l'intégration fractionnaire, le bruit rose, etc. Avec le manque de directives claires de la description du processus concernant les échelles de temps typiques ( à quelle fréquence le climat change-t-il?), il est généralement plus logique d'analyser les données dans le domaine fréquentiel (alors que pour les économistes, le domaine fréquentiel est assez clair: il y a des cycles saisonniers annuels, plus des cycles économiques plus longs de 3-4-5 ans ; peu de surprises peuvent se produire autrement).

Donc, fondamentalement, je vous ai dit pourquoi vous ne vouliez pas faire ce que vous vouliez faire. Si vous ne comprenez pas les séries chronologiques, vous feriez mieux de trouver quelqu'un qui le fait et de payer des honoraires de conseil, plutôt que d'avoir votre projet foiré parce que vous avez fait quelque chose de stupide. Cela dit, la solution formelle à votre problème serait de rejeter l'hypothèse nulle d'une série stationnaire lorsque, pour une série donnée, au moins un test a une valeur inférieure à où est le nombre total de série, est le nombre de tests que vous effectuez sur eux, est le niveau de signification préféré de 5%, et l'expression entière est connue sous le nom de correction de Bonferroni pour plusieurs tests. La sortie n'affiche pas lep0.05/(3M)M30.05p-valeurs avec une précision suffisante, vous devrez donc les extraire en tant que membres de classe retournés, tels que pp.test(x)$p.value. De toute façon, vous le ferez en cycle, donc cela suffirait probablement si vous supprimez toute la sortie et ne produisez que le ou les noms des variables qui échouent à la stationnarité.

StasK
la source
4

Les séries chronologiques sont stationnaires si leur niveau moyen et leur variance restent stables dans le temps. Vous pouvez en savoir plus sur ce sujet (avec la spécification des tests pertinents dans R), dans notre article .. http://www.statosphere.com.au/check-time-series-stationary-r/

STAToSphere
la source
1
Commentaire tardif, mais que voulez-vous dire par le fait que la moyenne et la variance restent stables au fil du temps? Pour un ensemble de données donné, la moyenne et la variance sont ce qu'elles sont, non? Ou voulez-vous dire que la moyenne / var de tous les sous-ensembles de données doit être égale?
Erik Vesterlund
2
J'ai jeté un œil sur la page liée. Il est déclaré que «le test de Ljung-Box examine s'il existe des preuves significatives de corrélations non nulles aux retards de 1 à 20. De petites valeurs de p (c'est-à-dire inférieures à 0,05) suggèrent que la série est stationnaire». La conclusion est tout à fait erronée. Le nul est que les observations sont iid. Le rejet de la valeur nulle sur la base d'une petite valeur p indique uniquement qu'il existe au moins un décalage significatif. La conclusion sur le site Web signifierait que la stationnarité nécessite une autocorrélation importante pendant au moins un décalage. Et ce n'est pas vrai.
random_guy