Estoy tratando de determinar un método para comparar una serie de tiempo particular con más de 10,000 series de tiempo de referencia mediante programación, y preseleccionar aquellas series de tiempo de referencia que pueden ser de interés.
El método que estaba usando era Correlación de Pearson . Para cada una de las series de tiempo de referencia, calcularía sus coeficientes de correlación y luego ordenaría la lista completa de series de tiempo de referencia en orden descendente en función del coeficiente de correlación. Luego analizaría visualmente las series temporales superiores de N que tienen los coeficientes de correlación más altos, que deberían ser las mejores coincidencias para las series temporales dadas.
El problema es que no estaba obteniendo resultados confiables. Muy a menudo, la serie en el rango N superior no se parecía visualmente a nada como la serie temporal dada. Finalmente, cuando leí el artículo completo a continuación, entendí por qué: Uno no puede usar la correlación sola para determinar si dos series de tiempo son similares.
Ahora, este es un problema con todos los algoritmos de coincidencia que calculan algún tipo de distancia entre dos series de tiempo. Por ejemplo, los dos grupos de series de tiempo a continuación pueden resultar en la misma distancia, sin embargo, uno es obviamente una mejor coincidencia que el otro.
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
Entonces mi pregunta es, ¿existe una fórmula matemática (como la correlación) que pueda adaptarse mejor a mí en este tipo de situaciones? ¿Uno que no sufra los problemas mencionados aquí?
No dude en solicitar más aclaraciones o mejorar el texto de la pregunta si es necesario. ¡Gracias! =)
EDITAR:
@woodchips, @krystian:
La fila superior muestra las últimas diez barras de USDCHF-Daily que finalizan en la fecha indicada. La segunda fila muestra los 3 resultados principales del método A utilizado para la correlación (a continuación se explicará). La última fila muestra los 3 resultados principales del método B. He usado precios de cierre alto-bajo para la correlación. Las últimas imágenes en cada fila son lo que yo consideraría un "buen partido", la razón es que los puntos de inflexión en la serie son más importantes para mí. Es una coincidencia que las últimas filas tengan la máxima correlación. Pero puede ver en la última fila que la segunda imagen tiene una similitud muy débil. Aún así, logra colarse en el top 3. Esto es lo que me molesta. Debido a este comportamiento, me veo obligado a acceder visualmente a cada correlación y aceptarla / descartarla. El cuarteto de Anscombe también enfatiza que la correlación necesita ser inspeccionada visualmente. Es por eso que quería alejarme de la correlación y explorar otros conceptos matemáticos que evalúan la similitud de series.
El Método A agrega datos HLC en una serie larga y los correlaciona con la serie dada. El método B correlaciona los datos H con los datos H de referencia, L con L, C con C, y luego multiplica los tres valores para calcular la correlación neta . Obviamente, reduce la correlación general, pero creo que tiende a refinar las correlaciones resultantes.
Mis disculpas por responder tan tarde. Estaba tratando de recopilar datos y correlación de código y hacer gráficos para la explicación. Esta imagen muestra uno de los raros eventos cuando las correlaciones son bastante acertadas. Haré y compartiré gráficos cuando las coincidencias resultantes también sean muy engañosas, aunque los valores de correlación sean bastante altos.
@adambowen: eres perfecto. En realidad, he implementado dos algoritmos diferentes: correlación y deformación dinámica del tiempo para acceder a la similitud de la serie. Para DTW tengo que usar MSE como dijiste. Para la correlación, puedo usar tanto MSE (en cuyo caso es igual al costo de la ruta diagonal de DTW, sin deformación) como la fórmula de correlación de Pearson real. Las siguientes imágenes resultaron del uso de la fórmula de correlación de Pearson. Buscaré los términos que mencionaste en tu publicación e informaré pronto. En realidad, no tengo dos series de tiempo separadas. Es solo una serie de tiempo de casi 10,000+ puntos de largo. Utilizo una ventana deslizante de ancho N para autocorrelacionar las series temporales para localizar los eventos cuando la serie se comportó de manera similar a la actual. Si puedo encontrar buenas coincidencias, Podría pronosticar el movimiento de la serie de tiempo actual en función de cómo se movió después de cada una de las coincidencias identificadas. Gracias por tu perspicacia.