Similitude statistique des séries chronologiques

15

Supposons que l'on dispose d'une série chronologique à partir de laquelle on peut prendre diverses mesures telles que la période, le maximum, le minimum, la moyenne, etc., puis les utiliser pour créer un modèle d'onde sinusoïdale avec les mêmes attributs. dans quelle mesure les données réelles correspondent-elles au modèle supposé? Le nombre de points de données dans la série se situerait entre 10 et 50 points.

Une première pensée très simpliste était d'attribuer une valeur au mouvement directionnel de l'onde sinusoïdale, c'est-à-dire +1 +1 +1 +1 -1 -1 -1 -1 -1 -1 -1 -1 +1 +1 +1 +1 +1, faites de même avec les données réelles, puis quantifiez en quelque sorte le degré de similitude du mouvement directionnel.

Edit: Après avoir réfléchi à ce que je veux vraiment faire avec mes données, et à la lumière des réponses à ma question d'origine, j'ai besoin d'un algorithme de prise de décision pour choisir entre des hypothèses concurrentes: à savoir que mes données sont fondamentalement linéaires (ou tendance) avec du bruit qui pourrait éventuellement avoir des éléments cycliques; mes données sont essentiellement cycliques, sans tendance directionnelle à proprement parler; les données ne sont essentiellement que du bruit; ou il est en transition entre l'un de ces états.

Mes pensées sont maintenant de combiner peut-être une certaine forme d'analyse bayésienne et métrique euclidienne / LMS. Les étapes de cette approche seraient les suivantes:

Créer l'onde sinusoïdale supposée à partir des mesures de données

Ajuster une ligne droite LMS aux données

Dériver une métrique euclidienne ou LMS pour les écarts par rapport aux données d'origine pour chacun des éléments ci-dessus

Créer un prior bayésien pour chacun basé sur cette métrique c'est-à-dire que 60% des départs combinés s'attachent à l'un, 40% à l'autre, favorisent donc les 40%

faites glisser une fenêtre d'un point de données le long des données et répétez ce qui précède pour obtenir de nouvelles mesures de% pour cet ensemble de données légèrement modifié - ce sont les nouvelles preuves - faites l'analyse bayésienne pour créer un postérieur et changer les probabilités qui favorisent chaque hypothèse

répéter tout le jeu de données (3000+ points de données) avec cette fenêtre coulissante (longueur de fenêtre 10-50 points de données). L'espoir / l'intention est d'identifier l'hypothèse prédominante / favorisée à tout moment dans l'ensemble de données et comment cela change avec le temps

Tout commentaire sur cette méthodologie potentielle serait le bienvenu, en particulier sur la façon dont je pourrais réellement mettre en œuvre la partie analyse bayésienne.

babelproofreader
la source

Réponses:

7

La distance euclidienne est une métrique courante dans l'apprentissage automatique. Les diapositives suivantes donnent un bon aperçu de ce domaine ainsi que des références:

Voir également les références sur la page de benchmarks de Keogh pour la classification des séries chronologiques:

ars
la source
5

Si vous souhaitez comparer un modèle spécifique: je recommanderais les moindres carrés comme mesure pour minimiser et évaluer les valeurs de paramètres possibles par rapport à un ensemble de données spécifique. Tout ce que vous avez à faire est de brancher vos estimations de paramètres, de les utiliser pour générer des valeurs prédites et de calculer l'écart quadratique moyen à partir des valeurs réelles.

Cependant, vous pourriez envisager de tourner légèrement votre question: "Quel modèle conviendrait le mieux à mes données?" Dans ce cas, je suggérerais de faire une hypothèse d'un terme d'erreur normalement distribué ~ quelque chose que l'on pourrait soutenir est semblable à l'hypothèse des moindres carrés. Ensuite, selon votre choix de modèle, vous pouvez faire une hypothèse sur la façon dont vous pensez que les autres paramètres du modèle sont distribués (en affectant un prior bayésien) et utiliser quelque chose comme le package MCMC de R pour échantillonner à partir de la distribution des paramètres. Ensuite, vous pouvez regarder les moyennes et les variations postérieures pour avoir une idée du modèle qui convient le mieux.

M. Tibbits
la source
Si j'ai deux modèles possibles pour s'adapter à mes données, l'onde sinusoïdale comme décrit dans ma question d'origine et un ajustement en ligne droite LMS, pourrais-je simplement comparer l'écart quadratique moyen par rapport aux valeurs réelles des données de l'onde sinusoïdale avec les résidus de la LMS fit line puis choisissez le modèle avec la valeur globale la plus basse au motif que ce modèle présente un ajustement plus précis aux données? Dans l'affirmative, serait-il également valide de peut-être diviser les données en deux et de faire de même avec chaque moitié séparément, en utilisant les mêmes ajustements sinusoïdaux / LMS pour voir comment chaque modèle peut s'améliorer / empirer avec le temps?
babelproofreader
Je ne suis pas sûr. Ma suggestion était d'utiliser une métrique des moindres carrés, mais je ne disais pas d'exécuter une régression linéaire. Vous pouvez vérifier la régression périodique .
M. Tibbits
Quant à votre autre question, pourriez-vous couper les données de moitié, je serais très prudent en le faisant - car cela doublerait la fréquence minimale que vous pourriez envisager. Je pense que vous pourriez finir par avoir besoin de regarder les coefficients de Fourier (prendre une FFT ou une DCT et régresser dessus?!? - Pas sûr ). Ou peut-être une régression périodique comme mentionné ci-dessus.
M. Tibbits
3

Votre «première pensée simpliste» consistant à représenter qualitativement le mouvement directionnel est similaire dans son esprit à l'algorithme SAX de Keogh pour comparer les séries chronologiques. Je vous recommande d'y jeter un œil: Eamonn Keogh & Jessica Lin: SAX .

D'après votre montage, il semble que vous envisagez maintenant de résoudre le problème différemment, mais vous constaterez peut-être que SAX fournit une pièce du puzzle.

Irish Buffer
la source
0

Bien que je sois un peu en retard pour la fête, si vous pensez à quelque chose de sinusoïdal, les transformées en ondelettes sont également un bon outil à avoir dans votre poche. En théorie, vous pouvez utiliser des transformées en ondelettes pour décomposer une séquence en différentes "parties" (par exemple, des vagues de formes / fréquences différentes, des composants non ondulatoires tels que des tendances, etc.). Une forme spécifique de transformation d'onde qui est utilisée une tonne est la transformée de Fourier, mais il y a beaucoup de travail dans ce domaine. J'adorerais pouvoir recommander un package actuel, mais je n'ai pas fait d'analyse de signal depuis un bon moment. Je me souviens cependant de certains packages Matlab prenant en charge les fonctionnalités de cette veine.

Une autre direction à suivre si vous essayez seulement de trouver des tendances dans les données cycliques est quelque chose comme le test de tendance de Mann-Kendall. Il est beaucoup utilisé pour des choses comme la détection des changements météorologiques ou de la qualité de l'eau, qui ont de fortes influences saisonnières. Il n'a pas les cloches et les sifflets de certaines approches plus avancées, mais comme il s'agit d'un test statistique vétéran, il est assez facile à interpréter et à rapporter.

Namey
la source