Una herramienta para estudiar empíricamente la relación entre la educación y los salarios son las llamadas ecuaciones de Mincer. La ecuación siguiente es la especificación más básica de una ecuación de ingresos.
ln 𝑤 = 𝛽0 + 𝛽1𝑒𝑑𝑢 + 𝛽2𝑒𝑥𝑝 + 𝛽3𝑒𝑥𝑝2 + 𝛽4𝑚𝑢𝑗𝑒𝑟 + 𝜇 (1)
donde: W son los ingresos de la ocupación principal por hora, edu son los niveles de educación (factor con seis categorías), exp son los años de experiencia, exp^2 son los años de experiencia al cuadrado, mujer es una variable dicotómica que indica con 1 si se trata de una mujer y 0 en caso contrario y 𝜇 es un término de error.
El objetivo de este informe es estimar e interpretar ecuaciones de ingresos utilizando información proveniente de la Encuesta Permanente de Hogares (EPH). La EPH es un programa nacional de Argentina de producción sistemática y permanente de indicadores sociales que lleva a cabo el Instituto Nacional de Estadística y Censos (INDEC) con las direcciones provinciales de estadística (DPE), la cual tiene por objeto relevar las características sociodemográficas y socioeconómicas de la población.
La base de datos eph22.txt cuenta con información extraída de la EPH correspondiente al cuarto trimestre de 2022 para la submuestra de individuos entre 18 y 65 años que incluye las siguientes variables:
La EPH no incluye los años de experiencia laboral por lo cual se puede utilizar como proxy los años de experiencia potencial en el mercado laboral, calculada como la edad menos los años de educación, menos los años de la iniciación en el sistema educativo (siendo 6 por convención).
Vamos a trabajar con la base de datos de la EPH del cuarto trimestre de 2022, la importamos y filtramos de manera que:
Cambiamos el nombre de “NIVEL_ED” a “edu” para simplificar.
base <- read.csv("eph22.txt", sep=";")
base <- base %>%
mutate(CH14 = ifelse(is.na(CH14) | CH14==99, 0, CH14)) %>%
na.omit(PP3E_TOT) %>%
filter(AGLOMERADO == 09,
P21 > 0,
PP3E_TOT > 0,
CH12<9,
CH13<3,
CH14!=98) %>%
rename(edu = NIVEL_ED)
Para calcular la experiencia potencial primero debemos calcular los años que esa persona estudió.
Vamos a crear una variable “anoseduc” en la que:
Si finalizó (CH13) el nivel más alto que cursó (CH12) entonces se le
asignan esa cantidad de años estudiados.
Y si no lo finalizó se le suma al nivel más alto que si finalizó los
años que aprobó (CH14) del que no finalizó.
Creamos una función para calcularlo
calcular_anoseduc <- function(ch12, ch13, ch14) {
# Definimos los anios de estudio por nivel educativo (en nuestro aglomerado primaria son 6)
niveles_anioscumplidos <- c(0, 6, 9, 12, 12, 15, 17, 19)
niveles_aniosnocumplidos <-c(0, 0, 0, 6, 9, 12, 12, 17)
# Calcular los años de estudio basados en las condiciones
if (ch13 == 1) {
anoseduc <- niveles_anioscumplidos[ch12]
} else {
anoseduc <- niveles_aniosnocumplidos[ch12] + ch14
}
return(anoseduc)
}
# Aplicar la funcion a la base para crear la columna
base$anoseduc <- mapply(
calcular_anoseduc,
base$CH12,
base$CH13,
base$CH14
)
Siguiendo con las variables necesarias para el modelo:
base$mujer<-ifelse(base$CH04==2,1,0)
base$edu1<-ifelse(base$edu==1,1,0)
base$edu2<-ifelse(base$edu==2,1,0)
base$edu3<-ifelse(base$edu==3,1,0)
base$edu4<-ifelse(base$edu==4,1,0)
base$edu5<-ifelse(base$edu==5,1,0)
base$edu6<-ifelse(base$edu==6,1,0)
base <- base %>%
mutate(
exp = CH06 - (anoseduc + 6),
w = (P21 / (4 * PP3E_TOT)))
Salarios por hora (w).
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 36.46 520.83 833.33 973.21 1250.00 5208.33
Experiencia potencial (exp).
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.00 15.00 23.00 23.55 32.00 54.00
Distribución de salarios por hora
ggplot(data = base) +
aes(x = w, weights = PONDIIO) +
geom_histogram(fill = "salmon", color = "black") +
labs(x = "Salario por hora (w)") +
labs(y = "Frecuencia") +
labs(title = "Distribución de salarios por hora") +
labs(subtitle = "En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022") +
labs(caption = "Fuente: Elaboración propia en base a EPH-INDEC")
Distribución de los años de experiencia potencial
ggplot(data = base) +
aes(x = exp, weights = PONDERA) +
geom_histogram(fill = "lightblue", color = "black") +
labs(x = "Años de experiencia potencial") +
labs(y = "Frecuencia") +
labs(title = "Distribución de los años de experiencia potencial") +
labs(subtitle = "En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022") +
labs(caption = "Fuente: Elaboración propia en base a EPH-INDEC")
Frecuencia del máximo nivel de educación alcanzado
base1 <- base %>%
select(w, edu, mujer, PONDERA)
base1$edu <- recode_factor(base1$edu,
`1` = "Primario Incompleto",
`2` = "Primario Completo",
`3` = "Secundario Incompleto",
`4` = "Secundario Completo",
`5` = "Universitario Incompleto",
`6` = "Universitario Completo")
ggplot(data = base1) +
aes(x = edu, weights = PONDERA) +
geom_histogram(fill = "lightgreen", color = "black", stat = "count") +
theme(axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(x = "Máximo nivel de educación alcanzado") +
labs(y = "Frecuencia") +
labs(title = "Frecuencia del máximo nivel de educación alcanzado") +
labs(subtitle = "En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022") +
labs(caption = "Fuente: Elaboración propia en base a EPH-INDEC")
Distribución del máximo nivel de educación alcanzado
pie_edu <- wtd.table(base$edu, weights = base$PONDERA)
porcentajesedu <- round(pie_edu / sum(pie_edu) * 100, 2)
etiquetaedu <- paste(porcentajesedu, "%", sep = "")
pie(pie_edu, main = "Distribución del máximo nivel de educación alcanzado", cex.main = 1.0, labels = etiquetaedu, radius = 0.8, border = "black", col = rainbow(length(pie_edu)))
title(xlab = "Fuente: Elaboración propia en base a EPH-INDEC", line = 3, cex.lab = 0.8)
mtext("En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022", side = 3, line = 0.65, cex = 0.8)
legend("topleft", c("Primario incompleto", "Primario completo","Secundario incompleto", "Secundario completo", "Superior universitario incompleto", "Superior universitario completo"), cex = 0.7, fill = rainbow(length(pie_edu)))
Distribución de hombres y mujeres en la muestra
pie_mujer <- table(base$mujer)
porcentajes=round(pie_mujer/sum(pie_mujer)*100,2)
etiqueta <- paste(porcentajes,"%",sep="")
pie(pie_mujer, main= "Distribución de hombres y mujeres en la muestra", cex.main=1.2, labels=etiqueta, radius=.8, border="black", col=c("red", "blue"))
mtext("En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022", side = 3, line = 0.65, cex = 0.8)
legend("topright",c("Hombre", "Mujer"), cex = 0.8, fill=c("red", "blue"))
title(xlab = "Fuente: Elaboración propia en base a EPH-INDEC", line = 3, cex.lab = 0.8)
Boxplot del salario por hora según máximo nivel de estudios alcanzado
ggplot(data = base1, aes(x = edu, y = w)) +
geom_boxplot(aes(fill = edu, group = edu), color = "black") +
labs(x = "Máximo nivel educativo alcanzado", y = "Salario por hora (w)",
title = "Boxplot del salario por hora según máximo nivel de estudios alcanzado",
subtitle = "En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022",
caption = "Fuente: Elaboración propia en base a EPH-INDEC") +
scale_y_continuous(limits = c(0, 5250)) +
coord_flip() +
theme_minimal()
Frecuencia por Nivel de Educación y Género
conteo <- base %>%
group_by(edu, mujer) %>%
summarise(count = n())
nombres_educacion <- c("Primario Incompleto", "Primario Completo",
"Secundario Incompleto", "Secundario Completo",
"Universitario Incompleto", "Universitario Completo")
ggplot(conteo, aes(x = factor(edu), y = count, fill = factor(mujer))) +
geom_bar(stat = "identity", position = "dodge") +
labs(x = "Nivel de Educación mas alto alcanzado", y = "Frecuencia", fill = "Género") +
scale_fill_manual(values = c("lightblue", "pink"), labels = c("Hombres", "Mujeres")) +
ggtitle("Frecuencia por Nivel de Educación y Género") +
scale_x_discrete(labels = nombres_educacion) +
labs(subtitle = "En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022") +
labs(caption = "Fuente: Elaboración propia en base a EPH-INDEC") +
theme(axis.text.x = element_text(angle = 45, hjust = 1))
Boxplot de Salario por Nivel de Educación y Género
ggplot(base, aes(x = factor(edu), y = w, fill = factor(mujer))) +
geom_boxplot(position = position_dodge(width = 0.8)) +
labs(x = "Nivel de Educación más alto alcanzado", y = "Salario por hora (w)", fill = "Género") +
scale_fill_manual(values = c("blue", "pink"), labels = c("Hombres", "Mujeres")) +
labs(subtitle = "En el aglomerado Comodoro Rivadavia - Rada Tilly en el cuarto trimestre de 2022") +
labs(caption = "Fuente: Elaboración propia en base a EPH-INDEC") +
scale_x_discrete(labels = nombres_educacion) +
theme(axis.text.x = element_text(angle = 45, hjust = 1))+
ggtitle("Boxplot de Salario por Nivel de Educación y Género")
modelo1 <- lm(log(w) ~ edu2+edu3+edu4+edu5+edu6+exp+I(exp^2)+mujer, data = base, weights = PONDIIO)
Estos son los resultados de la estimación:
##
## Call:
## lm(formula = log(w) ~ edu2 + edu3 + edu4 + edu5 + edu6 + exp +
## I(exp^2) + mujer, data = base, weights = PONDIIO)
##
## Weighted Residuals:
## Min 1Q Median 3Q Max
## -74.243 -5.682 -0.387 5.647 34.238
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 5.6631833 0.2295795 24.668 < 2e-16 ***
## edu2 0.2445547 0.2133178 1.146 0.252467
## edu3 0.5125422 0.2064326 2.483 0.013542 *
## edu4 0.5675329 0.2059295 2.756 0.006185 **
## edu5 0.8154589 0.2203202 3.701 0.000252 ***
## edu6 1.1663373 0.2183201 5.342 1.74e-07 ***
## exp 0.0347174 0.0102778 3.378 0.000820 ***
## I(exp^2) -0.0005263 0.0002026 -2.598 0.009818 **
## mujer -0.2033179 0.0706120 -2.879 0.004251 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 10.06 on 322 degrees of freedom
## Multiple R-squared: 0.2005, Adjusted R-squared: 0.1806
## F-statistic: 10.09 on 8 and 322 DF, p-value: 1.418e-12
B0 o intercepto: el salario por hora promedio del grupo base, hombres, sin experiencia y con educacion primaria incompleta, es 288.06 pesos argentinos (con todo lo demás constante).
B1: el salario por hora de personas que completaron la educación primaria (NIVEL_ED=2) es en promedio 27.71% mayor que aquellas que no lo completaron (con todo lo demás constante). No es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es menor.
B2: el salario por hora de personas que lograron un nivel educativo de secundario incompleto (NIVEL_ED=3) es en promedio 66.95% mayor que el del grupo base (con todo lo demás constante). Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
B3: el salario por hora de personas que completaron la educación secundaria (NIVEL_ED=4) es en promedio 76.39% mayor que el grupo base. (con todo lo demás constante). Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
B4: el salario por hora de personas que lograron un nivel educativo superior universitario incompleto (NIVEL_ED=5) es en promedio 126.02% mayor que el grupo base (con todo lo demás constante). Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
B5: el salario por hora de personas que completaron la educación superior universitaria (NIVEL_ED=6) es en promedio 221.02% mayor que el grupo base (con todo lo demás constante). Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
B6: ante un aumento de 1 en los años de experiencia potencial el salario por hora promedio aumenta en un 3.47% (con todo lo demás constante). Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
B7: ante un aumento de 1 en el cuadrado de la experiencia potencial el salario por hora promedio aumenta en un -0.05% (con todo lo demás constante). Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
B8: Siguiendo el método logarítmico de aproximación y manteniendo los demás factores constantes el salario por hora de las mujeres es en promedio 18.4% inferior al de los hombres. Es estadísticamente significativo al nivel de significancia del 0.05, ya que su p-valor es mayor.
Es importante considerarlo principalmente para saber si se distribuyen normalmente o no ya que es un supuesto clave y requisito para hacer inferencia.
Para saber que tipo de distribucion siguen los residuos vamos a hacer un test de normalidad, en este caso Jarque-Bera:
Planteamos las hipótesis para la normalidad de los errores:
H0: Los errores (\(\mu\)) se distribuyen normalmente (\(\mu \sim N(\mu, \sigma^2)\))
H1: Los errores (\(\mu\)) no se distribuyen normalmente (\(\mu \not\sim N(\mu, \sigma^2)\))
Determinamos un alpha o nivel de significancia de 0.05
Regla de decisión: si el p-valor asociado a la prueba es menor al nivel de significancia -> Rechazamos H0
Test
residuos <- residuals(modelo1)
resultado_test <- jarque.bera.test(residuos)
##
## Jarque Bera Test
##
## data: residuos
## X-squared = 79.193, df = 2, p-value < 2.2e-16
Decisión Como el p-valor es menor que el nivel de significancia elegido (0.05), se considera que hay evidencia suficiente para rechazar la hipótesis nula y concluir que los residuos no se distribuyen normalmente.
Histograma
hist(x = residuos, main = "Histograma de residuos", xlab = "Residuos", ylab = "Frecuencia")
Graficamente los residuos parecen seguir una forma levemente asimétrica hacia la izquierda.