1.Carga de librerías

library(foreign)
library(stargazer)
  1. Carga de datos en la variable ENEI
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)
  1. Suma de valores para cada caso
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
  1. Modelo de regresión
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>