Programación Básica en R Studio
Técnicas básicas de exploración y visualización de datos en R Studio (parte 1)
EDA (Exploratory Data Analysis)
- El Análisis Exploratorio de Datos (EDA) es un flujo de trabajo diseñado para obtener una mejor comprensión de sus datos. El flujo de trabajo consta de tres pasos.
El primero consiste en generar preguntas sobre los datos. En este paso se quiere ser lo más amplio posible, ya que en este momento no se tiene una buena idea de los datos.
A continuación, se buscan las respuestas a estas preguntas mediante la visualización, la transformación y el modelado de los datos.
Por último, refine sus preguntas o genere nuevas preguntas
En R hay dos herramientas principales que apoyan el proceso de exploración de datos: los gráficos y los estadísticos de resumen. Los datos pueden dividirse generalmente en tipos categóricos o continuos.
Las variables categóricas consisten en un pequeño conjunto de valores, mientras que las continuas tienen un conjunto potencialmente infinito de valores.
Las variables categóricas suelen visualizarse con gráficos de barras, y las continuas con histogramas. Tanto datos categóricos y continuos pueden representarse a través de varios gráficos creados con R.
Al realizar la visualización básica de las variables, tendemos a medir la variación o la covariación. La variación es la tendencia de los valores de una variable a cambiar de una medición a otra. La covariación es la tendencia de los valores de dos o más variables a variar de una manera relacionada.
Nota: No confundir con causalidad
Para iniciar con el ejercicio planteado, descargue en el repositorio
o en la plataforma del Brigthspace el archivo df_empleados
cuya extensión es rds
Preguntas para el Análisis Exploratorio de Datos (EDA)
Con el dataframe generado, podemos formular algunas preguntas que guiarán nuestro análisis:
Distribución Demográfica:
¿Cuál es la distribución de edades de los empleados?
¿Cómo se distribuyen los empleados entre los diferentes departamentos?
¿Cuál es la proporción de empleados por nivel educativo?
Relaciones entre Variables:
¿Existe una relación entre la edad y el salario?
¿Los empleados con mayor nivel educativo tienden a tener salarios más altos?
¿Cómo varía el salario entre los diferentes departamentos?
¿Existe una diferencia en las horas trabajadas por semana entre hombres y mujeres?
Análisis de Tendencias y Patrones:
¿Cómo varía el salario con la experiencia laboral?
¿Hay diferencias en la distribución de salarios entre departamentos?
¿Cuál es la relación entre el número de horas trabajadas y el salario?
Recuerde que estas preguntas son sugeridad para este ejemplo en específico, esto puede variar segun el df en el que estemos trabajando
Análisis de Resumen y Gráficos
Podemos realizar análisis de resumen y crear gráficos para responder a las preguntas anteriores.
## ID Edad Salario Departamento
## Min. : 1.00 Min. :22.00 Min. : 340 Length:200
## 1st Qu.: 50.75 1st Qu.:32.00 1st Qu.:37908 Class :character
## Median :100.50 Median :43.00 Median :49569 Mode :character
## Mean :100.50 Mean :41.64 Mean :49371
## 3rd Qu.:150.25 3rd Qu.:50.00 3rd Qu.:60456
## Max. :200.00 Max. :60.00 Max. :90623
## Años_Experiencia Nivel_Educativo Sexo Horas_Trabajo_Semanal
## Min. : 1.00 Length:200 Length:200 Min. :27.00
## 1st Qu.:10.00 Class :character Class :character 1st Qu.:37.00
## Median :20.00 Mode :character Mode :character Median :40.00
## Mean :19.73 Mean :40.48
## 3rd Qu.:29.00 3rd Qu.:43.25
## Max. :38.00 Max. :54.00
##
## Finanzas IT Marketing Ventas
## 54 38 53 55
##
## Bachiller Postgrado Pregrado
## 64 72 64
Interpretemos los estadísticos de resumen anteriores
Análisis gráficos
Gráfico de Barra
Un histograma de edades es una herramienta fundamental en el análisis exploratorio de datos (EDA) porque permite visualizar la distribución de las edades dentro de un conjunto de datos de manera clara y comprensible. Al agrupar las edades en rangos o “bins”, el histograma muestra cuántos empleados caen dentro de cada rango de edad, lo que facilita identificar patrones, como la concentración de empleados en ciertos grupos de edad, detectar sesgos demográficos, o posibles anomalías. Esta visualización es especialmente útil para entender la estructura demográfica de la fuerza laboral en una organización, lo que puede informar decisiones estratégicas relacionadas con políticas de recursos humanos, capacitación, y desarrollo profesional.
ggplot(df_empleados, aes(x = Edad)) +
geom_histogram(binwidth = 5, fill = "skyblue", color = "black") +
labs(title = "Distribución de Edades de los Empleados", x = "Edad", y = "Frecuencia") +
theme_minimal()El gráfico de barras que muestra la distribución de empleados según el nivel educativo es una herramienta clave en el análisis exploratorio de datos (EDA) para evaluar la estructura educativa de una organización. Este gráfico facilita la visualización de la cantidad de empleados en cada categoría de nivel educativo, permitiendo identificar rápidamente las proporciones y posibles desigualdades en la formación académica de la fuerza laboral. Al resaltar las diferencias en la representación de bachilleres, profesionales de pregrado y postgrado, este gráfico proporciona una perspectiva clara sobre el perfil educativo de los empleados, lo que puede influir en las decisiones relacionadas con el desarrollo profesional, la planificación de formación interna y la contratación. Además, ayuda a evaluar si la organización está alineada con sus objetivos de desarrollo de talento y si hay necesidad de ajustar las estrategias de reclutamiento para cubrir carencias educativas específicas.
ggplot(df_empleados, aes(x = Nivel_Educativo, fill = Nivel_Educativo)) +
geom_bar() +
labs(title = "Distribución de Empleados por Nivel Educativo", x = "Nivel Educativo", y = "Número de Empleados") +
theme_minimal()Un boxplot, o gráfico de caja y bigotes, es una herramienta esencial en el análisis exploratorio de datos (EDA) para resumir la distribución de una variable continua y comparar dicha distribución entre diferentes grupos o categorías. Este tipo de gráfico es particularmente útil para identificar la mediana, los cuartiles, y la dispersión de los datos, así como para detectar la presencia de posibles valores atípicos (outliers). Al utilizar un boxplot para comparar salarios entre distintos departamentos, por ejemplo, se puede observar rápidamente cómo varían las distribuciones salariales, identificar departamentos con mayor o menor dispersión salarial, y detectar posibles anomalías que podrían requerir una mayor investigación. Esta visualización facilita la comprensión de las diferencias entre grupos, permitiendo tomar decisiones informadas en áreas como la gestión de compensaciones y la equidad salarial.
Boxplot
ggplot(df_empleados, aes(x = Departamento, y = Salario, fill = Departamento)) +
geom_boxplot() +
labs(title = "Distribución de Salarios por Departamento", x = "Departamento", y = "Salario") +
theme_minimal()Gráfico de Dispersión
El gráfico de dispersión que muestra la relación entre años de experiencia y salario, con puntos coloreados según el departamento y una línea de ajuste lineal, es crucial para un análisis exploratorio de datos (EDA) en el contexto de la gestión de recursos humanos. Este tipo de visualización permite identificar patrones y tendencias en cómo la experiencia laboral impacta en el salario de los empleados. Al incluir una línea de ajuste, se facilita la comprensión de la relación general entre estas dos variables, mientras que el uso de colores para los distintos departamentos ayuda a revelar posibles diferencias en la compensación salarial entre áreas funcionales. Esto no solo proporciona una visión clara sobre cómo la experiencia afecta el salario, sino que también permite detectar anomalías, comparar la equidad salarial entre departamentos y tomar decisiones informadas para ajustes en las políticas salariales o estrategias de contratación.
ggplot(df_empleados, aes(x = Años_Experiencia, y = Salario)) +
geom_point(aes(color = Departamento), alpha = 0.6) +
geom_smooth(method = "lm", color = "red") +
labs(title = "Relación entre Años de Experiencia y Salario", x = "Años de Experiencia", y = "Salario") +
theme_minimal()## `geom_smooth()` using formula = 'y ~ x'
El gráfico de densidad que muestra la distribución de salarios por nivel educativo es una herramienta eficaz para analizar cómo varía la compensación entre diferentes grupos educativos. Este tipo de gráfico permite visualizar la forma de la distribución de salarios dentro de cada categoría de nivel educativo, facilitando la comparación de la densidad salarial entre bachilleres, profesionales de pregrado y postgrado. La superposición de las curvas de densidad ayuda a identificar patrones como la presencia de diferentes picos en los salarios, que pueden reflejar variaciones en la compensación según el nivel educativo. Además, al observar las áreas bajo las curvas, se puede apreciar si ciertos niveles educativos tienden a agruparse en rangos salariales específicos. Este análisis es crucial para comprender las dinámicas salariales y para tomar decisiones informadas sobre políticas de compensación y desarrollo profesional dentro de la organización.
Gráfico de Densidad
ggplot(df_empleados, aes(x = Salario, fill = Nivel_Educativo)) +
geom_density(alpha = 0.5) +
labs(title = "Densidad de Salarios por Nivel Educativo", x = "Salario", y = "Densidad") +
theme_minimal()Correlación
El diagrama de correlación, o heatmap, que visualiza la matriz de correlación entre múltiples variables continuas es una herramienta poderosa para entender las relaciones entre los datos. Este gráfico utiliza una escala de colores para representar la fuerza y la dirección de las correlaciones entre pares de variables, permitiendo identificar patrones y asociaciones significativas de manera rápida y clara. En un contexto empresarial, como el análisis de datos de empleados, un heatmap puede revelar cómo variables como la edad, el salario y los años de experiencia se relacionan entre sí, destacando posibles relaciones positivas o negativas. La visualización de estas correlaciones facilita la detección de relaciones importantes que podrían no ser evidentes a través de análisis univariados, y proporciona una base sólida para tomar decisiones informadas sobre estrategias de gestión y desarrollo. Además, ayuda a identificar variables que podrían estar colineales, lo cual es esencial para la modelización y análisis estadístico más avanzado
## Warning: package 'reshape2' was built under R version 4.3.3
##
## Attaching package: 'reshape2'
## The following object is masked from 'package:tidyr':
##
## smiths
corr_matrix <- cor(df_empleados %>% select(Edad, Salario, Años_Experiencia))
melted_corr <- melt(corr_matrix)
ggplot(melted_corr, aes(Var1, Var2, fill = value)) +
geom_tile() +
scale_fill_gradient2(midpoint = 0, low = "blue", mid = "white", high = "red", space = "Lab") +
labs(title = "Matriz de Correlación", x = "", y = "") +
theme_minimal()Gráfico de violín
El gráfico de violín combina características de un boxplot con una representación de la densidad de los datos, proporcionando una visión detallada de cómo se distribuye una variable continua en diferentes categorías:
Forma del Violin: La forma del gráfico de violín muestra la distribución de los datos para cada categoría. Las áreas más anchas indican una mayor densidad de datos, mientras que las áreas más estrechas indican una menor densidad.
Comparación entre Categorías: Permite comparar la distribución de una variable continua (como el salario) entre diferentes categorías (como los niveles educativos). Puedes observar cómo se superponen las distribuciones y si existen diferencias notables.
library(ggplot2)
ggplot(df_empleados, aes(x = Nivel_Educativo, y = Salario, fill = Nivel_Educativo)) +
geom_violin(trim = FALSE) +
labs(title = "Distribución de Salarios por Nivel Educativo", x = "Nivel Educativo", y = "Salario") +
theme_minimal()