J'essaie de déterminer une méthode pour comparer une série chronologique particulière à environ 10 000+ séries chronologiques de référence par programme, et de présélectionner ces séries chronologiques de référence qui peuvent être intéressantes.
La méthode que j'utilisais était la corrélation de Pearson . Pour chacune des séries chronologiques de référence, je calculais leurs coefficients de corrélation, puis triais la liste complète des séries chronologiques de référence par ordre décroissant en fonction du coefficient de corrélation. J'analyserais ensuite visuellement les N premières séries temporelles qui ont les coefficients de corrélation les plus élevés, qui devraient être les meilleures correspondances avec la série temporelle donnée.
Le problème est que je n'obtenais pas de résultats fiables. Assez souvent, la série dans la gamme N supérieure ne ressemblait pas visuellement à quelque chose comme la série temporelle donnée. Enfin, lorsque j'ai lu l'article complet ci-dessous, j'ai compris pourquoi: on ne peut pas utiliser la corrélation seule pour déterminer si deux séries temporelles sont similaires.
Maintenant, c'est un problème avec tous les algorithmes de correspondance qui calculent une sorte de distance entre deux séries temporelles. Par exemple, les deux groupes de séries chronologiques ci-dessous peuvent avoir la même distance, mais l'un est évidemment mieux adapté que l'autre.
A => [1, 2, 3, 4, 5, 6, 7, 8, 9]
B1 => [1, 2, 3, 4, 5, 6, 7, 8, 12]
distance = sqrt(0+0+0+0+0+0+0+0+9) = 3
B2 => [0, 3, 2, 5, 4, 7, 6, 9, 8]
distance = sqrt(1+1+1+1+1+1+1+1+1) = 3
Donc ma question est, y a-t-il une formule mathématique (comme la corrélation) qui peut mieux me convenir dans ce genre de situations? Celui qui ne souffre pas des problèmes mentionnés ici?
N'hésitez pas à demander des éclaircissements supplémentaires ou à améliorer le texte de la question si nécessaire. Merci! =)
ÉDITER:
@woodchips, @krystian:
La ligne du haut montre les dix dernières barres de USDCHF-Daily se terminant à la date indiquée. La deuxième ligne donne les 3 premiers résultats de la méthode A utilisée pour la corrélation (une explication suivra). La dernière ligne montre les 3 premiers résultats de la méthode B. J'ai utilisé les prix Haut-Bas-Clôture pour la corrélation. Les dernières images de chaque ligne sont ce que je considérerais comme un "bon match", la raison étant que les tournants de la série sont plus importants pour moi. C'est une coïncidence que les dernières lignes aient la corrélation maximale. Mais vous pouvez voir dans la dernière ligne que la deuxième image est une similitude très faible. Pourtant, il parvient à se faufiler dans le top 3. C'est ce qui me dérange. En raison de ce comportement, je suis obligé d'accéder visuellement à chaque corrélation et de l'accepter / la rejeter. Le quatuor d'Anscombe souligne également que la corrélation doit être inspectée visuellement. C'est pourquoi je voulais m'éloigner de la corrélation et explorer d'autres concepts mathématiques qui évaluent la similitude des séries.
La méthode A ajoute les données HLC dans une longue série et les corrèle avec la série donnée. La méthode B corrèle les données H avec les données H de référence, L avec L, C avec C, puis multiplie les trois valeurs pour calculer la corrélation nette . Évidemment, cela réduit la corrélation globale, mais je pense que cela tend à affiner les corrélations résultantes.
Mes excuses pour avoir répondu si tard. J'essayais de rassembler des données et une corrélation de code et de faire des graphiques pour l'explication. Cette image montre l'un des rares événements où les corrélations sont assez précises. Je créerai et partagerai des graphiques lorsque les correspondances résultantes sont également très trompeuses même si les valeurs de corrélation sont assez élevées.
@adambowen: vous êtes sur place. En fait, j'ai implémenté deux algorithmes différents: la corrélation et la déformation temporelle dynamique pour accéder à la similitude des séries. Pour DTW, je dois utiliser MSE comme vous l'avez dit. Pour la corrélation, je peux utiliser à la fois MSE (auquel cas il est égal au coût de l'itinéraire diagonal de DTW, sans déformation) et la formule de corrélation de Pearson réelle. Les images ci-dessous résultent de l'utilisation de la formule de corrélation de Pearson. Je vais rechercher les termes que vous avez mentionnés dans votre message et je vous ferai un compte rendu bientôt. En réalité, je n'ai pas deux séries chronologiques distinctes. Ce n'est qu'une série chronologique de plus de 10 000 points et plus. J'utilise une fenêtre coulissante de largeur N pour autocorréler la série chronologique afin de localiser les événements lorsque la série s'est comportée de la même manière qu'aujourd'hui. Si je peux trouver de bons matchs, Je pourrais peut-être prévoir le mouvement de la série chronologique actuelle en fonction de son évolution après chacun des matches identifiés. Merci pour votre perspicacité.