Para el ejercicio de clase, vamos a especificar mejor del modelo de regresión lineal múltiple para explicar las horas de trabajo doméstico. Para ello, vamos a incluir el estado civil del encuestado (P22). Sin embargo, para evitar tener pocas observaciones en algunas de lca categorias, vamos a recodificar la variable.
En esta lección utilizaremos los datos de la encuesta nacional sobre roles de género realizada por el IOP - PUCP en el 2012.
La base de datos, ficha técnica y cuestionario pueden descargase desde el siguiente enlace: BD Genero 2012
https://www.dropbox.com/s/dy9o26c1nl1sxql/GENERO_IOP_2012.zip?dl=0
Cargar paquetes
library(foreign)
library(stargazer)
Cargar data de SPSS (“sav”)
genero12 <- read.spss("IOP_1212_01_B.sav", to.data.frame = T , use.value.labels = T)
Exploración de data
names(genero12)
## [1] "NRO" "SEXO" "GEDAD" "EDAD" "P1" "P2" "P3A"
## [8] "P3B" "P3C" "P3D" "P4A" "P4B" "P4C" "P5"
## [15] "P6A" "P6B" "P6C" "P6D" "P6E" "P7A" "P7B"
## [22] "P8A" "P8B" "P9A" "P9B" "P9C" "P9D" "P9E"
## [29] "P9F" "P10" "P10A" "P11" "P12" "P13A" "P13B"
## [36] "P14" "P15" "P16" "P17" "P18A" "P18B" "P18C"
## [43] "P18D" "P19A" "P19B" "P20" "P21" "P22" "P22A"
## [50] "P23" "P24" "P25" "P26" "P27" "P28A" "P28B"
## [57] "P29" "P30" "P31A" "P31B" "P31C" "P31D" "P31E"
## [64] "P31F" "P32" "P33A" "P33B" "P33C" "P33D" "P34"
## [71] "P35A" "P35B" "P35C" "P35D" "P35E" "P35F" "P35G"
## [78] "P36" "P37" "P38" "P39" "P40" "P41" "P42"
## [85] "P43" "P44" "P44A" "P44B" "P44C" "P45A" "P45B"
## [92] "P46A" "P46B" "P47" "P48" "P48A" "P48B" "P48C"
## [99] "P49" "P50A" "P50B" "P50C" "P50D" "P50E" "P50F"
## [106] "P50G" "P50H" "P51A" "P51B" "P51C" "P51D" "P51E"
## [113] "P51F" "P51G" "P51H" "P51I" "P51J" "P51K" "P52A"
## [120] "P52B" "P52C" "P52D" "P52E" "P52F" "P52G" "P53A"
## [127] "P53B" "P53C" "P53D" "P53E" "P53F" "P53G" "P54A"
## [134] "P54B" "P54C" "P54D" "P54E" "P55A" "P55B" "P55C"
## [141] "P55D" "P55E" "P55F" "P56" "P57" "P58" "P59A"
## [148] "P59B" "P59C" "P59D" "P59E" "P59F" "P59G" "P59H"
## [155] "P59I" "P60A" "P60B" "P60C" "P60D" "P60E" "P60F"
## [162] "P61A" "P61B" "P61C" "P61D" "P61E" "P62A" "P62B"
## [169] "P62C" "P63A" "P63B" "P63C" "P64A" "P64B" "P64C"
## [176] "P64D" "P64E" "P64F" "P64G" "P64H" "P65A" "P65B"
## [183] "P65C" "P65D" "P65E" "P65F" "P65G" "P65H" "P66A"
## [190] "P66B" "P67A" "P67B" "P67C" "P68" "P69" "P70"
## [197] "P71" "P72" "P72A" "P73" "P73A" "P74" "P75"
## [204] "P76" "P77" "P78" "P79" "P80" "P81A" "P81B"
## [211] "P81C" "P81D" "P81E" "P82" "P87" "P89" "P90"
## [218] "P92" "Región" "Ambito" "TOTALA" "DOMINIO" "NSEGrup" "sumaNSE"
## [225] "NSE"
De qué pedende de que una persona realiza más horas de trabajo doméstico
El objetivo del primer ejercicio es calcular un modelo de regresión lineal múltiple para dar cuenta de la cantidad de horas de trabajo doméstico que realizan las personas (P19A).
En este caso, vamos a partir de un modelo que considera como variables explicativas del modelo a los factores sociodemográficos: edad (“EDAD”), sexo (“SEXO”) y NSE de la persona (“NSEGrup”).
En este caso, vamos a introducir las variables de manera escalonada para evaluar si existen posibles problemas de colinealidad.
Cálculo de modelos 1, 2 y 3
modelo1 <- lm(P19A ~ EDAD, genero12)
modelo2 <- lm(P19A ~ EDAD + SEXO, genero12)
modelo3 <- lm(P19A ~ EDAD + SEXO + NSEGrup, genero12)
Preguntas
Evalúe si el ajuste de los modelos es significativo
Evalúe si es pertinente mantener todas las variables propuestas
¿Síntomas de colinealidad?
¿Cuántas más/menos horas a la semana realiza una mujer en comparación con un hombre?
¿Cuántas más/menos horas a la semana realiza una persona del NSE C en comparación con el A/B?
¿Cuántas más/menos horas a la semana realiza una persona del NSE C en comparación con el D/E?
Formato
stargazer(modelo1, modelo2, modelo3, type = "text",
omit.stat=c("ser","f"),
model.numbers = FALSE, object.names = TRUE,
star.cutoffs = c(0.05, 0.01, 0.001))
##
## ============================================
## Dependent variable:
## -------------------------------
## P19A
## modelo1 modelo2 modelo3
## --------------------------------------------
## EDAD 0.080* 0.096** 0.089*
## (0.040) (0.037) (0.036)
##
## SEXOFemenino 18.644*** 18.566***
## (1.141) (1.136)
##
## NSEGrupC -0.565
## (1.601)
##
## NSEGrupD/E 3.718*
## (1.461)
##
## Constant 20.073*** 9.921*** 8.600***
## (1.695) (1.654) (1.980)
##
## --------------------------------------------
## Observations 1,201 1,201 1,201
## R2 0.003 0.185 0.194
## Adjusted R2 0.002 0.184 0.191
## ============================================
## Note: *p<0.05; **p<0.01; ***p<0.001
genero12$NSEGrup <- relevel(genero12$NSEGrup, ref = "D/E")
Para el ejercicio propuesto a la clase, vamos a especificar mejor el modelo de regresión lineal múltiple de las horas de trabajo doméstico.
En este caso, vamos a incluir el estado civil del encuestado (P22). Sin embargo, para evitar tener pocas observaciones en algunas de lca categorias, vamos a recodificar la variable.
Exploración de la variable categórica P22
Primero, vamos a explorar cómo está codificada la variable P22.
table(genero12$P22)
##
## Casado/a Conviviente Viudo/a Divorciado/a Separado/a Soltero/a
## 401 305 49 13 71 364
Luego, la convertimos a numérica para facilitar la recodificación:
genero12$P22.n <- as.numeric(genero12$P22)
table(genero12$P22.n)
##
## 1 2 3 4 5 6
## 401 305 49 13 71 364
Realizamos la recodificación con las funciones básicas del R.
genero12$P22.r[genero12$P22.n < 3] <- 1
genero12$P22.r[genero12$P22.n > 2] <- 2
table(genero12$P22.r)
##
## 1 2
## 706 497
Finalmente, la convertimos nuevamente a factor - objeto que refleja mejor la naturaleza de la variable - y le colocamos las etiquetas pertinentes.
genero12$P22.f <- factor(genero12$P22.r, labels = c("Pareja", "No pareja"))
Calculo de modelo
Ahora, volvemos a calcular el modelo con la nueva variable independiente categórica recodificada:
modelo4 <- lm(P19A ~ EDAD + SEXO + NSEGrup + P22.f, genero12)
modelo5 <- lm(P19A ~ SEXO + NSEGrup + P22.f, genero12)
Formato
stargazer(modelo1, modelo2, modelo3, modelo4 , type = "text",
omit.stat=c("ser","f"),
model.numbers = FALSE, object.names = TRUE,
star.cutoffs = c(0.05, 0.01, 0.001))
##
## ======================================================
## Dependent variable:
## ---------------------------------------
## P19A
## modelo1 modelo2 modelo3 modelo4
## ------------------------------------------------------
## EDAD 0.080* 0.096** 0.089* 0.044
## (0.040) (0.037) (0.036) (0.038)
##
## SEXOFemenino 18.644*** 18.566*** 18.399***
## (1.141) (1.136) (1.131)
##
## NSEGrupA/B -3.037*
## (1.464)
##
## NSEGrupC -0.565 -3.857**
## (1.601) (1.324)
##
## NSEGrupD/E 3.718*
## (1.461)
##
## P22.fNo pareja -4.622***
## (1.217)
##
## Constant 20.073*** 9.921*** 8.600*** 15.784***
## (1.695) (1.654) (1.980) (1.990)
##
## ------------------------------------------------------
## Observations 1,201 1,201 1,201 1,201
## R2 0.003 0.185 0.194 0.203
## Adjusted R2 0.002 0.184 0.191 0.200
## ======================================================
## Note: *p<0.05; **p<0.01; ***p<0.001
Preguntas sobre el modelo 4
Evalúe si el ajuste del modelo 4 es significativo
Evalúe si es pertinente mantener todas las variables propuestas en el modelo 4
¿Síntomas de colinealidad en modelo 4?
¿Cuántas horas más/menos realiza una persona en pareja si se le compara con una que no tiene pareja?
¿En algo afecta al modelo si se retirta la única variable cuantitativa? ¿Calcule un modelo 5 sin la variable EDAD y compare si el modelo 4 o 5 cumple mejor los supuestos del modelo?
Verficando los supuesto del modelo
Vamos a calcular un quinto modelo en donde no consideramos a la variable cuantitativa “edad”. Luego, vamos a evaluar los supuestos del modelo.
library(ggfortify)
autoplot(modelo4)
autoplot(modelo5)
En esta parte vamos a calcular un modelo que considere como variable dependiente al ingreso mensual promedio de los trabajadores dependientes en el Perú. En este caso, para iniciar vamos a considerar como variables independientes al nivel educativo, sexo de la persona y región de residencia.
Datos
Los datos para la parte dos se pueden encontrar en el siguiente link:
https://www.dropbox.com/sh/0l2wi6eg3g912j4/AAC4toYSFJDTb2gQQD-24bPda?dl=0
Carga de data
load("trabaj_dep.Rdata")
Modelos de regresión con efecto independiente de sexo
Desarrolle las siguientes preguntas:
¿Cuánto más/menos gana las mujeres en comparación con los hombres?
¿Cuánto gana una mujer sin nivel educativo?
mod1.0 <- lm(ing_mes ~ nivedu, data = trabaj_dep)
mod1.1 <- lm(ing_mes ~ nivedu + sexo, data = trabaj_dep)
También podemos cambiar la categoría de referencia:
trabaj_dep$sexo <- relevel(trabaj_dep$sexo, ref = "Mujer")
Luego, volvemos a pedir el modelo:
mod1.2 <- lm(ing_mes ~ nivedu + sexo, data = trabaj_dep)
Desarrolle las siguientes preguntas:
Formato
# Tabla con los modelos
stargazer(mod1.0, mod1.1, mod1.2, type = "text",
omit.stat=c("ser","f"),
model.numbers = FALSE, object.names = TRUE,
star.cutoffs = c(0.05, 0.01, 0.001))
##
## ==============================================
## Dependent variable:
## ---------------------------------
## ing_mes
## mod1.0 mod1.1 mod1.2
## ----------------------------------------------
## nivedu 125.331*** 131.040*** 131.040***
## (1.560) (1.534) (1.534)
##
## sexoMujer -231.318***
## (6.885)
##
## sexoHombre 231.318***
## (6.885)
##
## Constant 200.706*** 260.620*** 29.302*
## (10.756) (10.661) (11.683)
##
## ----------------------------------------------
## Observations 23,837 23,837 23,837
## R2 0.213 0.249 0.249
## Adjusted R2 0.213 0.249 0.249
## ==============================================
## Note: *p<0.05; **p<0.01; ***p<0.001
Modelos de regresión con efecto independiente de sexo y región
Desarrolle las siguientes preguntas:
mod1.3 <- lm(ing_mes ~ nivedu + sexo + region, data = trabaj_dep)
Formato
# Tabla con los modelos
stargazer(mod1.0, mod1.1, mod1.2, mod1.3, type = "text",
omit.stat=c("ser","f"),
model.numbers = FALSE, object.names = TRUE,
star.cutoffs = c(0.05, 0.01, 0.001))
##
## ==========================================================
## Dependent variable:
## --------------------------------------------
## ing_mes
## mod1.0 mod1.1 mod1.2 mod1.3
## ----------------------------------------------------------
## nivedu 125.331*** 131.040*** 131.040*** 127.946***
## (1.560) (1.534) (1.534) (1.529)
##
## sexoMujer -231.318***
## (6.885)
##
## sexoHombre 231.318*** 234.403***
## (6.885) (6.819)
##
## regionSierra -90.809***
## (8.335)
##
## regionSelva -47.417***
## (9.697)
##
## regionLima M. 130.899***
## (9.857)
##
## Constant 200.706*** 260.620*** 29.302* 59.680***
## (10.756) (10.661) (11.683) (12.428)
##
## ----------------------------------------------------------
## Observations 23,837 23,837 23,837 23,837
## R2 0.213 0.249 0.249 0.264
## Adjusted R2 0.213 0.249 0.249 0.263
## ==========================================================
## Note: *p<0.05; **p<0.01; ***p<0.001
Modelos de regresión con efecto independiente e interactivos
Antes de calcular los modelos interactivos, vamos a volver a cambiar la categoría de referencia (solo para practicar el procedimiento).
trabaj_dep$sexo <- relevel(trabaj_dep$sexo, ref = "Hombre")
Luego, utilizamos el símbolo "*" para calcular la interacción entre las variables:
mod1.4 <- lm(ing_mes ~ nivedu * sexo + region, data = trabaj_dep)
# Tabla con los modelos
stargazer(mod1.0, mod1.1, mod1.2, mod1.3, mod1.4, type = "text",
omit.stat=c("ser","f"),
model.numbers = FALSE, object.names = TRUE,
star.cutoffs = c(0.05, 0.01, 0.001))
##
## =========================================================================
## Dependent variable:
## --------------------------------------------------------
## ing_mes
## mod1.0 mod1.1 mod1.2 mod1.3 mod1.4
## -------------------------------------------------------------------------
## nivedu 125.331*** 131.040*** 131.040*** 127.946*** 114.937***
## (1.560) (1.534) (1.534) (1.529) (2.129)
##
## sexoMujer -231.318*** -409.322***
## (6.885) (21.079)
##
## sexoHombre 231.318*** 234.403***
## (6.885) (6.819)
##
## regionSierra -90.809*** -90.302***
## (8.335) (8.322)
##
## regionSelva -47.417*** -47.218***
## (9.697) (9.682)
##
## regionLima M. 130.899*** 132.484***
## (9.857) (9.843)
##
## nivedu:sexoMujer 26.598***
## (3.034)
##
## Constant 200.706*** 260.620*** 29.302* 59.680*** 375.882***
## (10.756) (10.661) (11.683) (12.428) (14.779)
##
## -------------------------------------------------------------------------
## Observations 23,837 23,837 23,837 23,837 23,837
## R2 0.213 0.249 0.249 0.264 0.266
## Adjusted R2 0.213 0.249 0.249 0.263 0.266
## =========================================================================
## Note: *p<0.05; **p<0.01; ***p<0.001