1.Carga de librerías
library(foreign)
library(stargazer)
datos <- read.spss(file.choose(),to.data.frame=TRUE)
ENEI <- data.frame(datos)
3.Cantidad de registros y variables en la base de datos
## [1] 22097 264
4.Creación de archivo a utilizar; extracción de varibales de estudio -Ingresos laborales-Trabajadores asalariados (Total 01)-Ingresos de los asalariados.
ENEIV <- data.frame(FORMULARIO=seq(1,nrow(ENEI),1))
ENEIV$V01 <- ENEI$P04C10 # Sueldo o salario 1
ENEIV$V02 <- ENEI$P04C14B # Bono14 1
ENEIV$V03 <- ENEI$P04C15B # Aguinaldo 1
ENEIV$V04 <- ENEI$P04C16B # Bono vacacional 1
ENEIV$V06 <- ENEI$P04D06 # Sueldo o salario 2
ENEIV$V07 <- ENEI$P04D10B # Bono14 2
ENEIV$V08 <- ENEI$P04D11B # Aguinaldo 2
ENEIV$V10 <- ENEI$P04D12 # Ganancia en actividad 2
Trabajadores independientes (Total 02) - Ingresos de los trabajadores independientes
ENEIV$V11 <- ENEI$P04C22
Años de educación
ENEIV$V31 <- ENEI$P03A05A
Se agrega la variable sexo
ENEIV$V41 <- ENEI$PPA02
table(ENEIV$V41)
##
## HOMBRE MUJER
## 10679 11418
Se visualizan las variables objetivo del estudio y las variables con valores nulos
str(ENEIV,vec.len = 2)
## 'data.frame': 22097 obs. of 12 variables:
## $ FORMULARIO: num 1 2 3 4 5 ...
## $ V01 : num NA 6000 16000 6000 15000 ...
## $ V02 : num NA 6000 16000 2500 15000 ...
## $ V03 : num NA 6000 16000 NA 15000 ...
## $ V04 : num NA NA NA NA NA ...
## $ V06 : num NA NA NA NA NA ...
## $ V07 : num NA NA NA NA NA ...
## $ V08 : num NA NA NA NA NA ...
## $ V10 : num NA NA NA NA NA ...
## $ V11 : num 1000 NA NA NA NA ...
## $ V31 : Factor w/ 8 levels "NINGUNO","PREPRIMARIA",..: 6 6 6 6 6 ...
## $ V41 : Factor w/ 2 levels "HOMBRE","MUJER": 2 1 1 1 1 ...
sapply(ENEIV, function(x) sum(is.na(x)))
## FORMULARIO V01 V02 V03 V04 V06 V07
## 0 16204 19745 19715 21831 21892 22088
## V08 V10 V11 V31 V41
## 22087 21949 20300 2841 0
5.Se genera la variable Ingresos para discriminar inicialmente sobre ingresos mayores a 0 - Ingresos de los asalariados (primer y segundo trabajo)
ENEIV$V010 <- ifelse(is.na(ENEIV$V01),0,ENEIV$V01)
ENEIV$V020 <- ifelse(is.na(ENEIV$V02),0,ENEIV$V02)
ENEIV$V030 <- ifelse(is.na(ENEIV$V03),0,ENEIV$V03)
ENEIV$V040 <- ifelse(is.na(ENEIV$V04),0,ENEIV$V04)
ENEIV$V060 <- ifelse(is.na(ENEIV$V06),0,ENEIV$V06)
ENEIV$V070 <- ifelse(is.na(ENEIV$V07),0,ENEIV$V07)
ENEIV$V080 <- ifelse(is.na(ENEIV$V08),0,ENEIV$V08)
ENEIV$V100 <- ifelse(is.na(ENEIV$V10),0,ENEIV$V10)
6.Se genera la variable Ingresos para discriminar inicialmente sobre ingresos mayores a 0 - Ingresos de los trabajadores independientes (primer y segundo trabajo)
ENEIV$V110 <- ifelse(is.na(ENEIV$V11),0,ENEIV$V11)
ENEIV$TOTAL1_0 <- (ENEIV$V010+ENEIV$V020+ENEIV$V030+ENEIV$V040+ENEIV$V060+ENEIV$V070+ENEIV$V080+ENEIV$V100)
summary(ENEIV$TOTAL1_0)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0 0 0 1540 640 90000
ENEIV$TOTAL2_0 <- (ENEIV$V110)
summary(ENEIV$TOTAL2_0)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.0 0.0 0.0 253.6 0.0 86500.0
ENEIV$INGRESOS <- ENEIV$TOTAL1_0 + ENEIV$TOTAL2_0
8.Submuestra con los ingresos mayores a 0 y se visualiza la cantidad de registros y sus variables
ENEIV0 <- subset(ENEIV,subset=ENEIV$INGRESOS>0,select=c(V31,INGRESOS,V41))
dim(ENEIV0)
## [1] 7847 3
Se visualizan las variables con valores nulos o NA:
sapply(ENEIV0, function(x) sum(is.na(x)))
## V31 INGRESOS V41
## 0 0 0
summary(ENEIV0$V31)
## NINGUNO PREPRIMARIA PRIMARIA BASICO DIVERSIFICADO
## 906 20 2945 1207 2035
## SUPERIOR MAESTRIA DOCTORADO
## 719 13 2
table(ENEIV0$V31)
##
## NINGUNO PREPRIMARIA PRIMARIA BASICO DIVERSIFICADO
## 906 20 2945 1207 2035
## SUPERIOR MAESTRIA DOCTORADO
## 719 13 2
ENEIV0 <- na.omit(ENEIV0)
dim(ENEIV0)
## [1] 7847 3
sapply(ENEIV0, function(x) sum(is.na(x)))
## V31 INGRESOS V41
## 0 0 0
ENEIV0$logINGRESOS <- log(ENEIV0$INGRESOS)
summary(ENEIV0$logINGRESOS)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 3.401 7.090 7.783 7.876 9.018 11.408
9.Nivel Educativo más alto
ENEIV0$V31 <- as.numeric(unclass(ENEIV0$V31))
table(ENEIV0$V31)
##
## 1 2 3 4 5 6 7 8
## 906 20 2945 1207 2035 719 13 2
NIVEL EDUCATIVO 1 Ninguno 2 Preprimaria 3 Primaria 4 Básico 5 Diversificado 6 Superior 7 Maestría 8 Doctorado
ENEIV0$EDUC1 <- ifelse(ENEIV0$V31==1,0 ,0)
ENEIV0$EDUC2 <- ifelse(ENEIV0$V31==2,2 ,0)
ENEIV0$EDUC3 <- ifelse(ENEIV0$V31==3,8 ,0)
ENEIV0$EDUC4 <- ifelse(ENEIV0$V31==4,11 ,0)
ENEIV0$EDUC5 <- ifelse(ENEIV0$V31==5,13 ,0)
ENEIV0$EDUC6 <- ifelse(ENEIV0$V31==6,18 ,0)
ENEIV0$EDUC7 <- ifelse(ENEIV0$V31==7,20 ,0)
ENEIV0$EDUC8 <- ifelse(ENEIV0$V31==8,25 ,0)
ENEIV0$EDUC <- ENEIV0$EDUC1 + ENEIV0$EDUC2 + ENEIV0$EDUC3 + ENEIV0$EDUC4+ ENEIV0$EDUC5 + ENEIV0$EDUC6 + ENEIV0$EDUC7+ ENEIV0$EDUC8
table(ENEIV0$EDUC)
##
## 0 2 8 11 13 18 20 25
## 906 20 2945 1207 2035 719 13 2
head(ENEIV0)
## V31 INGRESOS V41 logINGRESOS EDUC1 EDUC2 EDUC3 EDUC4 EDUC5 EDUC6 EDUC7
## 1 6 1000 MUJER 6.907755 0 0 0 0 0 18 0
## 2 6 18000 HOMBRE 9.798127 0 0 0 0 0 18 0
## 3 6 48000 HOMBRE 10.778956 0 0 0 0 0 18 0
## 4 6 8500 HOMBRE 9.047821 0 0 0 0 0 18 0
## 5 6 45000 HOMBRE 10.714418 0 0 0 0 0 18 0
## 6 6 27000 HOMBRE 10.203592 0 0 0 0 0 18 0
## EDUC8 EDUC
## 1 0 18
## 2 0 18
## 3 0 18
## 4 0 18
## 5 0 18
## 6 0 18
lm1<-lm(logINGRESOS~EDUC+V41+EDUC*V41,data=ENEIV0)
summary(lm1)
##
## Call:
## lm(formula = logINGRESOS ~ EDUC + V41 + EDUC * V41, data = ENEIV0)
##
## Residuals:
## Min 1Q Median 3Q Max
## -4.0778 -0.6766 -0.0380 0.8241 3.8523
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 6.802065 0.034109 199.419 < 2e-16 ***
## EDUC 0.120573 0.003192 37.776 < 2e-16 ***
## V41MUJER -0.450768 0.054366 -8.291 < 2e-16 ***
## EDUC:V41MUJER 0.016333 0.004987 3.275 0.00106 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1.013 on 7843 degrees of freedom
## Multiple R-squared: 0.2655, Adjusted R-squared: 0.2652
## F-statistic: 945.1 on 3 and 7843 DF, p-value: < 2.2e-16
plot(ENEIV0$EDUC,ENEIV0$logINGRESOS,xlab="Años de educacion",ylab="Log Salarios(2019)")
abline(a=lm1$coefficients[1],b=lm1$coefficients[2],lwd=3,col="red")
11.¿Por que la grafica no sale completa en algunos años?
En el caso de este ejercicio la gráfica no se ve completa en algunos años debido a la naturaleza de los datos, siendo Guatemala un país con un nivel de escolaridad bajo son pocos los años en los cuales estan conscentrados la mayoría de los retornos de la educación en el país.
stargazer(list(lm1),
keep.star=c("",""),
float=FALSE,font.size="small",
digits=2,
keep=c(1:6),
type="html")
##
## <table style="text-align:center"><tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td><em>Dependent variable:</em></td></tr>
## <tr><td></td><td colspan="1" style="border-bottom: 1px solid black"></td></tr>
## <tr><td style="text-align:left"></td><td>logINGRESOS</td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">EDUC</td><td>0.12<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.003)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">V41MUJER</td><td>-0.45<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.05)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">EDUC:V41MUJER</td><td>0.02<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.005)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td style="text-align:left">Constant</td><td>6.80<sup>***</sup></td></tr>
## <tr><td style="text-align:left"></td><td>(0.03)</td></tr>
## <tr><td style="text-align:left"></td><td></td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Observations</td><td>7,847</td></tr>
## <tr><td style="text-align:left">R<sup>2</sup></td><td>0.27</td></tr>
## <tr><td style="text-align:left">Adjusted R<sup>2</sup></td><td>0.27</td></tr>
## <tr><td style="text-align:left">Residual Std. Error</td><td>1.01 (df = 7843)</td></tr>
## <tr><td style="text-align:left">F Statistic</td><td>945.11<sup>***</sup> (df = 3; 7843)</td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"><em>Note:</em></td><td style="text-align:right"><sup>*</sup>p<0.1; <sup>**</sup>p<0.05; <sup>***</sup>p<0.01</td></tr>
## </table>
##
## <table style="text-align:center"><tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left"></td><td></td></tr>
## <tr><td colspan="2" style="border-bottom: 1px solid black"></td></tr></table>