Test de stabilité dans une série chronologique

9

Existe-t-il une méthode standard (ou meilleure) de test lorsqu'une série chronologique donnée s'est stabilisée?


Une certaine motivation

J'ai un système dynamique stochastique qui produit une valeur à chaque pas de temps . Ce système a un comportement transitoire jusqu'au pas de temps , puis se stabilise autour d'une valeur moyenne avec une erreur. Aucun de , ou l'erreur ne me sont connus. Je suis prêt à faire quelques hypothèses (comme une erreur gaussienne autour de t N t x t x x XttNtXtXXpar exemple), mais moins j'ai besoin d'hypothèses a priori, mieux c'est. La seule chose dont je suis sûr, c'est qu'il n'y a qu'un seul point stable vers lequel le système converge, et les fluctuations autour du point stable sont beaucoup plus faibles que les fluctuations pendant la période transitoire. Le processus est également monotone, je peux supposer que commence près de et monte vers (peut-être un peu dépassé avant de se stabiliser autour de ). 0 x x X00XX

Les données d'une simulation, et j'ai besoin du test de stabilité comme condition d'arrêt pour ma simulation (car je ne m'intéresse qu'à la période transitoire).Xt

Question précise

Étant donné uniquement l'accès à la valeur temporelle pour certains finis , existe-t-il une méthode pour dire avec une précision raisonnable que le système dynamique stochastique s'est stabilisé autour d'un certain point ? Points bonus si le test renvoie également , et l'erreur autour de . Cependant, cela n'est pas essentiel car il existe des moyens simples de le comprendre une fois la simulation terminée. T x x t x X0...XTTXXtX


Approche naïve

L'approche naïve qui me vient d'abord à l'esprit (que j'ai vue utilisée comme conditions de gain pour certains réseaux de neurones, par exemple) est de choisir les paramètres et , puis si pour les derniers pas de temps il n'y a pas deux points et tel que alors nous concluons que nous nous sommes stabilisés. Cette approche est facile, mais pas très rigoureuse. Cela m'oblige également à deviner quelles devraient être les bonnes valeurs de etE T x x x - x > E T ETETXXX-X>ETE

Il semble qu'il devrait y avoir une meilleure approche qui revient sur un certain nombre d'étapes dans le passé (ou peut-être en quelque sorte actualise les anciennes données), calcule l'erreur standard à partir de ces données, puis teste si pour un autre nombre d'étapes (ou une autre schéma d'actualisation), la série chronologique n'est pas en dehors de cette plage d'erreur. J'ai inclus une stratégie un peu moins naïve mais toujours simple comme réponse .


Toute aide ou référence à des techniques standard est appréciée.

Remarques

J'ai également posté cette question telle quelle dans MetaOptimize et dans une description plus axée sur la simulation pour Computational Science .

Artem Kaznatcheev
la source
Avez-vous trouvé une solution claire? Je m'intéresse à la même question mais toutes les réponses ne sont pas convaincantes.
Herman Toothrot
1
@ user4050 malheureusement, je ne l'ai pas. Je pense que c'est en fait une question très large et il existe de nombreuses techniques qui sont meilleures dans certains domaines et pires dans d'autres.
Artem Kaznatcheev

Réponses:

6

Cette courte remarque est loin d'être complète, juste quelques suggestions:

  • si vous avez deux périodes de temps où le comportement est différent, par différent j'entends soit des différences dans les paramètres du modèle (non pertinent dans cette situation particulière), la moyenne ou la variance ou toute autre caractéristique attendue d'un objet de série chronologique ( dans votre cas ), vous pouvez essayer toutes les méthodes permettant d'estimer le temps (intervalle) de changement structurel (ou épidémique) .Xt
  • Dans R, il existe une strucchange bibliothèque pour les changements structurels dans les modèles de régression linéaire. Bien qu'il soit principalement utilisé pour tester et surveiller les changements dans les paramètres de régression linéaire, certaines statistiques pourraient être utilisées pour les changements structurels généraux dans les séries chronologiques.
Dmitrij Celov
la source
L'absence de toute valeur aberrante / changement de niveau / tendance et la non-prise en compte de la corrélation en série de tout retard dans les résidus du modèle sont des ingrédients qui provoquent souvent une mauvaise application des tests F standard, il faut donc faire attention (comme vous l'avez suggéré!).
IrishStat
@IrishStat, comme vous pouvez le voir dans mon article, je ne suggère pas d'utiliser le modèle de régression linéaire, je viens de noter qu'il peut avoir une forme similaire de statistiques (CUMSUM ou autre, puisque ces dernières sont appliquées aux résidus du modèle, que sont clairement des objets de séries chronologiques) avec (probablement) des distributions limites différentes qui tiennent compte de l'autocorrélation (testable) et que si vous le souhaitez, vous pouvez faire des ajustements aberrants (également testables) avant d'autres tests. C'est juste la seule bibliothèque R que je connaisse qui fonctionne avec les changements structurels.
Dmitrij Celov
Je commence à aimer de plus en plus cette réponse. Avez-vous une suggestion pour une bonne référence (de préférence un document d'enquête récent) pour certaines méthodes courantes d'estimation du moment du changement structurel?
Artem Kaznatcheev le
4

En lisant votre question "et les fluctuations autour du point stable sont beaucoup plus faibles que les fluctuations pendant la période transitoire" ce que j'en retire est une demande pour détecter quand et si la variance des erreurs a changé et si oui quand! Si tel est votre objectif, vous pourriez envisager de revoir le travail ou R. Tsay «valeurs aberrantes, changements de niveau et changements de variance dans les séries chronologiques», Journal of Forecasting Vol 7, 1-20 (1988). J'ai fait un travail considérable dans ce domaine et je trouve très productif de produire une bonne analyse. D'autres approches (ols / analyse de régression linéaire par exemple) qui supposent des observations indépendantes et aucune valeur aberrante du pouls et / ou aucun changement de niveau ou des tendances temporelles locales et des paramètres invariants dans le temps sont à mon avis insuffisantes.

IrishStat
la source
1

Je réfléchissais davantage à la question et pensais donner une légère amélioration de l'approche naïve comme réponse dans l'espoir que les gens connaissent d'autres idées dans la direction. Cela nous permet également d'éliminer le besoin de connaître l'ampleur des fluctuations.


La manière la plus simple de l'implémenter est d'utiliser deux paramètres . Soit y t = x t + 1 - x t le changement dans la série temporelle entre le pas de temps t et t + 1 . Lorsque la série est stable autour de x , y fluctue autour de zéro avec une erreur standard. Ici, nous supposerons que cette erreur est normale.(T,α)yt=xt+1xttt+1Xy

Prenez les derniers , y t et ajustez un Gaussien avec confiance α en utilisant une fonction comme la normfit de Matlab . L'ajustement nous donnera une moyenne μ avec une erreur de confiance α sur la moyenne E μ et un écart-type σ avec l'erreur correspondante E σ . Si 0 ( μ - E μ , μ + E μ ) , alors vous pouvez accepter. Si vous voulez être plus sûr, vous pouvez également renormaliser les y t s par le σTytαμαEμσEσ0(μ-Eμ,μ+Eμ)ytσvous avez trouvé (de sorte que vous avez maintenant l'écart type ) et testez avec le test de Kolmogorov-Smirnov au niveau de confiance α .1α


L'avantage de cette méthode est que contrairement à l'approche naïve, vous n'avez plus besoin de connaître l'ampleur des fluctuations thermiques autour de la moyenne. La limitation est que vous avez toujours un paramètre arbitraire , et nous avons dû supposer une distribution normale sur le bruit (ce qui n'est pas déraisonnable). Je ne sais pas si cela peut être modifié par une moyenne pondérée avec une remise. Si une distribution différente est censée modéliser le bruit, alors normfit et le test de Kolmogorov-Smirnov doivent être remplacés par leurs équivalents pour cette distribution.T

Artem Kaznatcheev
la source
0

Vous pourriez envisager de tester en arrière (avec une fenêtre mobile) pour la co-intégration entre xet la moyenne à long terme.

Quand xfloppe la moyenne, j'espère que le test de Dickey Fuller augmenté de fenêtre, ou tout autre test de co-intégration que vous choisirez, vous dira que les deux séries sont co-intégrées. Une fois que vous entrez dans la période de transition, où les deux séries s'éloignent l'une de l'autre, nous espérons que votre test vous dira que les séries fenêtrées ne sont pas co-intégrées.

Le problème avec ce schéma est qu'il est plus difficile de détecter la co-intégration dans une fenêtre plus petite. Et, une fenêtre trop grande, si elle ne comprend qu'un petit segment de la période de transition, vous dira que la série fenêtrée est co-intégrée alors qu'elle ne devrait pas. Et, comme vous pouvez le deviner, il n'y a aucun moyen de savoir à l'avance quelle pourrait être la «bonne» taille de fenêtre.

Tout ce que je peux dire, c'est que vous devrez jouer avec pour voir si vous obtenez des résultats raisonnables.

bill_080
la source
0

mt+1-mt

Pete
la source
0

Outre la solution évidente de filtre de Kalman, vous pouvez utiliser des décompositions en ondelettes et obtenir un spectre de puissance localisé en temps et en fréquence. Cela répond à votre désir sans hypothèses, mais ne vous donne malheureusement pas de test formel du moment où le système s'installe. Mais, pour une application pratique, c'est bien; il suffit de regarder le moment où l'énergie dans les hautes fréquences meurt et où les coefficients d'ondelettes père se stabilisent.

user2763361
la source
cela ne fait-il pas que renvoyer la balle, puisque je ne dois pas tester quand la série chronologique du coefficient d'ondelettes père se stabilise? Ou existe-t-il une méthode standard pour cette série chronologique particulière? Quelle est la solution de filtre Kalman évidente?
Artem Kaznatcheev du
@ArtemKaznatcheev Pourquoi ne pouvez-vous pas simplement regarder un tracé de la série de coefficients? J'essayais d'offrir une solution qui n'adhérait pas à votre désir de tester, mais comme un compromis était sans beaucoup d'hypothèses.
user2763361