Para mayores informaciones
La investigación ha sido realizada en base a las fuentes de informaciones oficiales de las herramientas y metodologías, y en cierta parte con la ayuda de la Inteligencia Artificial (IA).
Para enriquecer el trabajo y aportar informaciones complentarías al estudio, dejé algunos enlaces a otras páginas web que me pareció de gran valor, pues contienen materiales y documentación que apoyan este proyecto.
Este trabajo esta dividido en dos etapas, donde la primera etapa explico los conceptos básicos del EDA y en la segunda etapa, pongo en práctica los conocimientos adquiridos.
El artículo esta enfocado a todo publico que tiene interés en la Ciencias de Datos, no importando el punto desde donde empieza, por esto intenté usar un lenguaje "menos" técnico para facilitar la lectura.
Si al leer este artículo os encontráis con alguna duda o si tenéis información adicional que pueda complementar este trabajo, por favor, poneos en contacto conmigo.
El objetivo principal de la investigación es capacitarnos en el uso de técnicas y herramientas EDA con Python. Esto incluye la comprensión y aplicación de técnicas para:
✅ Importación y limpieza de datos
✅ Visualización de datos
✅ Análisis estadístico descriptivo
✅ Análisis de correlación y variables
✅ Análisis de distribuciones y normalidad
✅ Reducción de dimensionalidad
✅ Análisis de grupos y segmentación.
✅ Uso de herramientas y librerías de EDA (Pandas, Matplotlib, Seaborn, etc.)
👉 Este trabajo nos enfocaremos en el análisis exploratorio de datos en Google Colaboratory.
Fue desarrollado y popularizado por John W. Turkey en su libro "Exploratory Data Analysis" en 1977.
▶️ Definición y objetivos del EDA
Proceso de examinar datos para descubrir patrones, anomalías y relaciones.
Objetivos: entender la estrucura de los datos, revelar patrones, detectar anomalías (outliers), probar hipótesis.
▶️ Importancia en el proceso de análisis de datos
El EDA es una etapa crucial en el análisis de datos, ya que ayuda a obtener una comprensión profunda de los datos antes de aplicar modelos predictivos o técnicas avanzadas.
Ayuda a elegir las técnicas estadísticas apropiadas
Facilita la toma de decisiones basada en datos
Librería usada para procesamiento y análisis de datos de alto rendimiento. Es similar a pandas.
▶️ Análisis Exploratorio de Datos (EDA)
En resumen los principales pasos para realizar un Análisis Exploratorio de Datos (EDA) son:
1️⃣ Carga y limpieza de datos
2️⃣ Estadística descriptivas
3️⃣ Visualización de datos
4️⃣ Análisis de correlaciones
5️⃣ Detección de outliers
📋 Guía completa en 13 pasos para realizar un EDA efectivo:
Hay que tener claro que EDA es un proceso interactivo, y es posible que necesitemos volver a pasos anteriores a medida que descubrimos nuevos insights en los datos.
🤔 ¿Si el EDA cuenta con 5 pasos, por qué en este artículo, hay un guía de 13 pasos para la realización del mismo?
Es cierto que los 5 pasos mencionados son esenciales y forman la base del Análisis Exploratorio de Datos. Sin embargo, un EDA detallado y completo puede involucrar más pasos, especialmente cuando se busca profundizar en el análisis y obtener una comprensión más exhaustiva de los datos.
La guía de 13 pasos que presento no solo abarca los pasos básicos, sino que también incluye procedimientos adicionales que son cruciales para un análisis de datos más riguroso y detallado.
Estos 13 pasos pueden considerarse un "proyecto completo" de EDA, donde cada etapa adicional proporciona un valor significativo y aseguran una preparación exhaustiva y detallada de los datos, lo cual es esencial para proyectos más complejos o cuando se requiere un análisis más profundo.
Por ejemplo, la generación de hipótesis, el preprocesamiento para modelado y la documentación detallada son etapas que añaden valor al análisis, asegurando que los resultados sean precisos y reproducibles.
En conclusión, mientras que los 5 pasos básicos del EDA son fundamentales, la guía de 13 pasos proporciona un marco más completo y detallado para llevar a cabo un análisis exploratorio de datos exhaustivo, adecuado para proyectos de mayor envergadura y complejidad.
Este paso implica decidir qué quieres aprender de tus datos y luego encontrar y reunir la información necesaria para responder a tus preguntas.
La mejor manera de empezar un trabajo en análisis de datos es:
a) Establecer objetivos claros del análisis:
Definir el problema: Comprender y articular claramente el problema o la pregunta de investigación que se busca resolver.
Objetivos específicos: Detallar los objetivos específicos del análisis, como identificar tendencias, prever resultados, mejorar procesos, etc.
KPI (Key Performance Indicators): Establecer indicadores clave de rendimiento que ayudarán a medir el éxito del análisis.
b) Identificar fuentes de datos relevantes:
Fuentes internas: Datos internos de la organización como bases de datos empresariales, informes, registros de ventas, etc.
Fuentes externas: Datos externos que pueden complementar los datos internos, como datos públicos, estudios de mercado, datos de redes sociales, etc.
Verificación de calidad: Evaluar la calidad de las fuentes de datos para asegurarse de que son fiables, precisas y relevantes.
c) Recompilar los datos necesarios:
Recopilación directa: Obtener datos directamente a través de encuestas, entrevistas, formularios, etc.
Acceso a bases de datos: Utilizar consultas SQL o APIs para extraer datos de bases de datos.
Fuentes online: Descargar datasets de repositorios públicos y privados.
Consolidación de datos: Integrar datos de múltiples fuentes para formar un conjunto de datos coherente y completo.
✍️ Metodologías aplicadas
Metodologías de trabajo usadas en analisis de datos:
CRISP-DM (Cross-Industry Standard Process for Data Mining): Consiste en seis fases principales: comprensión del negocio, comprensión de los datos, preparación de los datos, modelado, evaluación y despliegue.
SEMMA (Sample, Explore, Modify, Model, Assess): Enfocada en las etapas de muestreo, exploración, modificación, modelado y evaluación de los datos.
KDD (Knowledge Discovery in Databases): Incluye las etapas de selección de datos, preprocesamiento, transformación, minería de datos y interpretación/evaluación.
KANBAN: Método ágil que utiliza tableros visuales para gestionar el flujo de trabajo, muy útil para la gestión de proyectos en análisis de datos.
¿Donde encontrar datasets para estudiar?:
Kaggle: Plataforma que ofrece una amplia variedad de datasets para competiciones de ciencia de datos y proyectos personales.
datos.gob.es: Portal de datos abiertos del gobierno español, con acceso a una gran cantidad de datos públicos.
Otros recursos: Google Dataset Search, UCI Machine Learning Repository, DataHub, entre otros.
⚒️ Librerías de Python recomendadas
Pandas (para cargar datos de diversas fuentes)
Importar los datos en el entorno de análisis:
Archivos CSV: Usar read_csv()
import pandas as pd df = pd.read_csv('ruta_al_archivo.csv')
Archivos Excel: Usar read_excel()
df = pd.read_excel('ruta_al_archivo.xlsx')
Bases de datos SQL: Usar read_sql()
from sqlalchemy import create_engine
engine = create_engine('nombre_del_motor://usuario:contraseña@host:puerto/base_de_datos')
df = pd.read_sql('nombre_de_la_tabla', engine)
Archivos JSON: Usar read_json()
df = pd.read_json('ruta_al_archivo.json')
Archivos de texto (delimitados): Usar read_table()
df = pd.read_table('ruta_al_archivo.txt', delimiter='\t')
HTML: Usar read_html()
df_list = pd.read_html('ruta_al_archivo.html') # Devuelve una lista de DataFrames
Parquet: Usar read_parquet()
df = pd.read_parquet('ruta_al_archivo.parquet')
Pickle: Usar read_pickle()
df = pd.read_pickle('ruta_al_archivo.pkl')
Feather: Usar read_feather()
df = pd.read_feather('ruta_al_archivo.feather')
HDF5: Usar read_hdf()
df = pd.read_hdf('ruta_al_archivo.h5', 'nombre_del_key')
💻 Ejemplo de código:
En este paso vamos a cargar los datos en Python y hacer una primera revisión para asegurarnos de que se han cargado correctamente y entender su estructura básica.
a) Importar los datos en el entorno de análisis
Leer archivos de datos: Usar funciones de la biblioteca pandas para leer e importar los datos al Dataframe.
b) Verificar las dimensiones del conjunto de datos
Shape: Utilizar el atributo shape de DataFrame para verificar el número de filas y columnas.
c) Examinar las primeras y últimas filas
Head y Tail: Utilizar los métodos head() y tail() para visualizar las primeras y últimas filas del DataFrame.
d) Verificar los tipos de datos de las columnas
Dtypes: Utilizar el atributo dtypes para verificar los tipos de datos de cada columna en el DataFrame.
Info: Utilizar el método info() para obtener un resumen completo del DataFrame incluyendo el conteo de valores no nulos y tipos de datos.
⚒️ Librerías de Python recomendadas
Pandas
💻 Ejemplo de código: Aquí cargarmos los datos en Python.
Este paso implica "limpiar" los datos, asegurándonos de que no hay información faltante, repetida o incorrecta que pueda afectar nuestras análisis.
Los pasos a seguir para realizar la limpieza de los datos son:
a) Identificar y manejar valores faltantes
Determinar dónde faltan datos y decidir cómo tratarlos. Esto puede incluir eliminación de filas o columnas, imputación con valores medianos, medias, o moda, o usar técnicas avanzadas de imputación.
b) Detectar y tratar valores duplicados
Identificar registros duplicados en el conjunto de datos y decidir si deben eliminarse o consolidarse.
c) Corregir errores de formato o tipo de datos
Verificar y corregir inconsistencias en los tipos de datos, formatos de fechas, textos, etc. Asegurarse de que cada columna tiene el tipo de dato correcto para el análisis.
d) Detectar y tratar valores atípicos (outliers):
Identificar valores que se desvían significativamente de otros en el conjunto de datos. Esto puede requerir transformaciones (como la escala logarítmica) y normalización de los datos para reducir el impacto de los valores atípicos en el análisis. Este paso puede incluir:
Visualización de datos para identificar outliers (gráficos de caja, histogramas, etc.)
Decidir cómo manejar los outliers (eliminación, transformación, imputación, etc.)
Normalización o estandarización de los datos si es necesario.
💡 He dejado un apartado para tratar solamente valores atípicos en el PASO 7.
⚒️ Librerías de Python utilizadas
Pandas y NumPy
💻 Ejemplo de código:
El análisis estadístico descriptivo se utiliza para resumir y describir las características principales de un conjunto de datos. Aquí se detallan los pasos a seguir y los conceptos clave involucrados:
a) Calcular e interpretar medidas de tendencia central (media, mediana, moda)
Media (promedio): Es el valor promedio de un conjunto de datos y se calcula sumando todos los valores y dividiéndolos por el número total de valores. Es útil para entender el punto central de los datos, pero puede ser sensible a valores atípicos.
Mediana: Es el valor que se encuentra en el centro de un conjunto de datos ordenado. Si el número de valores es par, es el promedio de los dos valores centrales. La mediana es menos sensible a valores atípicos en comparación con la media.
Moda: Es el valor que aparece con mayor frecuencia en un conjunto de datos. Un conjunto de datos puede tener más de una moda (multimodal) o no tener ninguna moda si todos los valores son únicos.
b) Determinar medidas de dispersión (desviación estándar, rango, varianza)
Desviación estándar: Mide la cantidad de variación o dispersión de un conjunto de datos. Una desviación estándar baja indica que los datos están cerca de la media, mientras que una alta indica que los datos están más dispersos.
Rango: Es la diferencia entre el valor máximo y el valor mínimo de un conjunto de datos. Proporciona una idea básica de la dispersión.
Varianza: Es el promedio de las desviaciones al cuadrado respecto a la media y mide la dispersión de los datos. La varianza es el cuadrado de la desviación estándar.
c) Analizar la distribución de las variables (asimetría, curtosis)
Asimetría (skewness): Mide la simetría de la distribución de los datos. Una asimetría positiva indica que la cola derecha es más larga o que hay una mayor concentración de valores en el lado izquierdo. Una asimetría negativa indica lo contrario.
Curtosis: Mide la "pesadez" de las colas de la distribución de los datos. Una curtosis alta indica que las colas son más pesadas que una distribución normal (leptocúrtica), mientras que una curtosis baja indica lo contrario (platicúrtica).
⚒️ Librerías de Python utilizadas
Pandas, NumPy, SciPy
💻 Ejemplo de código:
La visualización de datos es fundamental en el análisis de datos, ya que convierte datos complejos en gráficos que permiten entender mejor la información, detectar patrones, identificar relaciones y descubrir anomalías que no son evidentes en tablas numéricas.
La visualización no solo ayuda a comunicar resultados de manera efectiva, sino que también facilita la exploración de datos durante el análisis.
Para visualizar los datos debemos seguir estos pasos:
a) Crear histogramas para variables numéricas
Los histogramas son esenciales para entender la distribución de variables numéricas. Muestran cómo se distribuyen los datos a lo largo de los valores posibles, permitiendo visualizar la frecuencia de ocurrencia de los distintos rangos de valroes. Un historgrama es útil para identificar si los datos están sesgados, si son unimodales o multimodales, y sei existen outliers.
Cuándo usarlo: Utiliza histogramas cuando necesites entender la distribución de la variable numérica en tu conjuto de datos.
[pegar imagen]
b) Generar diagramas de caja y bigote (boxplot) para detectar outliers
Un boxplot es una representación gráfica que resume la distribución de los datos basada en cinco números: mínimo, primer cuartil, mediana, tercer cuartil y máximo. Los boxplots son particularmente útiles para detectar outliers y para entender la dispersión y asimetría de los datos.
Cuándo usarlo: Utiliza un boxplot cuando quieras identificar outliers y entender la distribución y disperción de los datos de manera más precisa.
[pegar imagen]
c) Elaborar gráficos de barras para variables categóricas
Los gráficos de barras son ideales para visualizar la frecuencia o proporción de categorías en una variable categórica. Muestran cada categoría como barra cuya altura es proporcional a la frecuencia de ocurrrencia o al valor de interés. Este tipo de gráfico es esencial para compartir cantidades entre diferentes categorías.
Cuándo usarlo: Utiliza gráficos de barras para comparar el tamaño de diferentes categorías y visualizar la distribución de variable categóricas.
[pegar imagen]
d) Construir gráficos de dispersión (Scatter plots) para relaciones entre variables
Un gráfico de dispersión muestra la relación entre dos variables numéricas. Cada punto en el gráfico representa una observación. Este tipo de gráfico es crucial para identificar patrones, correlaciones y tendencias entre variables, así como para detectar posibles anomalías.
Cuándo usarlo: Utiliza gráficos de dispersión cuando necesites explorar la relación entre dos variables numéricas y evaluar la presencia de correlaciones.
[Pegar imagen]
📊 En resumen, estos son los gráficos que No Pueden Faltar en el Análisis de Datos:
Histogramas: Para entender la distribución de las variables numéricas.
Boxplots: Para identificar outliers y entender la dispersión de datos.
Gráficos de barras: Para comparar y analizar categorías en variables categóricas.
Gráficos de dispersión: Para evaluar relaciones entre pares de variables numéricas.
Gráficos de calor (Heatmaps): Útiles para visualizar matrices de correlación y resaltar relaciones fuertes entre múltiples variables.
Series de tiempo: Si trabajas con datos temporarles, gráficos de líneas son cruciales para identificar tendencias y patrones a lo largo del tiempo.
⚠️ Seleccionar el tipo de gráfico adecuado para cada tipo de variable y relación es crucial para obtener insights valiosos y comunicar resultados de manera efectiva.
⚒️ Librerías de Python utilizadas
Matplotlib, Seaborn
💻 Ejemplo de código:
El análisis de correlaciones es una técnica clave en el análisis de datos que permite identificar y cuantificar la relación entre diferentes variables en un conjunto de datos. Este paso es crucial para descubrir dependencias importantes, identificar posibles variables predictoras, y detectar problemas como la multicolinealidad que pueden afectar negativamente los modelos predictivos.
Importancia del Análisis de Correlación
El análisis de correlación es vital para cualquer análisis exploratorio de datos, ya que permite identificar patrones y relaciones entre variables que pueden influir en la decisiones futuras de modelado. Detectar correlaciones fuertes y comprender la multicolinealidad te ayuda a construir modelos predictivos más robustos y a realizar un análisis más preciso y eficiente.
Este paso nos ayuda a entender cómo se relacionan las diferentes variables entre sí:
a) Calcular la matriz de correlación
La matriz de correlación es una tabla que muestra los coeficientes de correlación entre todas las variables del conjunto de datos. Cada celda en la matriz representa la correlación entre dos variables. Los valores de correlación oscilan entre -1 y 1, donde:
+1 indica una correlación positiva perfecta (aumenta una variable, aumenta la otra).
-1 indica una correlación negativa perfecta (aumenta una variable, disminuye la otra).
0 indica que no hay correlación.
Este análisis es fundamental para identificar relaciones lineales entre variables, lo que puede ser útil en la construcción de modelos predictivos y en la identificación de variables redundantes.
Cuándo usarlo: Calcula la matriz de correlación cuando necesites entender las relaciones lineales entre múltiples variables numéricas.
b) Visualizar la matriz de correlación
Para interpretar fácilmente las correlaciones, es común visualizar la matriz de correlación utilizando un heatmap (mapa de calor). Un heatmap colorea las celdas de la matriz según la magnitud de la correlación, facilitando la identificación de relaciones fuertes y débiles entre variables.
Cuándo usarlo: Visualiza la matriz de correlación cuando necesites una representación gráfica que resalte las relaciones más significativas, lo que es especialmente útil en conjuntos de datos grandes donde la matriz puede ser difícil de interpretar numéricamente.
c) Identificar relaciones significativas entre variables
No todas las correlaciones son igualmente importantes. Es crucial identificar las correlaciones fuertes que pueden indicar relaciones causales o dependencias significativas entre variables. Además, es importante estar alerta a la multicolinealidad, que ocurre cuando dos o más variables están altamente correlacionadas entre sí, lo que puede complicar el análisis e inflar los errores en los modelos predictivos.
Cuándo usarlo: Identifica relaciones significativas quando estés buscando variables predictoras clave o intentando reducir la dimensionalidad del conjunto de datos mediante la eliminación de variables redundates.
⚒️ Librerías de Python utilizadas
Pandas, Seaborn
💻 Ejemplo de código:
Los outliers, o valores atípicos, son datos que se encuetran siginficativamente alejados del resto de las observaciones en un conjunto de datos. La detección y tratamiento de outliers es crucial porque pueden distorsionar los resultados del análisis estadístico y los modelos predictivos, llevando a conclusiones erróneas.
Aquí se detallan los pasos a seguir para gestionar eficazmente los outliers:
a) Identificar valores atípicos mediante métodos estadísticos o visuales
Los outliers pueden ser identificados utilizando tanto métodos estadísticos como visuales. Métodos comunes incluyen:
Boxplot: Como se mencionó en el PASO 5, los boxplots son útiles para detectar outliers, que se muestran como puntos fuera de los "bigotes" del gráfico.
Z-score: El Z-score mide cuántas desviaciones estándar está un valor por encima o por debajo de la media. Valores absolutos del Z-score superiores a 3 se consideran generalmente outliers.
IQR (Rango Intercuartílico): Calcula la diferencia entre el tercer y el primer cuartil. Los outliers son aquellos puntos que caen por debajo de Q1 - 1.5 x IQR o por encima de Q3 + 1.5 x IQR.
Cuándo usarlo: Uiliza estas técnicas al inicio del análisis par identificar posibles outliers que puedan necesitar atención especial ante de proceder con el modelado o análisis adicional.
b) Decidir cómo manejar los outliers (eliminar, transformar, o mantener)
Manejo de outliers: Una vez identificados, es crucial decidir qué hacer con los outliers. Las opciones incluyen:
Eliminar: Si lso outliers son erroes de medicioón o no son relevantes para el análisis, pueden eliminarse. Sin embargo, esto debe hacerse con cuidado para no perder información valiosa.
Tranformar: Aplicar tranformaciones como la escala logarítmica o la raíz cuadrada puede reducir el impacto de los outliers sin eliminarlos. También se pueden suar técnicas omo el recorte (capping) para limitar los valroes exremos.
Mantener: En algunos casos, los outliers pueden contener información valiosa y deben mantenerse, especialmente si representan casos raros pero importantes (por ejemplo, en detección de fraudes).
Cuándo usarlo: La estrategia a utilizar depende del contexto del análisis y la naturaleza de los datos. Es crucial comprender el origen y la relevancia de lso outliers ante de decidir su tratamiento.
c) Implementar la estrategia elegida
Después de decidir cómo manejar los outliers, es necesario aplicar la estrategia de manera consistente en todo el conjunto de datos. Esto puede implicar la eliminación de fila, la transformación de columnas, o la marcación de outliers para un tratamiento especial en análisis posteriores.
Cuándo usarlo: Asegúrate de implementar la estrategia elegida antes de realizar cualquier análisis estadístico o modelado para evitar distorsiones en los resultados.
⚒️ Librerías de Python utilizadas
NumPy, SciPy
💻 Ejemplo de código:
El análisis de la distribución de variables es crucial para entender cómo se distribuyen los datos en nuestro conjunto de datos, lo cual tiene implicaciones importantes para el análisis estadístico y el modelado predictivo.
Muchas técnicas estadísticas y de machine learning asumen que los datos siguen una distribución específica, como la normaldiad, por lo que evaluar y, si es necesario, transformar la distribución de las variables es un paso esencial en el proceso de análisis de daos.
Este paso incluye la visualización y pruebas estadísticas para determinar si los datos siguen una distribución normal.
Resumen de los pasos para análisis de la distribución de variables:
a) Evaluar la normalidad de las variables numéricas
La normalidad de una variable se refiere a si los datos siguen una distribución normal, también conocida como distribución gaussiana. Evaluar la normalidad es importante porque mucho métodos estadísticos, como la regresión lineal, y técnicas de machine learning, como los modelos de regresión, asumen que las variables independientes (predictoras) o los residuos siguen una distribución normal.
Existen varios métodos para evaluar la normaldiad:
Prueba de Shapiro-Wilk: Una prueba estadística para verificar la hipótesis de que una muestra proviene de una distribución normal.
Prueba de Kolmogorov-Sminorv: Otra prueba que compara la distribución de la muestra con una distribución normal.
QQ-Plots: Un gráfico cuantil-cuantil que compara los cuartiles de la mustra con los cuantiles esperados de una distribución normal.
Cuándo usarlo: Evalúa la normalidad de las variables cuando necesitas validar las suposiciones de normaldiad en tus análisis estadísticos o modelos predictivos.
b) Considerar transformaciones si es necesario (log, raíz cuadrada, etc.)
Si una varible no sigue una distribución normal, puede ser necesario transformarla para que se ajuste mejor a los supuestos de normalidad o para mejorar el rendimiento de los modelos predictivos.
Las transformaciones comunes incluyen:
Transformación logarítmica: Reduce la asimetría de las distribuciones muy sesgadas.
Transformación de raíz cuadrada: Reduce la asimetría de distribuciones que tienen valores elevados.
Cuándo usarlo: Considera la transformación de datos cuando la distribución de las variables es significativamente NO normal y los análisis posteriores requieren normalidad.
c) Visualizar las distribuciones antes y después de las transformaciones.
Es fundamental comparar la distribución de las variables antes y después de aplicar transformaciones para verificar si la transformación ha logrado el efecto deseado.
Las herramientas visuales son esenciales en este paso:
Histogramas: Permiten ver la forma general de la distribución.
QQ-Plots: Utilizados para comparar cómo la distribución transformada se alinea con la distribución normal.
Boxplots: Pueden ayudar a visualizar cómo las transformaciones afectan la dispersión y la presencia de outliers.
Cuándo usarlo: Visualiza las distribuciones antes y después de la transformación para validar si la transformación ha mejorado la normalidad de los datos o reducido la asimetría.
⚒️ Librerías de Python utilizadas
SciPy, NumPy, Matplotlib
💻 Ejemplo de código:
La segmentación y agrupación de datos (clustering) son técnicas utilizadas para descubrir grupos o patrones naturales en los datos, donde las observaciones dentro de un grupo son más similares entre sí que con las de otros grupos. Estas técnicas son fundamentales para tareas como la segmentación de clientes, análisis de comportamiento, y la identificación de patrones ocultos en conjuntos de datos complejos.
a) Identificar variables para la segmentación
Selección de variables: Antes de aplicar técnicas de agrupación, es crucial seleccionar las variables adecuadas que influirán en la segmentación. Estas variables deben ser relevantes para el problema que se está tratando de resolver y deben capturar las características esenciales de las entidades que se desean agrupar. Las variables pueden ser numéricas (como ingresos, edad, gasto) o categóricas (como país, género, tipo de producto).
Cuándo usarlo: Utiliza este paso para asegurarte de que las variables seleccionadas reflejan adecuadamente los criterios que deseas utilizar para segmentar los datos.
b) Aplicar técnicas de agrupación (por ejemplo, Kmeans)
Técnicas de agrupación (clustering): Una vez seleccionadas las variables, se pueden aplicar varias técnicas de clustering para agrupar las observaciones:
K-means clustering: Es uno de los algoritmos de clustering más populares que particiona los datos en K grupos, donde cada observación pertenece al grupo con el centroide más cercano. Este método es útil cuando se sabe de antemano el número de clusters.
Clustering jerárquico: No requiere especificar el número de clusters por adelantado y crea una jerarquía de clusters mediante la combinación secuencial de los datos.
DBSCAN (Density-Based Spatial Clustering of Applications with Noise): Es una técnica que forma clusters basados en la densidad, útil para encontrar clusters de forma arbitraria y detectar outliers.
Cuándo usarlo: Aplica estas técnicas cuando necesites descubrir grupos dentro de los datos para análisis de patrones, segmentación de mercado, o reducción de dimensionalidad.
c) Analizar y caracterizar los grupos resultantes
Una vez que los grupos han sido identificados, es importante analizar y caracterizar cada grupo para entender las características que los definen. Esto puede incluir calcular estadísticas descriptivas (media, mediana, varianza) dentro de cada grupo, y visualizar las diferencias entre grupos utilizando gráficos como boxplots, gráficos de barras, o gráficos de dispersión. También es útil revisar las proporciones de los grupos para asegurar de que lo clusters formados son significativos y representan subgrupos lógicos del conjunto de datos.
Cuándo usarlo: Realiza este análisis después del clustering para comprender mejor las diferencias entre los grupos y cómo cada grupo puede ser utilizado en aplicaciones como segmentación de clientes o análisis de comportamiento.
⚒️ Librerías de Python utilizadas
Scikit-learn, Pandas, Matplotlib
💻 Ejemplo de código:
La generación de hipótesis es un paso fundamental en el proceso de análisis de datos, que implica la formulación de preguntas y suposiciones basadas en los patrones y relaciones observadas durante el Análisis Exploratorio de Datos (EDA).
Este paso es crucial porque guía los análisis posteriores, permitiendo que se realicen pruebas estadísticas más avanzadas y dirigidas. Aunque este paso es más conceptual y no requiere de codificación específica, documentar las hipótesis es esencial para mantener un registro claro del proceso de investigación.
Aquí usamos lo que hemos aprendido de los datos para hacer preguntas más específicas o sugerir posibles explicaciones que podemos probar con análisis más avanzados. Siendo un paso más conceptual no se requiere un código específico, pero podemos documentar nuestras hipótesis e comentarios o en un notebook de Jupyter o Google Colab.
a) Revisar los hallazgos del EDA
Antes de formular hipótesis, es importante revisar exhaustivamente los descubrimientos hechos durante el EDA. Esto incluye las correlaciones identificadas, los patrones en la distribución de variables, los resultados de segmentación y cualquier otro hallazgo relevante. Este repaso asegura que las hipótesis formuladas estén bien fundamentadas en los datos observados.
Cuándo usarlo: Realiza una revisión de los hallazgos del EDA cuando estés listo para transicionar del análisis exploratorio a la generación de preguntas investigativas que guiarán los análisis posteriores.
Ejemplo práctico: Si durante el EDA observaste que ciertos grupos de clientes tienden a gastar más en productos específicos, podrías revisar estos hallazgos pra ver si hay patrones de comportamiento que puedan ser investigados más a fondo.
b) Formular preguntas e hipótesis basadas en los patrones observados
Basándote en los patrones y relaciones observadas, se deben formular hipótesis que puedan ser probadas empíricamente. Las hipótesis deben ser específicas y estar orientadas a explicar las relaciones o patrones observados. Por ejemplo, si observaste que existe una alta correlación entre el ingreso y el gasto en ciertos productos, podrías formular la hipótesis de que "los ingresos influyen positivamente en el gasto en productos de lujo".
Cuándo usarlo: Formula hipótesis cuando hayas identificado un patrón claro o una relación que necesite ser investigada más a fondo para validar su significancia o causalidad.
Ejemplo práctico: "Los clientes mayores de 50 años gasta más en productos de salud que los clients más jóvenes debido a una mayor preocupación por el bienestar."
c) Planificar análisis estadísticos más profundos
Una vez formuladas las hipótesis, el siguiente paso es planificar los análisis estadísticos necesarios apra probarlas. Esto podría incluir pruebas de hipótesis (como t-tests o ANOVA), regresiones, análisis de varianza, o incluso modelos más complejos como regresiones logísticas o modelos de machine learning. Es fundamental seleccionar el análisis adecuado en función de la naturaleza de los datos y la hipótesis planteada.
Cuándo usarlo: Utiliza esta planificación cuando estés preparado para validar las hipótesis con técnicas estadísticas o modelos más avanzados.
Ejemplo práctico: Si tu hipótesis es que los ingresos influeyen en el gasto en productos de lujo, podrías planificar una regresión lineal para evaluar esta relación y cuantificar el impacto del ingreso en el gasto.
⚒️ Referencias
Artículo: "The Art of Forming Good Hypotheses" en Towards Data Science. Este artículo ofrece un enfoque práctico para la formulación de hipótesis en el análisis de datos, resaltando la importancia de una buena hipótesis en la investigación.
Libro: "The Craft of Research" por Wayne C. Booth et al. Este libro es un recurso fundamental para entender cómo construir y argumentar hipótesis de menera efectiva en cualquier campo de investigación.
El preprocesamiento de datos es un paso esencial para preparar los datos antes de aplicarlos a un modelo de machine learning. Codificar variables categóricas, normalizar o estandarizar variable numéricas, y realizar selección o ingeniería de características son tareas fundamentales que garantizan que los datos estén en el formato y la escala correctos para maximizar el rendimiento y precisión del modelo.
El preprocesamiento adecuado mejora la calidad de los modelos, reduce el sesgo y mejora la generalización.
Pasos del preprocesamiento para Modelado:
a) Codificar variables categóricas
Las variables categóricas son aquellas que contienen valores no numéricos (por ejemplo, "rojo", "azul", "verde" para un color). Dado que los algoritmos de machine learning requieren entradas numéricas, es necesario convertir estas variables categóricas en un formato numérico.
Existen varias técnicas de codificación:
One-Hot Encoding: Convierte cada categoría en una columna binaria (0 o 1). Es útil cuando las categorías no tienen un orden inherente y no deben influir en el modelo por su valor numérico.
Label Encoding: Asigna un número entero a cada categoría. Se utiliza cuando las categorías tienen un orden natural, pero puede introducir una jerarquía no deseada en los datos.
Cuándo usarlo: Utiliza la codificación de variables categóricas cuando tienes variables no numéricas que necesitas incluir en un modelo de machine learning.
b) Normalizar o estandarizar variables numéricas
Normalización (Min-Max Scaling): Escala las características para que estén en un rango de 0 a 1. Es útil cuando se desea que los datos conserven su forma original pero en una escala más pequeña.
Estandarización (Z-score Scaling): Transforma los datos para que tengan una media de 0 y una desviación estándar de 1. Es útil cuando se requiere que los datos sigan una ditribución normal estándar.
Cuándo usarlo: Aplica normalización o estandarización cuando las variables numéricas tienen rangos muy diferentes y el algoritmo de machine learning es sensible a las escalas de las características.
c) Realizar selección o ingeniería de características
Selección de características: Este proceso implica seleccionar el subconjunto de características más relevantes para el modelado, reduciendo las dimensionalidad y eliminando características redundantes o irrelevantes. Esto puede hacerse mediante técnicas como:
Selección basada en la importancia: Utilizar métodos como Random Forest o regresión Lasso para seleccionar características que tienen una alta importancia.
Selección de características estadísticas: Técnicas como el test de chi-cuadrado o ANOVA para seleccionar características basadas en su relevancia estadística.
Ingeniería de características: Es el proceso de crear nuevas características que puedan mejorar el rendimiento del modelo. Esto puede incluir operaciones matemáticas entre columnas, agrupaciones temporales, o la creación de variables dummy.
Cuándo usarlo: Realiza selección o ingeniería de características cuando desees mejorar la eficiencia y efectividad del modelo, elimando información irrelevante y destacando las características más importantes.
⚒️ Librerías utilizadas
Pandas, Scikt-learn
💻 Ejemplo de código:
El paso final en cualquier análisis de datos es la documentación y resumen de hallazgos. Este proceso es crucial para garantizar la reproducibildiad del análisis y para comunicar lo resultados de manera clara y concisa a otros interasados.
La documentación también sirve como un registro detallado del proceso analítico, lo que facilita futuras investigaciones y permite que otros repliquen o construyan sobre tu trabajo.
a) Documentar los pasos realizados y las decisiones tomadas
Es importante mantener un registro detallado de cada paso del análisis, incluyendo los métodos utilizados, las transformaciones aplicadas, y las razones detrás de cada decisión tomada. Esto incluye documentar cómo se manejaron los outliers, qué técnicas de preprocesamiento se aplicaron, qué modelos se probaron, y cualquier ajuste realizado durante el análisis.
La documentación no solo mejora la reproducibilidad, sino que también ayuda a reflexionar sobre el proceso y facilita la identificación de posibles errores o áreas de mejora.
Cuándo usarlo: Documenta cada paso a lo largo del proceso de análisis para asegurar que todas las acciones y decisiones estén bien registradas y puedan ser revisadas o replicadas en el futuro.
Ejemplo en práctica: En un Jupyter Notebook o en Google Colab, podrías usar celadas de Markdown para describir cada paso del análisis, incluyendo por qué elegiste eliminar ciertos outliers o por qué seleccionaste una técnica de modelado específica.
b) Resumir los principales hallazgos y conclusiones
Al final del análisis, es esencial resumir los resultados más impotantes y las conclusiones a las que se ha llegado. Esto incluye destacar los patrones identificados, las relaciones significativas entre variables, los segmentos descubiertos a través del clustering, y cualquier resultado relevante del modelado predictivo. El resumen debe ser claro, conciso, y enfocado en los insights que son más relevantes para el objetivo del análisis.
Cuándo usarlo: Al concluir el análisis, realiza un resumen que capture los puntos clave del estudio para comunicar efectivamente los resultados a otros interesados.
Ejemplo en práctica: En la sección final de nuestro Jupyter Notebook/Google Colab o informe, incluye un esumen de 2-3 párrafos que describa los hallazgos más importantes y cómo estos pueden influir en decisiones futuras.
c) Identificar áreas para futuras investigaciones
Después de completar el análisis, es probable que surjan nuevas preguntas o áreas que requieren un análisis más profundo.
Documentar estas áreas potenciales para futuras investigaciones es importante, ya que puede guiar análisis posteriores y proporcionar una hoja de ruta para continuar explorando los datos.
Estas áreas pueden incluir variabls que no fueron explroadas en detalle, nuevas hipótesis que surgieron a partir de los resultados, o la necesidad de rcopilar datos adicionales.
Cuándo usarlo: Después de finalizar el análisis, reflexiona sobre las preguntas no resueltas o los nuevos descubrimientos que podrían investigarse en trabajos futuros.
Ejemplo en práctica: En el informe final, crea una sección titulada "Áreas para Futura Investigación" donde identifiquen y discutas posibles próximos pasos basado en los hallazgos actuales.
⚒️ Herramientas utilizadas
Herramientas: Jupyter Notebook, Google Colab, Markdown, etc.
💻 Ejemplo de MARKDOWN:
La comunicación de resultados es el último, pero crucial, paso en el análisis de datos. Involucra no solo la presentación de los hallazgos, sino también la adaptación del mensaje a la audiencia para asegurar que las conclusiones se entiendan y se actúe en consecuencia.
A través de visualizaciones efectivas, informes bien estructurados, y una presentacioón adaptada a la audiencia, puedes garantizar que nuestro análisis tenga el impacto deseado y conduzca a decisiones informadas.
a) Preparar visualizaciones claras y concisas
Las visualizaciones son herramientas poderosas para comunicar resultados de manera visual, haciendo que los datos complejos sean más comprensibles.
Es importante elegir el tipo de gráfico adecuando para los datos que se desean presentar (gráficoas de barras, gráficos de líneas, histogramas, diagramas de dispersión, etc.).
Además, las visualizaciones deben ser claras, con etiquetas y leyendas adecuadas, y deben enforcarse en resaltar los hallazgos clave sin sobrecargar al espectador con detalles innecesarios.
Cuándo usarlo: Utiliza visualizaciones cuando necesites resumir grandes cantidades de datos o explicar relaciones complejas de una manera qeu sea fácilmente digerible para la audiencia.
Ejemplo en práctica: Si estás presentando tendencias a lo largo del tiempo, un gráfico de lineas bien etiquetado y con un título claro puede comunicar efectivamente lso cambios y patrones en los datos.
b) Elaborar un informe o presentación de los hallazgos clave
Informe o presentación: El siguiente paso es crear un informe escrito o una presentación que resuma los hallazgos clave del análisis.
Este documento debe estructurarse de manera lógica, comenzando con un resumen ejecutivo que destaque las conclusiones principales, seguido por secciones maś detalladas que expliquen el contexto, los métodos utilizados, los resultados y sus implicaciones.
En una presentación, es fundamental ser conciso, enfocándose en los puntos más importantes y usando visualizaciones para complementar la narrativa.
Cuándo usarlo: Prepara un informe o presentación cuando necesites comunicar los resultados a colegas, directivos, o clientes, asegurando que la información esté organizada y sea fácilmente accesible.
Ejemplo en práctica: Un informe podría incluir secciones como "Resumen Ejecutivo", "Metodología", "Resultados", "Conclusiones", y "Recomendaciones", con gráficos insertados en las secciones relevantes para apoyar los puntos discutidos.
c) Adaptar la presentación a la audiencia objetivo
La forma en que se comunican los resultados debe adaptarse al conocimiento y las expectativas de la audiencia. Para un público técnico, puedes incluir detalles sobre la metodología y los algoritmos utilizados, mientras que para un público no técnico, es mejor enfocarse en las conclusiones y cómo se aplican a decisiones empresariales o problemas específicos. La clave es hacer que la presentación sea relevante y accesible para quienes la recibirán.
Cuándo usarlo: Adapta la presentación cuando estés comunicando los resultados a diferentes tipos de audiencias, como directivos, equipos técnicos o clientes externos, para asegurarte de que el mensaje sea comprendido correctamente.
Ejemplo en práctica: En una presentación a ejecutivos, podrías enfocarte en el impacto comercial de los hallazgos, mientras que en una reunión con un equipo técnico, podrías profundizar en los detalles metodológicos y los desafíos encontrados.
📚 Referencias
Libro: "Storytelling with Data" por Cole Nussbaumer Knaflic. Este libro es una guía esencial sobre cómo comunicar datos de manera efectiva a través de la narración visual, enseñando cómo diseñar gráficos claros y persuasivos que cuenten una historia coherene.
⚒️ Herramientas para comunicar los resultados
Jupiter Notebooks, Google Colab: Ideales para combinar códigos, visualizaciones y textos explicativo en un solo documento, que puede ser compartido y ejecutado fácilmente
Markdown: Utilizado dentro de Jupyter Notebooks, Google Colab y otras plataformas para formatear textos, permitiendo la creación de informes y presentaciones bien estructurados y fáciles de leer.
Plotly: Una herramienta para crear visualizaciones interactivas que pueden ser utilizadas en informes y presentaciones.
💻 Ejemplo de MARKDOWN:
En este punto ya tenemos claro que es EDA y tenemos un guía que nos ayudará a llevar a cabo nuestro proyecto de análisis exploratório de los datos.
📚 Referencias, Herramientas y Librerías Python:
👉 Documentación Oficial de Python
MIT Open Learning Library: Proporciona una introducción detallada sobre qué es el EDA y su importancia en el análisis de datos MIT Open Learning Library (MIT Open Learning Library).
MIT OpenCourseWare: Ofrece materiales de curso sobre análisis exploratorio y visualización de datos, resaltando la importancia del EDA en la planificación urbana MIT OCW (MIT OpenCourseWare).
MIT Sloan School of Management: Curso sobre pensamiento estadístico y análisis de datos, cubriendo técnicas de EDA y su aplicación en diferentes contextos MIT Sloan School of Management (MIT OpenCourseWare).
Pandas - Python Data Analysis Library (para cargar datos de diversas fuentes)
👉 Referencias bibliográficas
"Best Practices or Scientific Computing" en PLOS Biology
"Storytelling with Data" por Cole Nussbaumer Knaflic
"Statistics in Plain English" por Timothy C. Urdan. En Amazon.
Exploratory data analysis: John W. Turkey
Utilización de métodos robustos en la estadística inferencial
👉 Cursos
Data Visualization and Communication with Tableau" en Coursera
👉 Enlaces de Interés
🗄️ Donde encontrar datasets para estudiar:
Catálago de Datos abiertos del Gobierno de España: Página web del Gobierno de España con datos abierto para estudio.
Laboratorio de datos en Github de "datosgobes": El repositorio incluye una serie de recursos y ejercicios prácticos orientados a divulgar diferentes formas de reutilización de datos abiertos