Este sitio utiliza cookies de Google para prestar sus servicios y analizar su tráfico. Tu dirección IP y user-agent se comparten con Google, junto con las métricas de rendimiento y de seguridad, para garantizar la calidad del servicio, generar estadísticas de uso y detectar y solucionar abusos.Más información

View site in english Ir a la página de inicio Contacta conmigo
viernes, 11 de noviembre de 2016

WinRQA, una aplicación en C# para trazar mapas de recurrencia

Un mapa de recurrencia es una herramienta gráfica utilizada en el estudio de series temporales complejas. Junto con el mapa se calculan también una serie de medidas que nos permiten realizar un análisis de cuantificación de la recurrencia o RQA. En este artículo voy a presentar la aplicación WinRQA, una herramienta para trabajar con mapas de recurrencia y medidas RQA en un entorno Windows.

En este blog ya he hablado en otros artículos sobre este tema, en este enlace puedes ver una introducción a los mapas de recurrencia. También te puedo recomendar este sitio web dedicado por entero a los mapas de recurrencia, o este libro que trata sobre los mapas de recurrencia y su análisis.

En este enlace puedes descargar el ejecutable del programa WinRQA, y, en este otro, puedes descargar el código fuente del proyecto WinRQA, escrito en CSharp con Visual Studio 2013.

La aplicación funciona en cualquier versión de Windows a partir de la 7, posiblemente también en Windows Vista, aunque no he podido probarla en esta versión.

La aplicación WinRQA

WinRQA es una aplicación MDI, por lo que se puede trabajar a la vez con varios mapas de recurrencia. Por el momento solo funciona con ficheros de texto. Estos archivos deben contener un valor de la serie temporal en estudio por línea, y no deben tener ninguna cabecera, ni de línea ni de columna.

La aplicación WinRQA
La aplicación WinRQA

Para cargar un fichero de datos, simplemente hay que seleccionar la opción Abrir del menú Archivo. Se abrirá una ventana donde podremos parametrizar el mapa de recurrencia para su visualización:

La ventana del mapa de recurrencia
La ventana del mapa de recurrencia

Existen dos barras de herramientas con las cuales podemos parametrizar el mapa de recurrencia. De arriba abajo y de izquierda a derecha encontramos los siguientes parámetros:

  • Retardo: aquí indicamos el desplazamiento que queremos aplicar para extender la dimensión de la serie. Recordemos que cada dimensión extra que queremos añadir a la serie temporal se construye tomado los valores de la serie original a partir del elemento que se encuentra desplazado n retardos desde la posición inicial, siendo n el índice de la nueva dimensión. Debe ser un número entero y mayor o igual a 1. Su valor máximo está limitado por el tamaño de la serie.
  • Embebida: aquí se indica la dimensión embebida que suponemos a la serie, es decir, el número de dimensiones a las que queremos extenderla. El mínimo valor es 1, con lo que estudiaremos la serie temporal sin añadir nuevas dimensiones. El valor máximo está limitado por el tamaño de la serie.
  • Radio: El mapa de recurrencia representa datos sobre la distancia entre los diferentes puntos de la serie. Podemos representar estas distancias en forma de gradiente, usando una escala de color o de grises para indicar la distancia relativa entre cada par de puntos, o bien indicar un umbral por debajo del cual dos puntos son considerados recurrentes (están situados en el mismo lugar del espacio de fases), y por encima del cual se considera que los puntos no son recurrentes. En este último caso lo que representamos es un mapa bicolor en el que se resaltan los puntos de recurrencia. Si proporcionamos un radio menos que cero, el mapa se dibujará con un gradiente de colores, mientras que si proporcionamos un valor mayor o igual a cero, obtendremos un mapa de recurrencia bicolor. Las medidas RQA solo se calcularán para mapas con un radio mayor o igual que cero.
  • Norma: Puesto que lo que hacemos para construir el mapa de recurrencia es calcular las distancias entre los diferentes puntos del mismo, debemos definir cómo vamos a calcular esta distancia. Existen tres posibilidades, calcular la distancia euclidea, o usar la máxima o la mínima distancia entre cada par de coordenadas.
  • Inicio y Final: Con estos parámetros definimos la ventana dentro de la serie que vamos a utilizar para dibujar el mapa de recurrencia, simplemente indican el índice del elemento inicial y final de la serie correspondiente a la primera dimensión. Hay que tener en cuenta que al final de la serie nos tienen que sobrar (E – 1) * R elementos, siendo E la dimensión embebida y R el retardo, para poder construir la serie extendida.
  • Linea: Este es un parámetro para el cálculo de las medidas RQA. Define la longitud mínima que debe tener una línea diagonal de puntos recurrentes para ser tenida en cuenta en los mismos. Normalmente se usa el valor mínimo, que es 2.
  • VLinea: igual que el anterior, pero referente a las líneas verticales.
  • K Trend: Para la medida TREND (tendencia) se debe definir una constante para indicar el número de líneas que se toman en cuenta desde la diagonal principal (LOi o línea de identidad).
  • Reescalado: puesto que la aplicación permite realizar mapas conjuntos o cruzados con otras series, podemos usar la opción de re escalado para normalizar los valores de las mismas de manera que sean comparables. A parte de no realizar ningún re escalado, podemos dividir todas las distancias por la distancia máxima, para conseguir valores entre 0 y 1, o bien por la distancia media, para suavizar el rango de valores.

Además existen una serie de botones de comando. Nuevamente de arriba abajo y de izquierda a derecha, tenemos el botón Botón dibujar para dibujar el mapa y recalcular las medidas RQA con los parámetros proporcionados. En el caso de que estemos visualizando un mapa cruzado o conjunto, se volverá a dibujar el mapa de recurrencia normal de la serie consigo misma.

Mapa de recurrencia y valores RQA asociados
Mapa de recurrencia y valores RQA asociados

Con el botón Botón seleccionar color se puede seleccionar el color con el que se van a representar los puntos recurrentes cuando se dibuje un mapa bicolor, mientras que el botón Botón escala de color nos permite seleccionar una escala de grises o de color para representar el mapa en forma de gradiente de distancias.

El botón Botón copiar imagen al portapapeles copiará la imagen del mapa de recurrencia en el portapapeles, mientras que el botón Botón copiar medidas RQA al portapapeles copiará una tabla con las medidas RQA, usando tabuladores como separadores de columnas. De esta manera podemos exportar los resultados a otros programas.

Por último, el botón Botón mostrar time series permite visualizar la serie para seleccionar el inicio y final de la ventana para dibujar el mapa. Mostrará la siguiente ventana:

Interfaz gráfico para seleccionar ventana en la serie temporal
Interfaz gráfico para seleccionar ventana en la serie temporal

En la parte superior de la ventana está la serie completa. Podemos seleccionar el punto de inicio con el botón izquierdo del ratón y el de final con el derecho. La barra de desplazamiento de la izquierda se puede usar para mover la ventana a través de la serie sin variar su tamaño.

En la parte inferior se encuentra la parte de la serie que hemos seleccionado, las barras de desplazamiento laterales se pueden utilizar para realizar un ajuste fino de las posiciones de inicio y final de la ventana.

Las modificaciones que realicemos en esta ventana se trasladan inmediatamente a los cuadros de texto Inicio y Final, aunque para visualizar el mapa resultante se debe utilizar el botón Botón dibujar.

Por último, podemos arrastrar un mapa y soltarlo sobre otro para visualizar un mapa de recurrencia cruzado o un mapa de recurrencia conjunto. Para ello, existen dos paneles en la parte derecha de la ventana del mapa. Los mapas de recurrencia cruzados deben tener el mismo número de dimensiones. Además, el mapa que soltamos debe tener un tamaño de ventana igual o mayor que el mapa con el que queremos realizar el cruce.

Con los mapas conjuntos, la restricción de la dimensión no se aplica.

En este otro enlace podéis encontrar el código fuente de WinRQA comentado (en inglés) en CodeProject.

Por último, en este enlace encontraréis la primera extensión de la funcionalidad de la aplicación WinRQA, con herramientas para estimar el retardo y la dimensión de inmersión más apropiados para el mapa de recurrencia.

Comparte este artículo: Compartir en Twitter Compártelo en Facebook Compartir en Google Plus Compartir en LinkedIn
Comentarios (1):
* (Su comentario será publicado después de la revisión)

E-Mail


Nombre


Web


Mensaje


CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code