domingo, 3 de septiembre de 2017

Visualización y Analisis de datos de Criminalidad con QGIS






Vamos a continuar explorando herramientas que nos permiten generar gráficos que nos ayudan a un análisis de nuestros datos. En esta oportunidad emplearemos un plugin de QGIS, el cual aprovecha las ventajas de generar gráficos al estilo D3 (Data-Driven Documents), nos referimos al D3 Data Visualization - QGIS D3 Date and Time Heatmap. 


¿Qué realiza el D3 Data Visualization?


El plugin usando fecha, hora y categorías personalizadas en los datos, crea un histograma de calor circular D3, obteniéndose como salida una página web interactiva, el mismo que puede incluir una leyenda de manera opcional.

El plugin funciona contando el número de eventos por fecha / hora / categoría, usando dos ejes y muestra los resultados como un mapa de calor circular. Con el resultado obtenido nos permite analizar la distribución temporal de los datos y cuántos eventos existen a través del tiempo, basado en dos frecuencias.

Fuente de Datos


Primero vamos a preparar nuestros datos para mostrar su funcionamiento, para ello nos guiaremos principalmente de lo mostrado en su repositorio del código, desde donde podemos verificar que, para su demostración emplea una base de datos de eventos de crimen del 2006 ocurridos en la ciudad de Chicago, disponibles desde aquí; en principio lo consideraremos como nuestra capa principal, pero además, para hacerlo más interesante usaremos dos capas adicionales, el primero referido a los límites de vecindarios disponibles desde la misma fuente, el mismo se obtiene haciendo la búsqueda como "Boundaries-Neighborhoods", y finalmente una capa sobre los llamados distritos policiales (Police districts), disponibles desde aquí. Es importante mencionar que según la Figura 1, también adicioné al QGIS una capa sobre Estaciones Policiales, para quizás tener un criterio más de análisis luego de obtener mis resultados.

Figura 1: Vista del ámbito de estudio



Figura 2: Vista de los datos de crimen reportados el 2006 en Chicago



Ahora para tener nuestra capa final lista, vamos a tener que realizar el proceso de unión espacial de las capas mencionadas, el QGIS se logra con Vectorial-->Herramientas de gestión de datos-->Unir atributos por localización. Para ello tener presente que nuestra "Capa vectorial objetivo" es la de puntos que representa los eventos de crimen.


Figura 3: Tabla de atributos integrando información adicional


Conociendo el Entorno


Luego de instalar el plugin, al activarlo nos aparecerá una ventana con un grupo de pestañas, el primero de ellos "QGIS layer", la misma sirve para elegir la capa vectorial que se utilizará para generar el gráfico del mapa de calor (Chicago-2006-crime). Además, se deben seleccionar los campos de fecha y hora (Date). Se puede especificar también los valores para nuestro eje radial y la banda concéntrica, en ambos casos se debe establecer el tipo de información en base al rango de tiempo a ser establecido. Como veremos más adelante la banda concéntrica puede ser ajustado para incluir información adicional.


Figura 4: Seleccionando nuestros datos de entrada



La segunda pestaña "Titles", nos permite personalizar nuestro gráfico colocando títulos al mismo y a la leyenda si decidimos incluirla. Además se tiene la opción de incluir la posibilidad de visualizar los valores (el número de incidentes) al pasar el mouse.


Figura 5: Configurando los títulos y etiquetas del gráfico


La tercera pestaña "Settings", en donde se realiza algunas configuraciones como especificar el "Inner radius", lo que sería el radio en píxeles donde la primera banda del mapa de calor comienza, luego la altura en píxeles de cada banda (Band height), en generar nos permite definir las mejores dimensiones de nuestro gráfico para una correcta visualización; del mismo modo podemos indicarle que se muestren las etiquetas tanto de las líneas radiales como de las bandas concéntricas. Finalmente también podemos indicar las dimensiones de nuestra leyenda.

Figura 6: Ajustes de dimensiones de nuestro gráfico


La última pestaña corresponde a "Colors", en donde se realizan los ajustes para un control preciso sobre la rampa de color de nuestro mapa de calor y definimos también el color de "Sin Datos".


Figura 7: Ajustes de colores


  

Aplicación del Plugin


Vamos a realizar un ejemplo considerando contar con un gráfico que me permita ver el número de incidentes distribuido por meses y por la hora del día, para visualizar en que horarios durante todos los meses del año se producen mayor cantidad de incidentes. Para eso ingresamos en la primera pestaña la siguiente información.

Figura 8: Definición de datos a emplear en nuestro primer ejemplo


Al final tendremos el resultado mostrado en la Figura 9, determina que en el mes de enero se producen la menor cantidad de incidentes, del mismo gráfico vemos que es a la media noche en donde aumenta los incidentes. Tal como lo indicamos anteriormente, al pasar con el mouse sobre el gráfico, en la parte inferior se irá indicando la cantidad de incidentes de manera interactiva.

Figura 9: Vista del resultado de nuestro primer gráfico

Hay que tener en cuenta que el plugin te solicita una carpeta donde se almacenará el resultado, el cual como verán consta de tres archivos, desde donde también se podría hacer algunas modificaciones para mejorar nuestra salida.

Opciones  Adicionales


Vamos a manejar nuestros datos para crear gráficos más personalizados, sobre todo para emplear las capas adicionales que se integraron a nuestra data original, para ello, vamos primero a generar un filtro a nuestra capa de puntos.

Figura 10: Aplicación de filtros


Con el filtro realizado vamos a poder visualizar otro tipo de información, teniendo solo una variable de tiempo, en esta oportunidad nos interesa conocer la cantidad de incidentes clasificados por su naturaleza ocurridos durante los meses del año, para ello ajustamos las opciones como se muestra a continuación.


Figura 11: Ajustando para emplear datos adicionales



Figura 12: Resultado de nuestro ejemplo con datos filtrados

Nuestro resultado muestra que son los narcóticos el principal incidente registrando, con valores de hasta 2,452 casos, el mismo se repite con valores altos durante todos los meses, del mismo modo, vemos que lo sigue en cantidad los robos, y finalmente se puede ver que no se reportan homicidios a excepción de uno ocurrido en el mes de setiembre.

Otro ejemplo que podemos mostrar es considerando los datos de ubicación del vecindario, para ello vamos seguir el mismo procedimiento hecho recién, es decir aplicando filtros. En esta oportunidad, vamos a seleccionar al azar un grupo de vecindarios, sobre el cual pretendemos analizar. 

Lo que vamos hacer es generar primero un gráfico que me permita ver si existen vecindarios que en algunos meses del año presentan mayor cantidad de incidencias, después haremos otro gráfico que me determine en qué horarios se presentan las incidencias con mayor frecuencia por cada vecindario seleccionados.


Figura 13: Resultado final de ejemplos incorporando datos de vecindarios


Finalmente podemos apreciar de acuerdo al gráfico de la izquierda, que el vecindario "Harrinson", presenta la mayor cantidad de incidencias durante todos los meses del año, por otro lado el vecindario "Foster" se reporta la menor cantidad de incidencias, lo que se podría deducir que es uno de los más seguros. En relación al gráfico de la derecha, apreciamos que a partir de las 7:00 p.m. hasta la media noche se producen la mayor cantidad de incidentes.

Bueno, como pueden ver, se pueden realizar muchos gráficos, en este caso se consideró un ejemplo para analizar datos de criminalidad, pero el mismo puede servir para datos como por ejemplo número de accidentes, emergencias o cualquiera que contenga columna con fechas y horarios. Si bien son gráficos, considero que es un buen complemento a la realización de otros procesos de análisis de datos, el cual nos permitiría por ejemplo definir quizás personal requerido para la atención de emergencias, o la posibilidad de implementar servicios o equipos. En fin, espero que lo puedan probar.





No hay comentarios.: