🎙️ Episodio 84. Cosas a tener en cuenta cuando examinas  tus datos

En el episodio de hoy de Un podcast ninja sobre Big Data hablamos de algunas cosas a tener en cuenta cuando examinamos un dataset por primera vez.

En el episodio de esta semana, vamos a sumergirnos en las técnicas y estrategias que discutimos durante uno de nuestros directos en la Comunidad Ninja.

En esa sesión, analizamos un dataset y exploramos desde la estructura básica hasta las visualizaciones más avanzadas. Aquí está un resumen de lo que cubrimos y algunos detalles adicionales que se me olvidó mencionar.

Comenzamos cargando el dataset y revisando la información básica: nombre de las columnas, tipos de datos (enteros, flotantes, objetos) y la cantidad de valores presentes en cada columna.

Esto nos ayuda a identificar posibles variables categóricas, numéricas y cualquier valor faltante que debamos manejar.

Seguidamente, revisamos los estadísticos de resumen como el promedio, la mediana, el mínimo y el máximo para cada columna. Esto nos da una idea inicial de la distribución de los datos.

Y ahora viene un paso fundamental:

Visualizar el histograma.

El histograma y la distribución de los datos

A través del histograma vamos a poder ver que si una característica tiene todos sus valores repartidos en dos columnitas:

  • una en cero
  • la otra en uno

Posiblemente estemos ante una característica categórica binaria, en la que el 0 significa un "no" y el 1 un "sí".

Si vemos que la mayoría de los valores de otra característica se agrupan alrededor de ciertos valores y luego no aparece nada más en el histograma probablemente tengamos valores anómalos en nuestro dataset. 

Por ejemplo, en nuestro caso teníamos una característica con el número de habitaciones de cada vivienda y la mayoría de los valores estaban entre 0 y 5, lo cual es bastante razonable.

A medida que el número de habitaciones aumenta, empezamos a ver una disminución gradual en la frecuencia, lo cual también tiene sentido.

Hay menos vivienda con más habitaciones.

Peeeero al mirar el histograma, los ejes se extendían hasta 80 o 90 habitaciones.

Esto es una señal de alerta. Es un poco raro una vivienda con 90 habitaciones.

Estos valores extremos pueden ser errores de entrada de datos, como escribir 80 en lugar de 8, o pueden representar casos especiales que requieren una revisión más detallada.

Todas estas cosas las descubrimos al mirar el histograma.

Los histogramas y boxplots nos ayudan a identificar valores atípicos que pueden ser errores de entrada o casos especiales que requieren una revisión más detallada. Discutimos ejemplos concretos, como viviendas con un número excesivo de habitaciones o ubicadas fuera del área esperada.

Utilizamos gráficos de dispersión (scatterplots) y matrices de correlación para entender las relaciones entre variables. Esto nos permite identificar redundancias y fuertes correlaciones que podrían afectar la interpretación de los modelos de Machine Learning.

Manejo de valores atípicos y outliers

Las visualizaciones de datos es una manera muy frecuente de detectar valores anómalos.

Mientras analizábamos el precio de las viviendas en función de la ubicación, encontramos una vivienda en Málaga en un dataset centrado en Madrid, un claro outlier.

Estos valores raros pueden indicar problemas en el análisis, como errores de entrada o casos especiales.

Podemos eliminarlos, agruparlos en una categoría especial o considerarlos como errores, pero siempre documentando cada decisión.

Es súper importante comunicar estas observaciones al equipo de recolección de datos para mejorar futuros procesos y asegurar la transparencia y alineación.

Además, los outliers pueden revelar segmentos de mercado o comportamientos no anticipados que deben ser considerados en el análisis.

Análisis de observaciones individuales

Una práctica básica que se suele pasar por alto es revisar algunas observaciones individuales.

Aunque puede parecer un rollo, este paso puede ahorrar muchos quebraderos de cabeza.

Evidentemente no vamos a analizar todas las muestras si estamos delante de un conjunto de datos con cientos de miles de muestras.

No es práctico revisar cada observación y posiblemente tampoco sea factible ni recomendable para nuestra salud mental.

Sin embargo, seleccionar algunas muestras clave, especialmente aquellas identificadas como valores anómalos, puede ser muy revelador.

Estas observaciones seleccionadas nos ayudan a determinar si los valores atípicos son errores de entrada o si representan casos únicos que no habíamos considerado inicialmente.

Volviendo al ejemplo del análisis de precios de viviendas, si los precios en nuestro dataset varían desde los 21,000€ hasta los 8 millones de euros, es útil analizar algunas muestras de ambos extremos y algunas intermedias.

Al hacerlo, podemos identificar patrones, detectar errores y obtener una comprensión más profunda de las características que afectan los precios.

Aunque, como decía al principio, es muy útil comenzar el análisis con un resumen de estadísticos importantes, esto no sustituye la observación de muestras individuales.

Los estadísticos nos dan una visión general, pero observar algunas muestras específicas nos ayuda a captar detalles importantes y contextos que podrían pasar desapercibidos en el análisis estadístico puro.

Examinar algunas observaciones individuales nos permite detectar errores, comprender mejor nuestros datos y garantizar que nuestro análisis sea más fiable.

Segmentación y filtrado de datos

Además de revisar observaciones individuales, es útil segmentar los datos en subgrupos basados en características interesantes para analizarlos por separado.

Segmentación de datos

Por ejemplo, podemos segmentar las viviendas según su precio.

Analizar viviendas de súper lujo (más de 800,000 euros) para ver cómo varían en comparación con viviendas de menor precio.

En este análisis, podríamos descubrir que en viviendas de menor precio (inferiores a 300,000 euros), el número de habitaciones es más determinante para el precio. Sin embargo, en viviendas de súper lujo, la superficie total puede ser más importante.

El hehco de segmentar los datos permite confirmar o dsecartar hipótesis sobre cómo diferentes características afectan al precio de las viviendas.

Incluso si no se esperan resultados diferentes en función de la segmentación que hemos planteado, analizar subgrupos ayuda a verificar la consistencia interna del dataset, aumentando la confianza en los resultados del análisis.

filtrado de datos

Por otro lado, filtrar los datos por características como barrios o tipo de vivienda (estudios, áticos) proporciona perspectivas adicionales.

Volviendo al ejemplo de nuestra colección de viviendas en Madrid igual nos interesa filtrarlas por barrio o por alguna otra característica que tengamos, como si son estudios o son áticas…

Imaginación al poder como siempre.

En cualquier caso, incidir un poco en lo mismo…

Es importante darnos cuenta de qué tipo de filtrado de datos estamos haciendo y especificarlo claramente porque todas estas micro decisiones que vamos tomando afectan al resultado final de un análisis.

Además, durante estos filtrados de datos tendremos que considerar la cantidad de observaciones que estamos manejando en cada etapa y la que hemos dejado fuera porque no cumplen la condición de filtrado.

Por ejemplo, en nuestro dataset de anuncios de viviendas en venta en Madrid tenemos unas 90000 viviendas.

Supongamos que queremos enfocarnos en dos aspectos:

  • Solo queremos analizar los estudios.
  • Queremos analizar las viviendas según el barrio en el que están situadas.

Lo primero que tendríamos que hacer es ir a nuestras notas y documentar estos criterios claramente para que todo nuestro equipo entiendan qué datos estamos considerando y por qué.

Y en el caso de que estemos trabajando sólos este paso también es necesario para que lo entienda nuestro yo del futuro… ¡que estas cosas se olvidan!

El siguiente paso sería contar la cantidad de viviendas que estamos filtrando en cada etapa.

Esto implica llevar un registro detallado de cuántas observaciones estamos excluyendo en cada paso y por qué.

La mejor manera de hacerlo es calcular todas nuestras métricas, incluso para la población que estamos excluyendo lo que nos permite responder preguntas como "¿Qué fracción de las viviendas fueron excluidas por no ser estudios?" o "¿Qué porcentaje de estudios se encuentran en los barrios que no estamos analizando?"

el ruido y la variabilidad en los datos

Para terminar, no olvidéis tener en cuenta que en el mundo real hay ruido, hay variabilidad, y que nuestros datos no son perfectos.

Por ejemplo, en nuestro dataset de viviendas hay algunas que salen repetidas porque es un dataset que se generó a partir de los anuncios del portal de idealista en tres momentos distintos del año 2018.

Bien. 

Si una vivienda no se ha vendido cuando se vuelven a capturar las viviendas en venta aparecerá más de una vez.

Eso está claro.

La cuestión aquí es que algunas características no se mantienen constantes y podemos pensar que es un error, que podría ser, pero también tenemos que tener en cuenta la variabilidad presente en el mundo real.

Estos cambios pueden deberse a acciones del propietario, como ajustar el precio de venta o modificar la ubicación ligeramente no haciendo clic en el mismo punto exacto del mapa.

Estas variaciones no siempre son errores; a menudo reflejan cambios reales y decisiones tomadas por los usuarios.

Además, en este caso concreto los datos de ubicación se modifican directamente desde la fuente con el propósito de anonimizar las viviendas y que sea más complicado identificarlas.

Así que tened en cuenta que debemos reconocer y aceptar que esta variabilidad es una parte inherente de los datos del mundo real.

No todos los cambios o inconsistencias son errores; muchos son simplemente reflejos de las condiciones cambiantes y las decisiones tomadas durante el proceso de recolección de datos.

TL;DR

En este episodio os he contado un poco lo importante de examinar la estructura y los tipos de datos y luego profundizamos en cómo visualizar la distribución de los datos mediante histogramas y otros gráficos para identificar patrones y valores atípicos.

Muy importante esta parte para empezar a entender si vamos a tener outliers, qué características son categóricas binarias, cuáles no… eso nos dará luz después a la hora de saber que métodos de codificación aplicar a cada una antes de entrenar un modelo de Machine Learning, por ejemplo.

También os he hablado de la relevancia de analizar observaciones individuales para detectar errores y obtener insights más profundos y de la segmentación y el filtrado de datos para entender mejor los subgrupos.

Muy importante: la necesidad de reconocer y documentar todas las decisiones y filtros que vamos aplicando en cada etapa del análisis. 

Recordad que la transparencia en nuestras decisiones y la comunicación con el equipo es clave para cualquier ninja de los datos.

Y si os gustaría poner todo esto en práctica, venirse todo el mundo a la Comunidad ninja.

Espero que os guste el episodio.

Si es así, no olvidéis dejar un «Me gusta» y algún comentario al episodio en Ivoox o una valoración de 5 estrellas del podcast en Apple podcasts, en Spotify, en Youtube o donde quiera que escuchéis el podcast. 

Recordad que si tenéis cualquier duda o pregunta podéis contactar conmigo a través del formulario de contacto o podemos seguir la conversación en Twitter.

Muchas gracias por estar ahí y os espero en el próximo episodio de Un Podcast Ninja sobre Big Data.

Accede a todo el contenido premium

Ya no necesitas pagar cientos de euros por un Bootcamp para convertirte en ninja de los datos. Por solo 17€/mes (o menos 🤯), obtén acceso al podcast premium, a todos los tutoriales y a los resúmenes de los libros más top sobre Machine Learning y Ciencia de datos y aprende a tu ritmo.
¡Empieza ahora!
Copyright © 2024  · Datos 🥷 · Todos los derechos reservados