Lectura de datos

Cargando paquets necesarios

library(survey)
## Loading required package: grid
## Loading required package: Matrix
## Loading required package: survival
## 
## Attaching package: 'survey'
## The following object is masked from 'package:graphics':
## 
##     dotchart
library(tidyverse)
## ── Attaching packages
## ───────────────────────────────────────
## tidyverse 1.3.2 ──
## ✔ ggplot2 3.3.6     ✔ purrr   0.3.4
## ✔ tibble  3.1.7     ✔ dplyr   1.0.9
## ✔ tidyr   1.2.0     ✔ stringr 1.4.0
## ✔ readr   2.1.2     ✔ forcats 0.5.1
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ tidyr::expand() masks Matrix::expand()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ✖ tidyr::pack()   masks Matrix::pack()
## ✖ tidyr::unpack() masks Matrix::unpack()
library(haven)
library(knitr)
library(kableExtra)
## 
## Attaching package: 'kableExtra'
## 
## The following object is masked from 'package:dplyr':
## 
##     group_rows
library(readstata13)
knit_hooks$set(inline = function(x) { 
    prettyNum(x, big.mark=" ")
})

Estableciendo rutas de los archivos a importar.

maindir <- "C:/Users/delia/OneDrive - Universidad de San Martin de Porres" 
subdir.hogar  <- paste0("/Datos/ENAHO/2019/687-Modulo01/Enaho01-2019-100.sav")
subdir.sumaria  <- paste0("/Datos/ENAHO/2019/687-Modulo34/Sumaria-2019.sav")
#--------------------------------------------*
dir.deflactor.tiempo <- paste0(maindir,"/Datos/ENAHO/2019/687-Modulo34/deflactores_base2019_new.dta")
dir.deflactor.espacial <- paste0(maindir,"/Datos/ENAHO/2019/687-Modulo34/despacial_ldnew.dta")

Estimación puntual

Ejemplo 1

# hogar <- read_sav(paste0(maindir,subdir.hogar), 
#                   col_select = c("AÑO","MES","NCONGLOME","CONGLOME","VIVIENDA","HOGAR",
#                                  "UBIGEO","DOMINIO","ESTRATO","P1125","FACTOR07")
#                   )
hogar <- read_sav(paste0(maindir,subdir.hogar))
#hogar <- read_sav(paste0(maindir,subdir.hogar),col_select = c(1:20,323))

El siguiente comando nos mostrará una tabla de frecuencias de la variable ESTRATO, debemos notar que nos muestra un conteo del número de filas asociadas a cada valor de la variable.

table(hogar$P1125)
## 
##     0     1 
## 34451   114

Estos valores se visualizan como números, pero cada categoría tiene un significado distinto. De acuerdo con el diccionario de datos de la ENAHO podemos etiquetar estos números con el siguiente script.

#-----------------------------------------
#Modificando etiquetas de la variable categórica (o factor varibale)
#-----------------------------------------
hogar$P1125 <- factor(hogar$P1125,
                  levels = c("0","1"),
                  labels = c("No","Si"))
#-----------------------------------------
table(hogar$P1125)
## 
##    No    Si 
## 34451   114

Otro ejemplo de etiquetas.

hogar$ESTRATO <- factor(hogar$ESTRATO,
                  levels = c("1","2","3","4",
                             "5","6","7","8"),
                  labels = c("1.De 500 000 a más habitantes.",
                             "2.De 100 000 a 499 999 habitantes.",
                             "3.De 50 000 a 99 999 habitantes.",
                             "4.De 20 000 a 49 999 habitantes.",
                             "5.De 2 000 a 19 999 habitantes.",
                             "6.De 500 a 1 999 habitantes.",
                             "7.Área de Empadronamiento Rural (AER) Compuesto.",
                             "8.Área de Empadronamiento Rural (AER) Simple."))

Ahora, por ejemplo, sabemos que tenemos 7 114 encuestados en territorios con más de 500 000 habitantes. Mientras que en la última categoría, Área de empadronamiento Rural (AER) Simple, tenemos 3 266 hogares encuestados. No obstante, estos valores son muestrales y lo que se requiere es estimar el valor poblacional.Para ello, primero creamos un objeto que defina el diseño muestral de la encuesta realizada.

hogar$conteo <- 1 #Esta variable serviá para contar el número de filas
svy.hogar <- svydesign(ids = ~1, strata = ~ESTRATO,weights = ~FACTOR07, data = hogar)

Podemos estimar la cantidad de hogar estimada para cada estrato con el siguiente código.

est1 <- svytable(~P1125,svy.hogar); est1
## P1125
##         No         Si 
## 9167384.59   12131.49

El código anterior no nos proporciona el error estandar, para ello podemos utiliza el siguiente código.

est2 <- svyby(~conteo,~ESTRATO,svy.hogar,svytotal,na.rm=T); 
est2.1 <- data.frame(est2,row.names = 1); est2.1
##                                                     conteo        se
## 1.De 500 000 a más habitantes.                   4473316.2 29778.791
## 2.De 100 000 a 499 999 habitantes.               1720461.0 14624.070
## 3.De 50 000 a 99 999 habitantes.                  493303.3  7588.300
## 4.De 20 000 a 49 999 habitantes.                  775527.3  9740.391
## 5.De 2 000 a 19 999 habitantes.                  1680192.6 19042.642
## 6.De 500 a 1 999 habitantes.                      337666.8  3260.959
## 7.Área de Empadronamiento Rural (AER) Compuesto. 1790729.2  8184.794
## 8.Área de Empadronamiento Rural (AER) Simple.     508550.9  4942.244

El total de hogares encuestados es 11 779 747 y el número de hogares estimados en áreas con más de 500 000 habitantes es 4 473 316. Ahora que tenemos los errores estandar, podemos calcular los coeficientes de variación y los intervalos de confianza al 95%.

#Coeficientes de variación
cv_est2 <- cv(est2); cv_est2
##                   1.De 500 000 a más habitantes. 
##                                      0.006656983 
##               2.De 100 000 a 499 999 habitantes. 
##                                      0.008500088 
##                 3.De 50 000 a 99 999 habitantes. 
##                                      0.015382627 
##                 4.De 20 000 a 49 999 habitantes. 
##                                      0.012559701 
##                  5.De 2 000 a 19 999 habitantes. 
##                                      0.011333607 
##                     6.De 500 a 1 999 habitantes. 
##                                      0.009657327 
## 7.Área de Empadronamiento Rural (AER) Compuesto. 
##                                      0.004570648 
##    8.Área de Empadronamiento Rural (AER) Simple. 
##                                      0.009718286
#Intervalos de confianza
conf_est2 <- confint(est2); conf_est2
##                                                      2.5 %    97.5 %
## 1.De 500 000 a más habitantes.                   4414950.8 4531681.5
## 2.De 100 000 a 499 999 habitantes.               1691798.4 1749123.7
## 3.De 50 000 a 99 999 habitantes.                  478430.5  508176.1
## 4.De 20 000 a 49 999 habitantes.                  756436.5  794618.1
## 5.De 2 000 a 19 999 habitantes.                  1642869.7 1717515.5
## 6.De 500 a 1 999 habitantes.                      331275.5  344058.2
## 7.Área de Empadronamiento Rural (AER) Compuesto. 1774687.3 1806771.1
## 8.Área de Empadronamiento Rural (AER) Simple.     498864.3  518237.6

Del cuadro anterior podemos afirmar que al 95 por ciento de confianza, el número de hogares en áreas con más de 500 000 habitantes, se encuentra entre 4 414 951 y 4 531 682.

En la práctica, los reportes deben presentarse de manera que pueda darse una lectura rápida y compresiva al cuadro. Por ello, ahora construiremos un solo cuadro resumen de los cálculos realizados.

est0 <- as.numeric(table(hogar$ESTRATO))
est3 <- cbind.data.frame(est0,
                         round(est2.1,0),
                         cv_est2*100,
                         round(conf_est2,0)
                         ); est3
##                                                   est0  conteo    se
## 1.De 500 000 a más habitantes.                    7114 4473316 29779
## 2.De 100 000 a 499 999 habitantes.                7901 1720461 14624
## 3.De 50 000 a 99 999 habitantes.                  3350  493303  7588
## 4.De 20 000 a 49 999 habitantes.                  2928  775527  9740
## 5.De 2 000 a 19 999 habitantes.                   6018 1680193 19043
## 6.De 500 a 1 999 habitantes.                      2365  337667  3261
## 7.Área de Empadronamiento Rural (AER) Compuesto. 10926 1790729  8185
## 8.Área de Empadronamiento Rural (AER) Simple.     3266  508551  4942
##                                                  cv_est2 * 100   2.5 %  97.5 %
## 1.De 500 000 a más habitantes.                       0.6656983 4414951 4531682
## 2.De 100 000 a 499 999 habitantes.                   0.8500088 1691798 1749124
## 3.De 50 000 a 99 999 habitantes.                     1.5382627  478430  508176
## 4.De 20 000 a 49 999 habitantes.                     1.2559701  756436  794618
## 5.De 2 000 a 19 999 habitantes.                      1.1333607 1642870 1717515
## 6.De 500 a 1 999 habitantes.                         0.9657327  331275  344058
## 7.Área de Empadronamiento Rural (AER) Compuesto.     0.4570648 1774687 1806771
## 8.Área de Empadronamiento Rural (AER) Simple.        0.9718286  498864  518238
r.names <- est2[,1]
rownames(est3) <- r.names

Ahora daremos formato a nuestra tabla resumen.

colnames(est3) <- c("Muestra","Estimacion","Error estandar","CV%","2.5%","97.5%")
kable(est3,
      booktabs = T, longtable = T, #format = 'latex',
      linesep = " ",
      caption = "Número de hogares por estrato",
      digits = 2,
      align=rep("c", 5),
      format.args = list(decimal.mark = ".", big.mark = " ")) %>%
  row_spec(c(1:1) - 1) %>%
kable_styling(font_size = 9,
                latex_options = c("repeat_header")) %>%
add_header_above(c(" " = 5, "Intervalo al 95% de confianza" = 2)) %>%
footnote(general = "ENAHO 2019",
     general_title = "Fuente: ",
footnote_as_chunk = T, title_format = c("italic"),
threeparttable = T)
Número de hogares por estrato
Intervalo al 95% de confianza
Muestra Estimacion Error estandar CV% 2.5% 97.5%
1.De 500 000 a más habitantes. 7 114 4 473 316 29 779 0.67 4 414 951 4 531 682
2.De 100 000 a 499 999 habitantes. 7 901 1 720 461 14 624 0.85 1 691 798 1 749 124
3.De 50 000 a 99 999 habitantes. 3 350 493 303 7 588 1.54 478 430 508 176
4.De 20 000 a 49 999 habitantes. 2 928 775 527 9 740 1.26 756 436 794 618
5.De 2 000 a 19 999 habitantes. 6 018 1 680 193 19 043 1.13 1 642 870 1 717 515
6.De 500 a 1 999 habitantes. 2 365 337 667 3 261 0.97 331 275 344 058
7.Área de Empadronamiento Rural (AER) Compuesto. 10 926 1 790 729 8 185 0.46 1 774 687 1 806 771
8.Área de Empadronamiento Rural (AER) Simple. 3 266 508 551 4 942 0.97 498 864 518 238
Fuente: ENAHO 2019

Ejemplo 2

En el ejemplo 1 hicimos estimaciones de una variable categórica, ahora realizaremos estimaciones de una variable numérica como el ingreso promedio de los hogares peruanos.

#---------------------------------------------------------------*
deflactor.tiempo   <- read.dta13(dir.deflactor.tiempo)
deflactor.espacial <- read.dta13(dir.deflactor.espacial)
sumaria            <- read_sav(paste0(maindir,subdir.sumaria))
#---------------------------------------------------------------*
#----------------------*
#View(sumaria %>% distinct(ESTRATO,DOMIIO,AREA))
#View(sumaria %>% distinct(UBIGEO,C_DPTO))


sumaria <- sumaria %>% mutate(AREA = case_when(ESTRATO<=6 | (ESTRATO==1 & DOMINIO==8) ~ 1,
                                                                                 TRUE ~ 2),
                            C_DPTO = substr(UBIGEO,1,2),
                            C_DPTO = as.numeric(C_DPTO),
                          dominioA = case_when(DOMINIO==1 & AREA==1 ~ 1,
                                               DOMINIO==1 & AREA==2 ~ 2,
                                               DOMINIO==2 & AREA==1 ~ 3,
                                               DOMINIO==2 & AREA==2 ~ 4,
                                               DOMINIO==3 & AREA==1 ~ 5,
                                               DOMINIO==3 & AREA==2 ~ 6,
                                               DOMINIO==4 & AREA==1 ~ 7,
                                               DOMINIO==4 & AREA==2 ~ 8,
                                               DOMINIO==5 & AREA==1 ~ 9,
                                               DOMINIO==5 & AREA==2 ~ 10,
                                               DOMINIO==6 & AREA==1 ~ 11,
                                               DOMINIO==6 & AREA==2 ~ 12,
                                               DOMINIO==7 & AREA==1 & (C_DPTO==16 | C_DPTO==17 | C_DPTO==25)==F ~ 13,
                                               DOMINIO==7 & AREA==2 & (C_DPTO==16 | C_DPTO==17 | C_DPTO==25)==F ~ 14,
                                               DOMINIO==7 & AREA==1 & (C_DPTO==16 | C_DPTO==17 | C_DPTO==25)==T ~ 15,
                                               DOMINIO==7 & AREA==2 & (C_DPTO==16 | C_DPTO==17 | C_DPTO==25)==T ~ 16,
                                               DOMINIO==8 & (AREA==1 | AREA==2)==T ~ 17))
#---------------------------------------------------------------------------*
sumaria <- sumaria %>% left_join(deflactor.espacial, by=c("dominioA"))
#left_join()
#right_join()
#inner_join()
#full_join()
#---------------------------------------------------------------------------*
sumaria <- sumaria %>% mutate(AREA = factor(AREA,
                                      levels = c(1,2),
                                      labels = c("Urbano","Rural")),
                          dominioA = factor(dominioA,
                                      levels = as.character(1:17),
                                      labels = c("Costa norte urbana", "Costa norte rural", "Costa centro urbana", 
                                                 "Costa centro rural", "Costa sur urbana", "Costa sur rural", 
                                                 "Sierra norte urbana", "Sierra norte rural", "Sierra centro urbana",
                                                 "Sierra centro rural", "Sierra sur urbana", "Sierra sur rural",
                                                 "Selva alta urbana", "Selva alta rural",
                                                 "Selva baja urbana", "Selva baja rural", 
                                                 "Lima Metropolitana")))
#---------------------------------------------------------------------------*
sumaria$ESTRATO <- factor(sumaria$ESTRATO,
                  levels = c("1","2","3","4",
                             "5","6","7","8"),
                  labels = c("1.De 500 000 a más habitantes.",
                             "2.De 100 000 a 499 999 habitantes.",
                             "3.De 50 000 a 99 999 habitantes.",
                             "4.De 20 000 a 49 999 habitantes.",
                             "5.De 2 000 a 19 999 habitantes.",
                             "6.De 500 a 1 999 habitantes.",
                             "7.Área de Empadronamiento Rural (AER) Compuesto.",
                             "8.Área de Empadronamiento Rural (AER) Simple."))
#----------------------------------------------*
sumaria <- sumaria  %>% mutate(ING_NETO_MENSUAL= INGHOG1D/(12*ld))
#----------------------------------------------*
  • Declaramos el diseño muestral para esta nueva tabla de datos.
svy.sumaria <-svydesign(ids = ~1,strata = ~ESTRATO,weights = ~FACTOR07,data = sumaria)

Estimando el ingreso anual promedio de los hogares peruanos

svymean(~ING_NETO_MENSUAL,svy.sumaria,na.rm=T)
##                    mean     SE
## ING_NETO_MENSUAL 3682.4 25.059
svyratio(numerator = ~ING_NETO_MENSUAL,
         denominator = ~MIEPERHO,
         design = svy.sumaria)$ratio
##                  MIEPERHO
## ING_NETO_MENSUAL  1034.46

Ahora haremos la estimación de los ingresos rurales promedio, por estrato.

ejemplo2.est <- svyby(formula = ~ING_NETO_MENSUAL,
                      by = ~ESTRATO,
                      denominator = ~MIEPERHO,
                      design = svy.sumaria,
                      svyratio)
ejemplo2.est2 <- data.frame(ejemplo2.est,row.names = 1); ejemplo2.est2
##                                                  ING_NETO_MENSUAL.MIEPERHO
## 1.De 500 000 a más habitantes.                                   1328.1124
## 2.De 100 000 a 499 999 habitantes.                               1129.2493
## 3.De 50 000 a 99 999 habitantes.                                 1092.4923
## 4.De 20 000 a 49 999 habitantes.                                 1005.6717
## 5.De 2 000 a 19 999 habitantes.                                   899.6633
## 6.De 500 a 1 999 habitantes.                                      710.6315
## 7.Área de Empadronamiento Rural (AER) Compuesto.                  500.0410
## 8.Área de Empadronamiento Rural (AER) Simple.                     538.9246
##                                                  se.ING_NETO_MENSUAL.MIEPERHO
## 1.De 500 000 a más habitantes.                                      17.150371
## 2.De 100 000 a 499 999 habitantes.                                  12.401435
## 3.De 50 000 a 99 999 habitantes.                                    20.079182
## 4.De 20 000 a 49 999 habitantes.                                    18.204393
## 5.De 2 000 a 19 999 habitantes.                                     13.747587
## 6.De 500 a 1 999 habitantes.                                        15.823064
## 7.Área de Empadronamiento Rural (AER) Compuesto.                     5.109303
## 8.Área de Empadronamiento Rural (AER) Simple.                       10.795238

Estimando los coeficientes de variación.

ejemplo2.cv <- cv(ejemplo2.est);ejemplo2.cv*100
##                   1.De 500 000 a más habitantes. 
##                                         1.291334 
##               2.De 100 000 a 499 999 habitantes. 
##                                         1.098202 
##                 3.De 50 000 a 99 999 habitantes. 
##                                         1.837924 
##                 4.De 20 000 a 49 999 habitantes. 
##                                         1.810173 
##                  5.De 2 000 a 19 999 habitantes. 
##                                         1.528081 
##                     6.De 500 a 1 999 habitantes. 
##                                         2.226620 
## 7.Área de Empadronamiento Rural (AER) Compuesto. 
##                                         1.021777 
##    8.Área de Empadronamiento Rural (AER) Simple. 
##                                         2.003107

Estimando los intervalos de confianza.

ejemplo2.ic <- confint(ejemplo2.est);ejemplo2.ic
##                                                      2.5 %    97.5 %
## 1.De 500 000 a más habitantes.                   1294.4983 1361.7265
## 2.De 100 000 a 499 999 habitantes.               1104.9429 1153.5557
## 3.De 50 000 a 99 999 habitantes.                 1053.1379 1131.8468
## 4.De 20 000 a 49 999 habitantes.                  969.9917 1041.3516
## 5.De 2 000 a 19 999 habitantes.                   872.7185  926.6081
## 6.De 500 a 1 999 habitantes.                      679.6189  741.6441
## 7.Área de Empadronamiento Rural (AER) Compuesto.  490.0270  510.0551
## 8.Área de Empadronamiento Rural (AER) Simple.     517.7663  560.0829
ejemplo2.est0 <- as.numeric(table(sumaria$ESTRATO))
ejemplo2.cuadro <- cbind.data.frame(ejemplo2.est0,round(ejemplo2.est2,0),ejemplo2.cv*100,round(ejemplo2.ic,0)); ejemplo2.cuadro
##                                                  ejemplo2.est0
## 1.De 500 000 a más habitantes.                            5337
## 2.De 100 000 a 499 999 habitantes.                        6320
## 3.De 50 000 a 99 999 habitantes.                          2691
## 4.De 20 000 a 49 999 habitantes.                          2322
## 5.De 2 000 a 19 999 habitantes.                           4823
## 6.De 500 a 1 999 habitantes.                              1817
## 7.Área de Empadronamiento Rural (AER) Compuesto.          8703
## 8.Área de Empadronamiento Rural (AER) Simple.             2552
##                                                  ING_NETO_MENSUAL.MIEPERHO
## 1.De 500 000 a más habitantes.                                        1328
## 2.De 100 000 a 499 999 habitantes.                                    1129
## 3.De 50 000 a 99 999 habitantes.                                      1092
## 4.De 20 000 a 49 999 habitantes.                                      1006
## 5.De 2 000 a 19 999 habitantes.                                        900
## 6.De 500 a 1 999 habitantes.                                           711
## 7.Área de Empadronamiento Rural (AER) Compuesto.                       500
## 8.Área de Empadronamiento Rural (AER) Simple.                          539
##                                                  se.ING_NETO_MENSUAL.MIEPERHO
## 1.De 500 000 a más habitantes.                                             17
## 2.De 100 000 a 499 999 habitantes.                                         12
## 3.De 50 000 a 99 999 habitantes.                                           20
## 4.De 20 000 a 49 999 habitantes.                                           18
## 5.De 2 000 a 19 999 habitantes.                                            14
## 6.De 500 a 1 999 habitantes.                                               16
## 7.Área de Empadronamiento Rural (AER) Compuesto.                            5
## 8.Área de Empadronamiento Rural (AER) Simple.                              11
##                                                  ejemplo2.cv * 100 2.5 % 97.5 %
## 1.De 500 000 a más habitantes.                            1.291334  1294   1362
## 2.De 100 000 a 499 999 habitantes.                        1.098202  1105   1154
## 3.De 50 000 a 99 999 habitantes.                          1.837924  1053   1132
## 4.De 20 000 a 49 999 habitantes.                          1.810173   970   1041
## 5.De 2 000 a 19 999 habitantes.                           1.528081   873    927
## 6.De 500 a 1 999 habitantes.                              2.226620   680    742
## 7.Área de Empadronamiento Rural (AER) Compuesto.          1.021777   490    510
## 8.Área de Empadronamiento Rural (AER) Simple.             2.003107   518    560
colnames(ejemplo2.cuadro) <- c("Muestra","Estimacion","Error estandar","CV%","2.5%","97.5%")
kable(ejemplo2.cuadro,
      booktabs = T, longtable = T, #format = 'latex',
      linesep = " ",
      caption = "Ingreso mensual per cápita - A precios de Lima Metropolitana (2019)",
      digits = 2,
      align=rep("c", 5),format.args = list(decimal.mark = ".", big.mark = " ")) %>%
  row_spec(c(1:1) - 1) %>%
kable_styling(font_size = 9,
                latex_options = c("repeat_header")) %>%
add_header_above(c(" " = 5, "Intervalo al 95% de confianza" = 2)) %>%
footnote(general = "ENAHO 2019",
     general_title = "Fuente: ",
footnote_as_chunk = T, title_format = c("italic"),
threeparttable = T)
Ingreso mensual per cápita - A precios de Lima Metropolitana (2019)
Intervalo al 95% de confianza
Muestra Estimacion Error estandar CV% 2.5% 97.5%
1.De 500 000 a más habitantes. 5 337 1 328 17 1.29 1 294 1 362
2.De 100 000 a 499 999 habitantes. 6 320 1 129 12 1.10 1 105 1 154
3.De 50 000 a 99 999 habitantes. 2 691 1 092 20 1.84 1 053 1 132
4.De 20 000 a 49 999 habitantes. 2 322 1 006 18 1.81 970 1 041
5.De 2 000 a 19 999 habitantes. 4 823 900 14 1.53 873 927
6.De 500 a 1 999 habitantes. 1 817 711 16 2.23 680 742
7.Área de Empadronamiento Rural (AER) Compuesto. 8 703 500 5 1.02 490 510
8.Área de Empadronamiento Rural (AER) Simple. 2 552 539 11 2.00 518 560
Fuente: ENAHO 2019

Gráficos

Histogramas

ggplot(sumaria, aes(x=ING_NETO_MENSUAL/MIEPERHO))+
  geom_histogram(color="darkblue", fill="lightblue") +
  theme_classic() +
  labs(title = "Histograma del ingresos per-cápita en el Perú \n A precios de Lima Metropolitana",
       subtitle = "2019",
       caption = "Fuente: ENAHO 2019",
       x = "Ingreso mensual per-cápita",
       y = "Nro de hogares") +
  scale_y_continuous(labels=function(x) format(x, big.mark = " ", scientific = FALSE))+
  scale_x_continuous(labels=function(x) format(x, big.mark = " ", scientific = FALSE))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

ggplot(data = sumaria, aes(x=ING_NETO_MENSUAL/MIEPERHO, color=AREA))+
  geom_histogram(fill="white") +
  theme_classic()  +
  labs(title = "Histograma del ingresos per-cápita en el Perú por área (urbano/rural) \n A precios de Lima Metropolitana",
       subtitle = "2019",
       caption = "Fuente: ENAHO 2019",
       x = "Ingreso mensual per-cápita",
       y = "Nro de hogares") +
  scale_y_continuous(labels=function(x) format(x, big.mark = " ", scientific = FALSE))+
  scale_x_continuous(labels=function(x) format(x, big.mark = " ", scientific = FALSE))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Diagramas de caja

ggplot(sumaria, aes(x=AREA, y=ING_NETO_MENSUAL/MIEPERHO,fill=AREA)) + 
  geom_boxplot(outlier.shape = NA) + 
  scale_y_continuous(limits = quantile(sumaria$ING_NETO_MENSUAL/sumaria$MIEPERHO, c(0.1, 0.9)),
                     labels=function(x) format(x, big.mark = " ", scientific = FALSE))  +
  theme_classic() +
  labs(title = "Diagrama de cajas de ingresos per-cápita en el Perú por área (urbano/rural)",
       subtitle = "2019",
       caption = "Fuente: ENAHO 2019",
       x = "Área",
       y = "Ingreso mensual per-cápita") 
## Warning: Removed 6914 rows containing non-finite values (stat_boxplot).

ggplot(sumaria, aes(x=dominioA, y=ING_NETO_MENSUAL/MIEPERHO,fill=dominioA)) + 
  geom_boxplot(outlier.shape = NA) + 
  scale_y_continuous(limits = quantile(sumaria$ING_NETO_MENSUAL/sumaria$MIEPERHO, c(0.1, 0.9)),
                     labels=function(x) format(x, big.mark = " ", scientific = FALSE))  +
  theme_classic() +
  labs(title = "Diagrama de cajas de ingresos per-cápita en el Perú por dominio \n A precios de Lima Metropolitana",
       subtitle = "2019",
       caption = "Fuente: ENAHO 2019",
       x = "Dominio",
       y = "Ingreso mensual per-cápita") + 
  coord_flip() + theme(legend.position="none") 
## Warning: Removed 6914 rows containing non-finite values (stat_boxplot).

Gráfico de barras

Podemos realizar gráficas con las estimaciones.

grafico_ejemplo2 <- svyby(~ING_NETO_MENSUAL,
                          by=~dominioA,
                          denominator=~MIEPERHO,design = svy.sumaria,svyratio)
colnames(grafico_ejemplo2) <- c("dominioA","estimacion","se")
grafico_ejemplo2$estimacion <- round(grafico_ejemplo2$estimacion,0)
grafico_ejemplo2 <- grafico_ejemplo2 %>% arrange(estimacion)
ggplot(grafico_ejemplo2, aes(x=reorder(dominioA, estimacion),y=estimacion,fill=estimacion)) + 
  geom_bar(stat="identity") +
  geom_text(aes(label=estimacion), vjust=0, hjust=-0.05, color="black",
            position = position_dodge(0.95), size=3)+
  theme(legend.position="none") + 
  coord_flip()+
  scale_y_continuous(labels=function(x) format(x, big.mark = " ", scientific = FALSE)) +
  labs(title = "Ingresos promedio per-cápita por dominio \n A precios de Lima Metropolitana",
       subtitle = "2019",
       caption = "Fuente: ENAHO 2019",
       x = "Dominio",
       y = "Ingreso mensual per-cápita")

SUMARIA_HOGAR <- sumaria %>% inner_join(hogar,by=c("AÑO","MES","NCONGLOME","CONGLOME","VIVIENDA","HOGAR"))

svy.sumaria <-svydesign(ids = ~1,strata = ~ESTRATO.x, weights = ~FACTOR07.x,data = SUMARIA_HOGAR)

Gráfico de barras

Podemos realizar gráficas con las estimaciones.

grafico_ejemplo2 <- svyby(~ING_NETO_MENSUAL, 
                          by=~P110,
                          denominator=~MIEPERHO,
                          design = svy.sumaria,svyratio)
colnames(grafico_ejemplo2) <- c("Agua","estimacion","se")
grafico_ejemplo2$estimacion <- round(grafico_ejemplo2$estimacion,0)
grafico_ejemplo2 <- grafico_ejemplo2 %>% arrange(estimacion)
ggplot(grafico_ejemplo2, aes(x=reorder(Agua, estimacion),y=estimacion,fill=estimacion)) + 
  geom_bar(stat="identity") +
  geom_text(aes(label=estimacion), vjust=0, hjust=-0.05, color="black",
            position = position_dodge(0.95), size=3)+
  theme(legend.position="none") + 
  coord_flip()+
  scale_y_continuous(labels=function(x) format(x, big.mark = " ", scientific = FALSE)) +
  labs(title = "Ingresos promedio per-cápita por dominio \n A precios de Lima Metropolitana",
       subtitle = "2019",
       caption = "Fuente: ENAHO 2019",
       x = "Abastecimiento agua del hogar",
       y = "Ingreso mensual per-cápita")