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))
=====================================================
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>