A blog about data, information and Tech by Mario Alberich

        

Crossfilter, múltiples vistas sincronizadas de datos

El análisis exploratorio que tiene lugar durante la primera toma de contacto con un conjunto de datos tiene un objetivo muy concreto: familiarizarnos con su estructura. Por un lado la distribución de algunas variables clave, por el otro los valores extremos, y también las relaciones entre pares de variables. Esta familiarización permite aplicar el sentido común y la intuición a la verificación del análisis.  No es un momento para las conclusiones, sino para la toma de contacto.

Vistas coordinadas


Al representar gráficamente la distribución de valores en gráficos, podemos identificar patrones. Ahora bien, ¿cómo cambian esos patrones si cambiamos la selección de los datos? ¿De qué forma se altera el gráfico de barras y el gráfico de dispersión si elimino los valores más altos de una variable? Interacciones del tipo Linking and brushing en las vistas múltiples coordinadas permite a un usuario/analista disponer de detalles más reveladores sobre el comportamiento de los datos.

Este proceso no está falto de complejidad. Para que la interacción tenga sentido, es necesario que el sistema responda rápidamente. Necesitamos que un dataset de varios miles de registros tenga una representación y filtrado ágil. Y si eso lo queremos implementar vía javascript en el navegador web, el reto es aún mayor.

Crossfilter


La biblioteca Crossfilter permite gestionar esta carga inicial de datos para luego aplicar filtros y agrupaciones de datos (utilizando MapReduce) de una forma ágil.  Según los autores de la biblioteca, las interacciones pueden ejecutarse en tiempos inferiores a 30 milisegundos, incluso con datasets de más de un millón de registros.

Es posible consultar la referencia de la API para más detalles. También podéis ver el siguiente video explicativo de las ideas y soluciones que puede proporcionar crossfilter:

Es posible imaginarse un matrimonio muy bien avenido entre Crossfilter y D3, aunque eso lo podemos dejar para otro artículo.

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.