En el ámbito académico, las diferencias salariales entre hombres y mujeres han sido motivo de atención y estudio constante, dado su impacto en la equidad y la justicia laboral. Con el propósito de analizar esta problemática, se desarrollará un estudio exploratorio a partir de un conjunto de datos que recopila información salarial y profesional de 397 profesores de una universidad en los Estados Unidos, correspondiente al período 2008-2009.
Este análisis buscará, en primer lugar, identificar si existe una diferencia salarial significativa entre profesores y profesoras. Posteriormente, se explorará si dichas diferencias pueden atribuirse exclusivamente al género, o si otros factores, como el rango académico, el área de conocimiento, los años de experiencia desde la obtención del doctorado o el tiempo de servicio en la institución, actúan como variables de confusión que explican parte de las brechas observadas.
A través de visualizaciones sintéticas y contrastes de indicadores resumen, se pretende construir un informe que brinde a la administración de la universidad herramientas objetivas para entender mejor la dinámica salarial de su planta docente, contribuyendo así al esfuerzo de monitoreo y mejora de las condiciones laborales de su personal académico.
# Se importan los datos
datos <- read_csv2("Salaries.csv") # Toma los datos en donde este ubicado .Rmd
## ℹ Using "','" as decimal and "'.'" as grouping mark. Use `read_delim()` for more control.
## Rows: 397 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ";"
## chr (3): rank, discipline, sex
## dbl (3): yrs.since.phd, yrs.service, salary
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# Renombrar variables # Evita errores, hace el codigo mas limpio, evita comillas extrañas.
datos <- datos %>%
rename(
yrs_since_phd = `yrs.since.phd`,
yrs_service = `yrs.service`
)
# Calcula el salario promedio del sexo y permite visualizar las diferencias salariales entre hombres y mujeres.
datos %>% # Esto inicia una “tubería” (pipe) con el dataframe llamado datos. Significa:“Voy a aplicar funciones a este conjunto de datos”
# A partir del análisis descriptivo, se observa que los hombres presentan un salario promedio superior al de las mujeres en aproximadamente $14.088 USD, lo que representa un 14%. Sin embargo, esta diferencia no puede atribuirse exclusivamente al género sin considerar otros factores potencialmente influyentes..
group_by(sex) %>%
summarise(salario_promedio = round(mean(salary), 2))
## # A tibble: 2 × 2
## sex salario_promedio
## <chr> <dbl>
## 1 Female 101002.
## 2 Male 115090.
# Es una función del paquete ggpubr que crea un boxplot fácilmente.
# ¿Qué resultado produce todo este bloque?
#- Una tabla con el salario promedio por género.
# -Un boxplot profesional y limpio que muestra la distribución de salarios por género.
#Esto te permite ver claramente si hay una diferencia de ingresos entre hombres y mujeres tanto de forma numérica como visual. Se ha utilizado un boxplot (diagrama de caja) que es una herramienta clásica para analizar: Tendencia central (mediana), Dispersión (rango intercuartílico), Valores atípicos (outliers), Simetría o sesgo en la distribución.
# Analisis del grafico:
# 1. Mediana (línea gruesa dentro de la caja)
#• La línea central horizontal de cada caja representa la mediana del salario:
#• En hombres, la mediana parece estar alrededor de $108.000 USD
#• En mujeres, la mediana está más cerca de $100.000 USD
#Esto indica que, en general, el salario central de los hombres es mayor.
ggboxplot(datos, x = "sex", y = "salary", color = "sex", palette = "jco") +
labs(title = "Distribución salarial por sexo", x = "Sexo", y = "Salario (USD)") +
scale_y_continuous(labels = label_number(accuracy = 0.01))
# Cajas (rango intercuartílico, IQR)
#• El IQR va del percentil 25 (Q1) al percentil 75 (Q3), donde se encuentra el 50% central de los datos.
#• La caja de los hombres es más alta y más ancha → indica una mayor variabilidad salarial.
#• La caja de las mujeres es más estrecha → los salarios están más concentrados en un rango más limitado.
# Bigotes (líneas verticales)
# • Los bigotes muestran el rango aproximado sin contar los valores atipicos.
# • El rango en hombres se extiende más, lo que indica más amplitud salarial.
# • En mujeres, el bigote superior es más corto → menos salarios extremos altos.
#Outliers (puntos individuales)
#• En el grupo masculino, hay varios outliers por arriba de los $200,000.
#• No se observan outliers evidentes en el grupo femenino.
# Esto podría reflejar que algunos hombres ocupan cargos muy bien pagados, o tienen condiciones excepcionales (por ejemplo, proyectos, antigüedad muy alta, etc.).
#Este gráfico sugiere que los hombres tienden a ganar más, no solo en términos de mediana, sino también en la presencia de salarios más altos. Sin embargo, este análisis es puramente descriptivo: para evaluar si esta diferencia es atribuible únicamente al género, se requiere un análisis multivariado que controle por rango académico, disciplina y experiencia
datos %>% # Toma el dataframe datos y pásalo al siguiente paso.
group_by(sex) %>% # Esta función agrupa los datos según la variable sex, que contiene los valores "Male" y "Female".
summarise( # Esta función resume los datos agrupados con estadísticas específicas. Dentro de ella:
promedio_phd = round(mean(yrs_since_phd), 2), # Calcula la media de los años desde que la persona obtuvo su PhD (yrs_since_phd). round(..., 2) redondea el resultado a 2 decimales.
promedio_servicio = round(mean(yrs_service), 2) # Calcula la media de los años de servicio en la universidad. También se redondea a 2 decimales.
)
## # A tibble: 2 × 3
## sex promedio_phd promedio_servicio
## <chr> <dbl> <dbl>
## 1 Female 16.5 11.6
## 2 Male 23.0 18.3
# Calcular experiencia y antigüedad promedio por sexo
resumen_exp <- datos %>%
group_by(sex) %>%
summarise(
promedio_phd = round(mean(yrs_since_phd), 2),
promedio_servicio = round(mean(yrs_service), 2)
)
# Reorganizar los datos para usar en ggplot (formato largo)
resumen_long <- resumen_exp %>%
pivot_longer(cols = c(promedio_phd, promedio_servicio),
names_to = "tipo",
values_to = "valor")
# La siguiente linea crea graficas comparativas:
ggplot(resumen_long, aes(x = tipo, y = valor, fill = sex)) +
geom_col(position = "dodge") +
geom_text(aes(label = valor), position = position_dodge(0.9), vjust = -0.5, size = 4) +
scale_fill_manual(values = c("Female" = "#F4C430", "Male" = "#0073C2")) +
labs(
title = "Experiencia académica y antigüedad promedio por sexo",
x = "Tipo de experiencia",
y = "Promedio (años)",
fill = "Sexo"
) +
scale_y_continuous(labels = scales::label_number(accuracy = 0.01)) +
theme_minimal()
# Analisis Grafica:
#1. Diferencia clara de experiencia académica
# • Los hombres tienen en promedio 6.44 años más desde que obtuvieron su PhD.
# • Esto puede reflejar que hay una mayor proporción de hombres con más años en la carrera académica.
#Implicación: A mayor experiencia, mayor probabilidad de tener ascensos, publicaciones y, por tanto, mejores salarios.
#2. Diferencia en antigüedad institucional
# • Los hombres han trabajado en promedio 6.71 años más en la universidad.
# • Esto puede implicar mayores beneficios acumulados, progresión en el escalafón docente o acceso a incentivos salariales.
#Implicación: El tiempo de servicio influye directamente en el salario, bonificaciones, pensiones y demas.
#3. Posible generación académica distinta
#La diferencia de años sugiere que:
# • Muchas mujeres en la muestra pueden haber ingresado más recientemente a la universidad o la carrera académica.
# • Esto podría estar relacionado con procesos históricos de incorporación más reciente de mujeres a la planta profesoral.
# Aunque inicialmente observamos una brecha salarial entre hombres y mujeres, esta gráfica muestra que los hombres, en promedio, tienen mayor experiencia académica y antigüedad, lo cual puede explicar parcialmente esas diferencias salariales.
# Rango académico
datos %>% # Inicia una “tubería” de datos usando el operador %>%.
count(sex, rank) %>% # Cuenta la cantidad de casos para cada combinación de sexo y rango.
group_by(sex) %>% # Agrupa los datos por sexo, para que los cálculos del siguiente paso se hagan por grupo de sexo (hombres por un lado, mujeres por otro).
mutate(porcentaje = round(n / sum(n) * 100, 2)) # Agrega una nueva columna llamada porcentaje.
## # A tibble: 6 × 4
## # Groups: sex [2]
## sex rank n porcentaje
## <chr> <chr> <int> <dbl>
## 1 Female AssocProf 10 25.6
## 2 Female AsstProf 11 28.2
## 3 Female Prof 18 46.2
## 4 Male AssocProf 54 15.1
## 5 Male AsstProf 56 15.6
## 6 Male Prof 248 69.3
# El codigo crea una tabla con el número y porcentaje de profesores por rango académico dentro de cada grupo de sexo.
# Este código es util para responder esta pregunta del laboratorio:
# “¿Las diferencias salariales son atribuibles exclusivamente al género? ¿O hay características como el rango académico o disciplina que también están relacionadas con el salario?”
#1. Diferencia clara en el rango más alto: Prof
# • 69.27% de los hombres ocupan el rango más alto: Profesor titular.
# • Solo 46.15% de las mujeres están en ese mismo rango.
#Esto indica una sobrerrepresentación masculina en cargos altos. Y, como sabes, el rango Prof es el mejor pagado, lo cual influye directamente en la brecha salarial observada.
# 2. Más mujeres en los rangos más bajos
# • AsstProf (Asistente): 28.21% mujeres vs. 15.64% hombres.
# • AssocProf (Asociado): 25.64% mujeres vs. 15.08% hombres.
#Las mujeres tienen una mayor proporción en los rangos intermedios y bajos, que también suelen tener salarios menores y menos estabilidad.
#3. Evidencia de desbalance estructural
#Esta distribución desigual es un posible factor confusor:Si los hombres están mayoritariamente en el rango Prof, podrían ganar más simplemente por su cargo, no solo por ser hombres.Por eso, al analizar el efecto del género en el salario, es imprescindible controlar por el rango académico.
# Disciplina
datos %>%
count(sex, discipline) %>%
group_by(sex) %>%
mutate(porcentaje = round(n / sum(n) * 100, 2))
## # A tibble: 4 × 4
## # Groups: sex [2]
## sex discipline n porcentaje
## <chr> <chr> <int> <dbl>
## 1 Female A 18 46.2
## 2 Female B 21 53.8
## 3 Male A 163 45.5
## 4 Male B 195 54.5
#El objetivo es ver si hay desigualdad en la distribución por tipo de disciplina entre hombres y mujeres.
# En la tabla vemos como laa distribución por disciplina entre hombres y mujeres es muy similar, lo que sugiere que el área de trabajo (teórica o aplicada) no actúa como un factor confusor en este conjunto de datos. Por ende, si existe una diferencia salarial, no se debe a una concentración de mujeres en áreas de menor paga.
# Crear el resumen manualmente (usando tus valores)
disciplina_por_sexo <- tribble(
~sex, ~discipline, ~n, ~porcentaje,
"Female", "A", 18, 46.15,
"Female", "B", 21, 53.85,
"Male", "A", 163, 45.53,
"Male", "B", 195, 54.47
)
ggplot(disciplina_por_sexo, aes(x = discipline, y = porcentaje, fill = sex)) +
geom_col(position = "dodge") +
geom_text(aes(label = porcentaje), position = position_dodge(0.9), vjust = -0.5, size = 4) +
scale_fill_manual(values = c("Female" = "#F4C430", "Male" = "#0073C2")) +
labs(
title = "Distribución por disciplina según sexo",
x = "Disciplina",
y = "Porcentaje (%)",
fill = "Sexo"
) +
ylim(0, 60) +
theme_minimal()
# Este gráfico permite visualizar que no hay diferencia sustancial en la distribución de disciplinas por género, reforzando el argumento estadístico.
# Esta linea de codigo construyendo un modelo que mide el efecto independiente de cada variable sobre el salario, controlando por todas las demás.
modelo <- lm(salary ~ sex + rank + discipline + yrs_since_phd + yrs_service, data = datos)
round(summary(modelo)$coefficients, 2)
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 78862.82 4990.33 15.80 0.00
## sexMale 4783.49 3858.67 1.24 0.22
## rankAsstProf -12907.59 4145.28 -3.11 0.00
## rankProf 32158.41 3540.65 9.08 0.00
## disciplineB 14417.63 2342.88 6.15 0.00
## yrs_since_phd 535.06 240.99 2.22 0.03
## yrs_service -489.52 211.94 -2.31 0.02
# En el modelo ajustado, el coeficiente para sexMale fue de +4783 USD, pero no fue estadísticamente significativo (p > 0.05). Esto indica que, tras controlar por experiencia, rango y disciplina, el sexo no explica diferencias salariales significativas. En cambio, variables como el rango académico y la disciplina aplicada sí tienen un impacto importante y significativo en el salario.
writeLines("https://rpubs.com/usuario//Users/miguelandresandrademunoz/Library/CloudStorage/OneDrive-correounivalle.edu.co/DOCTORADO 1/Biblio grafia Analisis de datos para la toma de decisiones", "enlace_rpubs.txt")