MICROECONOMETRÍA

EJEMPLO 3 INGRESOS ENEI

Se cargan las librerias

## 
## Please cite as:
##  Hlavac, Marek (2022). stargazer: Well-Formatted Regression and Summary Statistics Tables.
##  R package version 5.2.3. https://CRAN.R-project.org/package=stargazer

Se ingresan los datos de la ENEI a evaluar

Se ingresan los datos en la variable enei

## re-encoding from CP1252
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Duplicated levels in
## factor P03A06: Profesor de Enseñanza media en ciencias naturales,
## Fisioterapista, Licenciatura en historia
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Undeclared level(s)
## 11 added in variable: P03C02
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Undeclared level(s)
## 3, 4, 5, 6 added in variable: P04A09
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Undeclared level(s)
## 98 added in variable: P04B04
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Undeclared level(s)
## 34, 83 added in variable: P04D04B_2D
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Undeclared level(s)
## 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 18, 20, 22, 24, 25, 26, 27, 28,
## 30, 32, 36, 38, 40, 42, 45, 48, 50, 52, 59, 60, 66, 70, 72, 91, 96 added in
## variable: P04F01
## Warning in read.spss(file.choose(), to.data.frame = TRUE): Undeclared level(s)
## 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 27, 28, 30,
## 36, 48, 50, 52, 59, 60, 72, 94, 96 added in variable: P04F08

Se visualiza la cantidad de registros y variables

## [1] 22097   264

Se crea el archivo a utilizar

ENEIV <- data.frame(FORMULARIO=seq(1,nrow(ENEI),1))

Se extraen las variables a estudiar

Ingresos laborales

=====================================================

Trabajadores asalariados TOTAL01

=====================================================

Ingresos de los asalariados (primer y segundo trabajo)

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 TOTAL02

=====================================================

Ingresos de los trabajadores independientes (primer y segundo trabajo)

ENEIV$V11 <- ENEI$P04C22 # Sueldo o salario 1

Años de educacion EDUC

====================================================

Nivel educativo mas alto

Se agrega la variable Sexo

ENEIV$V31 <- ENEI$P03A05A 

ENEIV$V41 <- ENEI$PPA02 

table(ENEIV$V41)
## 
## HOMBRE  MUJER 
##  10679  11418

Se visualizan las variables objetivo del estudio

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 ...

Se visualizan las variables con valores nulos o NA

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

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)

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)

Se suman los valores para cadada 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

Se realiza una 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

Se visualizan las variables con valores nulos o NA

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

Nivel educativo mas 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
## 
## 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

## 
## <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>