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 ∗par 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 ∗
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).
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 ∗
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 E
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 .
la source
Réponses:
Cette courte remarque est loin d'être complète, juste quelques suggestions:
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.la source
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.
la source
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 + 1- xt t t + 1 X∗ y
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 σT yt α μ α 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
la source
Vous pourriez envisager de tester en arrière (avec une fenêtre mobile) pour la co-intégration entre
x
et la moyenne à long terme.Quand
x
floppe 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.
la source
la source
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.
la source