Clusterización de las víctimas de tráfico

Clustering significa” agrupamiento” o” segmentación”. Esta metodología forma parte del ámbito de conocimiento correspondiente a las técnicas no supervisadas, su objetivo es el de encontrar grupos similares en el juego de datos.

En nuestro caso, disponemos del dataset “descripción”, el cuál aplicaremos un análisis de clusterización, utilizando el algoritmo K-MEANS.

A continuación, describimos cada paso que se debe realizar por tal de lograr una clusterización de las víctimas de los accidentes de tráfico de Barcelona utilizando la herramienta RSTUDIO.

El primer paso es importar los datos, concretamente, el dataset “descripcion”. En este primer paso, utilizamos la función “col_types” por tal de definir las categorías de cada variante. Ese punto es importante ya que el algoritmo K-MEANS no acepta datos que no sean numéricos. Por este motivo, definimos aquellas variantes clave como “numéricas”. Concretamente, definimos como numéricas las variantes: “antiguedad_carne”, “peaton”, “genero”, “rol”, “edad” y “lesion”. Las demás variantes son categóricas y no las utilizaremos para generar el modelo algorítmico, sino que las reservamos para caracterizar los grupos formados.

El siguiente paso es normalizar los atributos. Antes, creamos una nuevo dataframe seleccionando las variables anteriormente, definidas como numéricas. Estas variables, como es lógico, tienen varianza en su rango de valores, es decir, la variable “edad” no utiliza la misma escala de rango que la variable “genero”, una mide en años y la otra marca un 1 cuando es hombre y un 2 cuando es mujer. Por tanto, antes de iniciar el proceso de segmentación es necesario normalizar los valores de las variables para eliminar el efecto de las distintas escalas de medida, esto equivale a restarles su media y dividirlas por su desviación estándar.

El algoritmo K-MEANS requiere que el analista determine cuál es el número de clusters (grupos) a formar, de hecho, la función “kmeans()” incorpora como parámetro el número de clusters (centers=). Para la selección del número de clusters también existen criterios objetivos los cuales están basados en la optimización de un criterio de ajuste. Los criterios de ajustes en el kmeans() se basan en los conceptos de sumas de cuadrados entre grupos (betweens) y dentro de grupos (withins). Hay que tener en cuenta que la suma de cuadrados entre grupos (betweenss) más las sumas de cuadrados dentro de grupos (tot.withinss) nos proporciona la suma de cuadrados totales (tots). Una segmentación se considera ‘óptima’ cuando, para cada grupo, los individuos son lo más homogéneos posibles mientras que son más heterogéneos a los individuos del resto de grupos.

A continuación, definimos el modo de obtener un gráfico que nos represente la suma de cuadrados entre grupos en función del número de grupos (de 2 a 10 grupos):

Tal y como se puede observar en el gráfico, es en el punto “6” donde la tendencia de la línea pierde altura y se mantiene a partir del 6, con una leve inclinación de subida. Eso significa que la cantidad óptima de grupos son un total de 6.

Una vez se ha elegido el número de clústers, pasamos a definir el modelo de clustarización. Se utiliza la función “kmeans()” y a la vez, se aplica “set.seed()” para generar aleatoriedad en los datos. Obtenemos el siguiente resultado:

Para poder interpretar los clusters es habitual representarlos mediante el valor medio de las variables en cada cluster.

En cada uno de los 6 grupos, obtenemos los siguientes totales de observaciones: