Discriminación salarial por genero – ¿Existe?

El salario acumulado en nueve meses de 2008-09 para profesores asistentes, profesores asociados y profesores en una universidad en los EE. UU. Los datos se recogieron como parte del esfuerzo continuo de la administración de la universidad para monitorear las diferencias salariales entre los miembros masculinos y femeninos de la facultad.

La hoja de datos Salaries.csv contiene la información de 397 profesores con el registro de 6 variables.

Variable Descripción
rank Factor ordinal con niveles AssocProf AsstProf Prof
discipline Factor con niveles A (“teórico”) o B (“aplicado”)
yrs.since.phd Años transcurrido desde la obtención del doctorado
yrs.service Años de servicio
sex Factor nominal con niveles Female (Femenino) o Male
(Masculino)
salary Salario de nueve meses, en dólares

En consistencia con el objetivo del estudio, se espera que usted construya un informe sintético, en el cual, a través de una visualización contundente de los datos y el contraste adecuado de indicadores resumen, contribuya a la institución a responder las siguientes dos preguntas de investigación.

  1. ¿Existe una diferencia salarial entre hombres y mujeres?

  2. Si la diferencia existe: ¿son atribuibles exclusivamente al género de los profesores ó existen otras características que pueden explicar la diferencia salarial?

Desarrollo

Como primer paso de este ejercicio se realizará un análisis exploratorio de los datos para arrojar las principales medidas de tendencia central de los salarios de los profesores, calculando la cantidad de registros por género.Por lo cual, se presenta a continuación una visualización del dataframe objeto del estudio:

Salaries = read.table("Salaries.csv",header=T,dec=".",sep=";",na.strings = "NA")   #Lectura del set de datos
attach(Salaries)   #atajo para las variables del set de datos

Dataframe Salaries.csv

library(rmarkdown)
paged_table(Salaries)   #Paginador set de datos

Una vez cargado el dataframe se arrojan algunas medidas de tendencia central y de dispersiòn para la variable cuantitativa salario y se cálcula la frecuencia de los registros por género:

summary(Salaries[6])   #Tendencia central
##      salary      
##  Min.   : 57800  
##  1st Qu.: 91000  
##  Median :107300  
##  Mean   :113706  
##  3rd Qu.:134185  
##  Max.   :231545
dispersion=c(sd(salary),sd(salary)/mean(salary)) #Dispersiòn
names(dispersion)=c("Desviación","Coef.Var")
round(dispersion,2)
## Desviación   Coef.Var 
##   30289.04       0.27
#Se crea un factor para el género/sexo
sexo = factor(sex, levels=c("Female","Male"))
countbysex = table(sexo,useNA = "ifany")   # Cantidad total de registros por género
count_t = sum(sex=='Female') + sum(sex=='Male')   # Conteo total de registros
count_t   # Conteo total de registros
## [1] 397
countbysex   # Cantidad total de registros por género
## sexo
## Female   Male 
##     39    358
freq = round(prop.table(countbysex)*100,2)   # frecuencia de los registros por género
freq
## sexo
## Female   Male 
##   9.82  90.18

Dado los datos anteriores, se tiene que de todo el set de datos, el 90.18% de los registros se categorizan por género masculino y el 9.82% restante por género femenino.

Bajo los porcentajes mencionados, como primer indicador se ve reflajado una desigualdad o disparidad fuerte de genero referente a la cantidad de hombres versus la mujeres que ejercen como profesores en sus diferentes rangos y disciplinas.

Conforme a esto, se realiza un análisis exploratorio de los datos contenidos en el dataset, para identificar ciertas variables en función del salario y también se crean otras variables como factores para segmentar los datos por el sexo, el rango y la disciplina. Los niveles de los factores corresponden a los requeridos por el ejercicio.

  • rank = Factor ordinal con niveles AssocProf AsstProf Prof
  • discipline = Factor con niveles A (“teórico”) o B (“aplicado”)

Otras variables se crean para calcular los promedios salariales por rango, disciplina y sexo.

Smin = min(salary)      # Se almacena el salario mas bajo del set de datos  
Smedia = mean(salary)   # Se almacena el promedio de los salarios del set de datos
SMax = max(salary)      # Se almacena el salario mas alto del set de datos


#Se crea un factor para el genero/sexo (Esta linea fue ejecutada en pasos anteriores)
#sexo = factor(sex, levels=c("Female","Male"))
salarybysex = tapply(salary, sexo, mean)                 #Se almacena en un arreglo el salario promedio por sexo

#Se crea un factor para el rango
Rango = factor(rank, levels=c("Prof","AssocProf","AsstProf"))
salarybyrank = tapply(salary, Rango, mean)               #Se almacena en un arreglo el salario promedio por rango

#Se crea un factor para la disciplina
disciplina = factor(discipline, levels=c("A","B"))
salarybydiscipline = tapply(salary, disciplina, mean)    #Se almacena en un arreglo el salario promedio por disciplina

#Se crea un factor para la disciplina y el sexo
sexo_disciplina = factor(paste(sexo,disciplina), levels=c("Female A", "Male A", "Female B", "Male B"))
salarybysex_dis = tapply(salary, sexo_disciplina, mean)  #Se almacena en un arreglo el salario promedio por género y disciplina

#Se crea un factor para el rango y el sexo
sexo_rango = factor(paste(sexo,Rango), levels=c("Female Prof","Male Prof","Female AssocProf","Male AssocProf","Female AsstProf","Male AsstProf"))
salarybysex_rango = tapply(salary, sexo_rango, mean)    #Se almacena en un arreglo el salario promedio por género y rango

#Cambiando los datos al formato de columnas para separar los salarios por género
sex_m = salary[sexo == "Male"]                
sex_f = salary[sexo == "Female"]

El gráfico exploratorio inicial se basa en graficar los datos en un Histograma, Boxplot y un gráfico de dispersión de los salarios según el género (Femenino o Masculino):

1. Gráficos de Diferencia Salarial por Sexo (Femenino y Masculino)

#Preparando la ventana gráfica
Ma = matrix(c(1,1,1,1,2,2,2,2),nrow=2,byrow = T)  # matriz con la ubicación de 2 gráficos  
windows(height=10, width=10)                 # Nueva ventana gráfica  
layout(Ma)                                    # partición dela ventana gráfica según M

# Histogramas de frecuencia de salarios género M con boxplot - igualado el rango en el eje X.

hist(sex_m, freq=T,main="Salary by Sex: Men",xlab="Salary US($)",xlim=range(salary))
par(new = TRUE)
x_m = boxplot(sex_m,horizontal=TRUE,ylim=c(55000,240000),axes=FALSE,col = rgb(0, 0.8, 1, alpha = 0.5))
abline(v=salarybysex[2],lty=3,col="red",lwd=2)
stripchart(sex_m, vertical = FALSE, method = "jitter",pch = 20, add = TRUE)
legend("top", legend = "Salary mean Male", col="red",lty=3, lwd=2, cex=1.1)

# Histogramas de frecuencia de salarios género F con boxplot - igualado el rango en el eje X.

hist(sex_f, freq=T,main="Salary by Sex: Women",xlab="Salary US($)",xlim=range(salary))
par(new = TRUE)
x_w = boxplot(sex_f,horizontal=TRUE,ylim=c(55000,240000),axes=FALSE,col = rgb(0, 0.8, 1, alpha = 0.5))
abline(v=salarybysex[1],lty=4,col="red",lwd=2)
stripchart(sex_f, vertical = FALSE, method = "jitter",pch = 20, add = TRUE)
legend("top", legend = "Salary mean Female", col="red", lty=4, lwd=2, cex=1.1)

Observaciones

Conforme a las representaciones gráficas anteriormente ilustradas se puede identificar lo siguiente:

  • El promedio del salario masculino de manera general es superior al femenino
  • La frecuencia de los datos salariales masculinos son menos dispersos (Datos homogéneos) que los del género femenino (Datos heterogéneos)
  • En el género masculino existen datos atípicos por encima del bigote superior del boxplot a diferencia del género femenino que no presenta datos con similar comportamiento.
  • Ambos grupos salariales presentan distribución asimétrica, sin embargo, en el género femenino la mayor frecuencia de los datos se sitúa por fuera del rango ITQ respecto al del género masculino, en donde la mayor frecuencia se encuentra entre el rango ITQ

Con todas estas observaciones se consolidad la hipótesis que daría respuesta a la primer pregunta planteada en el plan de análisis, conforme a que además de existe una desigualdad de género frente a la cantidad de hombres y mujeres que ejercen como profesores, también se presenta una diferencia muy marcada en terminos salariales. Sin embargo, es conveniente profundizar en el análisis de tal forma que se revise también, si existe una difrencia salarial desagregando esta variable en función de los Rangos y Disciplinas

Para esto, se construyen 2 boxplot con su respectivo gráfico de dispersión unidimensional de la siguiente manera:

  • Salarios por género y disciplina
  • Salarios por género y rango

2. Gráficos de Diferencia Salarial por género, disciplina y rango

M = matrix(c(1,1,1,2,2,2,1,1,1,2,2,2), byrow=T , nrow=2)     #matriz con disposición de los plots
layout(M)

#BOXPLOT DE SALARIO POR SEXO Y DISCIPLINA
y_y = boxplot(salary~sexo*disciplina,ylim=c(55000,240000),xaxt = "n",main="Salary by Sex and Discipline",xlab="",ylab="Salary (US$)",col= c("Pink","Snow3"))
stripchart(salary~sexo*disciplina, vertical = TRUE, method = "jitter",pch = 20, add = TRUE)

for (j in 1:4){segments(x0 = j - 0.4, y0 = salarybysex_dis[j], x1 = j + 0.4, y1 = salarybysex_dis[j], col = if (j==1 | j==3){"red"} else {"Blue"}, lwd = 2)}
for (j in 1:4){points(x= j, y= salarybysex_dis[j], col = if (j==1 | j==3){"red"} else {"Blue"}, pch = 20)}

tick <- seq_along(y_y$names)
axis(1, at = tick, labels = c("F_A", "M_A", "F_B", "M_B"))
legend("topleft", c("Salary mean by Female/Discipline", "Salary mean by Male/Discipline"), border="black", col=c("red","Blue"), lwd = 2, cex=1)


#BOXPLOT DE SALARIO POR SEXO Y RANGO
z = boxplot(salary~sexo*Rango,ylim=c(55000,240000),xaxt = "n",main="Salary by Sex and Rank",xlab="",ylab="Salary (US$)",col= c("Pink","Snow3"))
stripchart(salary~sexo*Rango, vertical = TRUE, method = "jitter",pch = 20, add = TRUE)

for (k in 1:6){segments(x0 = k - 0.4, y0 = salarybysex_rango[k], x1 = k + 0.4, y1 = salarybysex_rango[k], col = if (k==1 | k==3 | k==5){"red"} else {"Blue"}, lwd = 2)}
for (k in 1:6){points(x= k, y= salarybysex_rango[k],  col = if (k==1 | k==3 | k==5){"red"} else {"Blue"}, pch = 20)}

tick <- seq_along(z$names)
axis(1, at = tick, labels = F)
text(tick+0.4, par("usr")[3], z$names, srt = 25, xpd = T, adj=1.3)
legend("topright", legend = c("Salary mean by Female/Rank", "Salary mean by Male/Rank"), border="black", col=c("red","Blue"), lwd = 2, cex=0.8)

Observaciones

Dado estos gráficos se evidencia lo siguiente:

Gráficos - Salary by Sex and Discipline
  • Se sigue presentando la tendencia, que el promedio de los salarios de los hombres, es superior al de las mujeres en ambas disciplinas (A y B)
  • Los salarios de las mujeres categorizados por disciplina, siguen siendo más dispersos en comparación de la dispersión de datos de los hombres.
  • Se presentan nuevamente salarios atípicos en el género masculino para ambas disciplinas, estando estos datos por encima de los bigotes superiores de cada caja
Gráficos - Salary by Sex and Rank
  • Al igual que los dos análisis anteriores, se repite nuevamente que los promedios salariales del género masculino son superiores al de las mujeres en sus respectivos rangos (Prof, AssocProf, AsstProf)
  • En el gráfico de salarios por sexo y rango se puede observar que los datos de los salarios de las mujeres se encuentran considerablemente dispersos (Heterogéneos) para para todos los rangos
  • En el rango de profesor asistente con género femenino presenta el rango ITQ mas pequeño de todos los boxplot en donde se presentan una serie de datos atípicos por debajo y por encima de los bigotes.Incluso, Este comportamiento de los datos permite plantear un nueva pregunta en el ejercicio relacionada directamente con una brecha salarial entre el mismo género femenino por rangos y disciplinas.

3. Gráficos de Diferencia Salarial Años de haberse graduado como Phd y años de Servicio

# Función para agregar coeficientes de correlación
panel.cor <- function(x, y, digits = 2, prefix = "", cex.cor) {
  usr <- par("usr")
  on.exit(par(usr))
  par(usr = c(0, 1, 0, 1))
  Cor <- abs(cor(x, y)) # correlación con función abs
  txt <- paste0(prefix, format(c(Cor, 0.123456789), digits = digits)[1])
  if(missing(cex.cor)) {
    cex.cor <- 0.4 / strwidth(txt)
  }
  text(0.5, 0.5, txt,
       cex = 1 + cex.cor * Cor) # Escala el texto al nivel de correlación
}
Salaries_2 = select(Salaries,-rank,-discipline,-sex)

# Dibujamos la matriz de correlación
pairs(Salaries_2,upper.panel = panel.cor,lower.panel = panel.smooth)    # Panel de correlación

Observaciones

Se procede a calcular el coeficiente de correlación de Pearson (r) por cada par de variables [Años desde haberse graduado del Doctorado y Años de servicio] y el coeficiente de cada variable respecto al salario, determinando así, cuáles de estas presentan una relación directa (r igual o cercano a 1), cuales tienen una relación inversa (r igual o cercano a -1) o cuales no presentan una relación alguna (r igual o cercano a 0) observando de esta manera que:

  • El salario frente a las variables Años desde haberse graduado del Doctorado y Años de servicio presentan una correlación positiva débil con coeficientes de r=0.42 y r=0.33, respectivamente.
  • Las variables Años desde haberse graduado del Doctorado y Años de servicio presentan una correlación positiva fuerte con r=0.91,

Conclusiones

  1. Iniciando el análisis al set de datos se encuentra que, de 397 registros en total, 358 tienen categoría masculina y 39 restantes categoría femenina. En principio existe una frecuencia de datos por genero muy dispareja en donde por cada mujer con doctorado hay aproximadamente 9 hombres con el mismo título. Este tipo de comportamiento en los datos permite al analista suponer solo con datos exploratorios a nivel de tendencia y dispersión que existe una brecha salarial en el estudio.
  2. Conforme a los interrogantes estipulados en el plan de analisis se puede concluir dando respuesta a la primer pregunta, qué sí existe una diferencia salarial entre los homres y las mujeres, según la comparación de los promedios salariales de manera general, por clasificación del rango y por clasificación de disciplinas.
  3. La diferencia salarial puede atribuirse en gran parte al genero de los profesores, dado que al evaluar la correlación del salario con las variables Años desde haberse graduado del Doctorado y Años de servicio, se evidencia que aunque la correlación es directa, presenta un coeficiente positivo débil.