Muy a menudo es necesario comparar los datos. Por ejemplo, tenemos varias series de datos de alguna área de la actividad humana (industria, medicina, gobierno, ...), y queremos comparar qué tan similares son o, por el contrario, cómo se destacan unos indicadores frente a otros. Para facilitar la percepción, tomemos datos que son más simples, universales y neutrales: la altura a la cruz y el peso de varias razas de perros según el American Kennel Club. Los datos de tamaño de roca promedio se pueden encontrar aquí... Agregue a estos la función random.uniform de la biblioteca numpy de Python, convierta pulgadas a centímetros y libras a kilogramos, y ahora tenemos un conjunto de datos de aspecto realista de tamaños de perros para varias razas para trabajar. En nuestro ejemplo, estos son chihuahuas, beagles, rottweilers y setters ingleses.
Un analista que puede utilizar para comparar estas 4 series de números es mirar su mediana. Divide la serie de datos en dos partes: la mitad de los valores son menores que la mediana y la otra mitad son mayores. Encontramos los valores de la mediana agrupando por la columna de la raza usando la biblioteca de pandas y aplicando la función de la mediana a los datos agrupados. De manera similar, puede mirar otros indicadores estadísticos: media (media) y moda (moda).
Vemos que la mitad de los chihuahuas que conocimos tienen una altura a la cruz no mayor de 18 cm, el beagle es mucho más alto - en la región de 41 cm, y los siguientes en tamaño son el Rottweiler y el setter inglés, que difieren levemente en altura: 58 y 63 cm.
Figura 2. Mediana Valores de altura a la cruz para cuatro razas de perros.
Pero solo una mediana no es suficiente para el análisis comparativo de datos. Puede obtener más información mirando una herramienta como un diagrama de caja y bigotes utilizando la biblioteca de trazado de Python seaborn. La línea dentro de la caja es la mediana familiar. Su nivel en el gráfico de la derecha (ver Figura 3) coincide con la altura de la columna correspondiente a la izquierda. Pero al mismo tiempo, el gráfico de oscilación contiene información adicional sobre cómo se distribuyen los datos dentro de la fila: el borde inferior del rectángulo (cuadro) es el primer cuartil (el valor excede el 25% de los valores de la serie) y el borde superior es el tercer cuartil (el valor excede el 75% de los valores). ). Y esos mismos "bigotes" son segmentos,que se extienden hacia arriba y hacia abajo desde la mitad del rectángulo se trazan sobre la base del rango intercuartílico y denotan los límites superior e inferior de la parte significativa de nuestros datos, excluyendo los valores atípicos. Aquí no hay emisiones (no nos encontramos con distróficos y perros gigantes), si las hubiera, se mostrarían como marcas fuera del "bigote".
Figura 3. Comparación de gráficos de barras y rangos trazados para el mismo conjunto de datos.
La trama de violín de la misma biblioteca nacida en el mar nos da aún más información sobre la estructura de los datos en cuestión. La Figura 4 a continuación muestra los tres gráficos, donde las rocas están en el mismo orden cada vez, y se conserva el color de la fila correspondiente.
Figura 4. Comparación de la gráfica de barra, swing y violín trazada para el mismo conjunto de datos.
Por ejemplo, los datos de Rottweiler se muestran en verde.
Las similitudes y diferencias entre el gráfico de swing (caja con bigote) y el gráfico de violín se muestran en la siguiente Figura 5. Primero, las similitudes: (1) ambos gráficos de una forma u otra reflejan el cuantil 0,25, el cuantil 0,5 (mediana) y el cuantil 0,75; (2) tanto allí como allí están los valores extremos que están cerca del valor de un intervalo intercuartílico y medio (IQR), trazados desde el borde inferior y superior de la caja - el mismo "bigote" para el diagrama de oscilación, fuera del cual hay "valores atípicos".
La diferencia es que el gráfico de violín también contiene información sobre cómo se distribuyen los datos internamente. los límites del "violín" construido son la densidad de distribución rotada 90 grados. Y en este caso, al analizar la gráfica, tenemos mucha más información: además de los cuantiles y valores que describen las 4 distancias intercuartiles (1.5 + 1 + 1.5) en la gráfica de violín, se puede ver si los datos están distribuidos uniformemente o hay varios centros donde los valores son más a menudo.
Figura 5. Explicaciones sobre la correspondencia de los elementos de los dos gráficos: palmo y violín.
Esta idea se puede ver más claramente en el siguiente gráfico (Figura 6), donde los datos para los dos grupos de Rottweilers difieren, pero se seleccionan de tal manera que las medianas coinciden (el gráfico más a la izquierda) y aún más, ¡los diagramas de swing (en el centro) también coinciden! Y solo el gráfico de violín (extremo derecho) nos muestra que, de hecho, la estructura de datos es significativamente diferente.
Figura 6. Un ejemplo donde solo el gráfico de violín nos permite ver las diferencias en la estructura interna de los datos en consideración.
Utilizando el agrupamiento de K-Means (cluster.KMeans) del módulo sklearn, podemos representar visualmente los datos agrupados trazando un diagrama de dispersión usando la función de diagrama de dispersión del módulo seaborn. Aquí, el color separa un grupo, creado por el algoritmo ML, de otro, y la forma del marcador muestra el original que pertenece a un grupo en particular. No hubo necesidad de reducir la dimensión usando PCA o cualquier otro método, porque los datos son originalmente 2D.
Código para clústeres y gráficos de dispersión:
Así, utilizando el ejemplo de datos sobre la altura a la cruz de varias razas de perros, nos familiarizamos con algunas características estadísticas de las series numéricas y las herramientas para su visualización. Una herramienta simple proporciona una métrica clara, pero no proporciona una imagen completa. Las herramientas más sofisticadas brindan una imagen más profunda de los datos, pero también son más difíciles de percibir debido al aumento en la cantidad de información en el gráfico. Y aquí es importante elegir una herramienta para una tarea específica a fin de encontrar un equilibrio entre la completitud requerida de la información y la facilidad de su percepción en el gráfico.