setwd("/home/daniel/Dropbox/U CENTRAL/02 2020/02 Segundo semestre 2020/Estratificación y desigualdad social/Clases/10")
rm(list=ls())
library(foreign)
library(dplyr)
library(spatstat)
library(texreg)
library(ggplot2)
library(jtools)
library(sjPlot)
NOTA: Esto es sólo un ejercicio demostrativo, los resultados no deben ser tomado como totalmente válidos.
Cargar base de datos original.
Seleccionar variables a utilizar y casos con 15 años o más.
casen2017 <- select(filter(data2017, edad >= 15), c(folio, o, id_vivienda, hogar, region,
provincia, comuna, zona, expr, varstrat,
varunit, sexo, educ, edad,
ytotcor)) # seleccionar y filtrar
casen2017 <- rename(casen2017,ingreso=ytotcor) #renombrar
rm(data2017, metadata)
Nivel educacional
levels(casen2017$educ) # Ver niveles
## [1] "Sin Educ. Formal" "Básica Incom."
## [3] "Básica Compl." "M. Hum. Incompleta"
## [5] "M. Téc. Prof. Incompleta" "M. Hum. Completa"
## [7] "M. Téc Completa" "Técnico Nivel Superior Incompleta"
## [9] "Técnico Nivel Superior Completo" "Profesional Incompleto"
## [11] "Postgrado Incompleto" "Profesional Completo"
## [13] "Postgrado Completo" "NS/NR"
#Recodificar
casen2017$educ <- as.integer(casen2017$educ)
casen2017$educ[casen2017$educ == 1] <- 1
casen2017$educ[casen2017$educ == 2] <- 2
casen2017$educ[casen2017$educ == 3] <- 3
casen2017$educ[casen2017$educ == 4] <- 4
casen2017$educ[casen2017$educ == 5] <- 4
casen2017$educ[casen2017$educ == 6] <- 5
casen2017$educ[casen2017$educ == 7] <- 5
casen2017$educ[casen2017$educ == 8] <- 6
casen2017$educ[casen2017$educ == 9] <- 7
casen2017$educ[casen2017$educ == 10] <- 6
casen2017$educ[casen2017$educ == 11] <- 7
casen2017$educ[casen2017$educ == 12] <- 7
casen2017$educ[casen2017$educ == 13] <- 7
casen2017$educ[casen2017$educ == 14] <- NA
table(casen2017$educ)
##
## 1 2 3 4 5 6 7
## 4713 23370 19051 27553 51501 18561 29309
casen2017$educ <- as.factor(casen2017$educ)
levels(casen2017$educ) <- c("Sin educación formal", "Básica incompleta", "Básica completa", "Media incompleta", "Media completa", "Superior incompleta", "Superior completa")
#Tabla con variable recodificada
table(casen2017$educ, useNA = "always")
##
## Sin educación formal Básica incompleta Básica completa
## 4713 23370 19051
## Media incompleta Media completa Superior incompleta
## 27553 51501 18561
## Superior completa <NA>
## 29309 1018
Sexo
table(casen2017$sexo, useNA = "always") #Todo bien
##
## Hombre Mujer <NA>
## 82136 92940 0
Ingreso
class(casen2017$ingreso) #qué clase de vector? numérico
## [1] "numeric"
table(is.na(casen2017$ingreso)) #Hay casos perdidos? 37167
##
## FALSE TRUE
## 137909 37167
boxplot(casen2017$ingreso) #Diagrama de cajas con outliers
#Gran cantidad de puntos fuera de los bigotes, alerta presencia de valores atípicos.
#Se decide identificar valores atípicos (outliers) y dejarlos como NA
#función para identificar valores atípicos como casos más distantes que 1.5 veces el rango intercuantilico (IQR) y reemplazarlos por NA.
outliersNA <- function(x, na.rm = TRUE, ...) {
qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)
H <- 1.5 * IQR(x, na.rm = na.rm)
y <- x
y[x < (qnt[1] - H)] <- NA
y[x > (qnt[2] + H)] <- NA
y
}
#remover outliers
casen2017$ingreso.corregido <- outliersNA(casen2017$ingreso, na.rm = TRUE)
boxplot(casen2017$ingreso.corregido) #Diagrama de cajas sin outliers
summary(casen2017$ingreso) #descriptivos con outliers
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 83 140000 295038 447751 500000 84700000 37167
summary(casen2017$ingreso.corregido) #descriptivos sin outliers
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 83 125371 276000 313627 420000 1040000 47267
##Análisis
#Descriptivo
Ingreso según nivel educacional.
boxplot(ingreso.corregido ~ educ , data = casen2017, ylab = "Ingreso total", xlab = "Nivel educacional")
Ingreso según sexo.
boxplot(ingreso.corregido ~ sexo , data = casen2017, ylab = "Ingreso total", xlab = "Sexo")
#Inferencial
Primero, analizamos brechas de ingreso según educación y sexo por separado.
M1 <- lm(ingreso.corregido ~ 1 + educ + sexo + edad + zona + region, data = casen2017, weights = expr) #Estimación
screenreg(M1) # Reporte tabla
##
## ======================================================================
## Model 1
## ----------------------------------------------------------------------
## (Intercept) 213495.88 ***
## (5788.98)
## educBásica incompleta 53440.98 ***
## (3630.84)
## educBásica completa 85429.97 ***
## (3697.11)
## educMedia incompleta 89906.87 ***
## (3659.98)
## educMedia completa 176061.92 ***
## (3543.45)
## educSuperior incompleta 178338.59 ***
## (3991.06)
## educSuperior completa 364904.80 ***
## (3685.92)
## sexoMujer -111626.42 ***
## (1119.01)
## edad 901.67 ***
## (33.55)
## zonaRural -27586.22 ***
## (1767.50)
## regionRegión de Antofagasta 24438.66 ***
## (5391.48)
## regionRegión de Atacama -4941.58
## (6231.53)
## regionRegión de Coquimbo -55807.39 ***
## (4988.67)
## regionRegión de Valparaíso -40248.60 ***
## (4527.19)
## regionRegión del Libertador Gral. Bernardo O’Higgins -36304.86 ***
## (4831.74)
## regionRegión del Maule -54086.87 ***
## (4762.70)
## regionRegión del Biobío -58039.09 ***
## (4571.42)
## regionRegión de La Araucanía -68987.78 ***
## (4793.29)
## regionRegión de Los Lagos -44316.90 ***
## (4858.28)
## regionRegión de Ayséndel Gral. Carlos Ibáñez del Campo 17048.49 *
## (8392.59)
## regionRegión de Magallanes y de la Antártica Chilena 29087.53 ***
## (7346.48)
## regionRegión Metropolitana de Santiago -8919.88 *
## (4286.14)
## regionRegión de Los Ríos -52746.11 ***
## (5654.64)
## regionRegión de Arica y Parinacota -42147.21 ***
## (7293.82)
## regionRegión de Ñuble -76163.38 ***
## (5352.37)
## ----------------------------------------------------------------------
## R^2 0.26
## Adj. R^2 0.26
## Num. obs. 127050
## ======================================================================
## *** p < 0.001; ** p < 0.01; * p < 0.05
Gráfico valores predichos por nivel educacional.
effect_plot(M1, pred = educ, interval = TRUE)
Gráfico valores predichos por sexo.
effect_plot(M1, pred = sexo, interval = TRUE)
Luego, analizamos si hay interacción entre sexo y nivel educacional (interseccionalidad).
M2 <- lm(ingreso.corregido ~ 1 + educ + sexo + sexo*educ + edad + zona + region,
data = casen2017, weights = expr) #Estimación
screenreg(list(M1,M2)) # Reporte tabla
##
## =====================================================================================
## Model 1 Model 2
## -------------------------------------------------------------------------------------
## (Intercept) 213495.88 *** 180421.99 ***
## (5788.98) (6765.86)
## educBásica incompleta 53440.98 *** 81665.17 ***
## (3630.84) (5375.83)
## educBásica completa 85429.97 *** 129439.97 ***
## (3697.11) (5411.47)
## educMedia incompleta 89906.87 *** 128666.18 ***
## (3659.98) (5330.38)
## educMedia completa 176061.92 *** 218689.36 ***
## (3543.45) (5142.97)
## educSuperior incompleta 178338.59 *** 197577.87 ***
## (3991.06) (5701.76)
## educSuperior completa 364904.80 *** 375193.47 ***
## (3685.92) (5392.15)
## sexoMujer -111626.42 *** -52382.22 ***
## (1119.01) (6631.04)
## edad 901.67 *** 913.60 ***
## (33.55) (33.52)
## zonaRural -27586.22 *** -27749.52 ***
## (1767.50) (1765.44)
## regionRegión de Antofagasta 24438.66 *** 24357.14 ***
## (5391.48) (5381.07)
## regionRegión de Atacama -4941.58 -4602.45
## (6231.53) (6219.52)
## regionRegión de Coquimbo -55807.39 *** -55676.71 ***
## (4988.67) (4979.09)
## regionRegión de Valparaíso -40248.60 *** -39927.15 ***
## (4527.19) (4518.52)
## regionRegión del Libertador Gral. Bernardo O’Higgins -36304.86 *** -36254.45 ***
## (4831.74) (4822.44)
## regionRegión del Maule -54086.87 *** -54046.04 ***
## (4762.70) (4753.63)
## regionRegión del Biobío -58039.09 *** -58068.07 ***
## (4571.42) (4562.70)
## regionRegión de La Araucanía -68987.78 *** -69379.84 ***
## (4793.29) (4784.27)
## regionRegión de Los Lagos -44316.90 *** -44966.88 ***
## (4858.28) (4849.06)
## regionRegión de Ayséndel Gral. Carlos Ibáñez del Campo 17048.49 * 16779.60 *
## (8392.59) (8376.39)
## regionRegión de Magallanes y de la Antártica Chilena 29087.53 *** 29207.83 ***
## (7346.48) (7332.33)
## regionRegión Metropolitana de Santiago -8919.88 * -8733.13 *
## (4286.14) (4277.97)
## regionRegión de Los Ríos -52746.11 *** -52953.81 ***
## (5654.64) (5643.90)
## regionRegión de Arica y Parinacota -42147.21 *** -41769.41 ***
## (7293.82) (7279.75)
## regionRegión de Ñuble -76163.38 *** -76222.07 ***
## (5352.37) (5342.22)
## educBásica incompleta:sexoMujer -51620.01 ***
## (7276.50)
## educBásica completa:sexoMujer -82523.37 ***
## (7380.85)
## educMedia incompleta:sexoMujer -72011.13 ***
## (7233.15)
## educMedia completa:sexoMujer -79473.55 ***
## (6914.55)
## educSuperior incompleta:sexoMujer -32970.72 ***
## (7655.45)
## educSuperior completa:sexoMujer -21047.14 **
## (7189.01)
## -------------------------------------------------------------------------------------
## R^2 0.26 0.27
## Adj. R^2 0.26 0.27
## Num. obs. 127050 127050
## =====================================================================================
## *** p < 0.001; ** p < 0.01; * p < 0.05
Gráfico con valores predichos con interacción sexo y educación.
plot_model(M2, type = "int")
¿Qué conclusiones sutantivas podemos extraer de este ejercicio?