04 - Proporciones
proporciones.Rmd
Se pueden calcular proporciones sobre cualquier variable de un objeto
leído con leer.inei()
o leer.inei.web()
. Por
ejemplo, para calcular las proporciones de la variable
"P7061"
del primer trimestre de 2011, primero cargamos la
base:
dir <- system.file("extdata", package = "enaho") # directorio con las bases
leido <- leer.inei(modulo = 37,periodos = 2011,tipo = c("t1"),directorio = dir)
#> Leyendo 1 archivo.
#> Leyendo archivo 1 de 1.
leido
#> # A tibble: 4,625 × 24
#> AÑO MES CONGLOME VIVIENDA HOGAR UBIGEO DOMINIO ESTRATO CODINFOR P702
#> <chr> <chr> <chr> <chr> <chr> <chr> <dbl> <dbl> <chr> <dbl>
#> 1 2011 01 0007 049 11 010101 4 4 01 3
#> 2 2011 01 0007 075 11 010101 4 4 02 5
#> 3 2011 01 0027 047 11 010504 4 7 02 2
#> 4 2011 01 0027 047 11 010504 4 7 02 3
#> 5 2011 01 0027 047 11 010504 4 7 02 5
#> 6 2011 01 0027 047 11 010504 4 7 02 5
#> 7 2011 01 0027 108 11 010504 4 7 02 3
#> 8 2011 01 0027 108 11 010504 4 7 02 4
#> 9 2011 01 0027 109 11 010504 4 7 01 4
#> 10 2011 01 0027 110 11 010504 4 7 02 4
#> # ℹ 4,615 more rows
#> # ℹ 14 more variables: P703 <dbl+lbl>, P704 <dbl+lbl>, P705 <dbl+lbl>,
#> # P7061 <dbl+lbl>, P7062 <dbl+lbl>, P7063 <dbl+lbl>, P7064 <dbl+lbl>,
#> # P7065 <dbl+lbl>, P706A1 <dbl+lbl>, P706A2 <dbl+lbl>, P706A3 <dbl+lbl>,
#> # P706A4 <dbl+lbl>, TICUEST01 <dbl+lbl>, FACTRIM <dbl>
Una vez cargada, podemos calcular las proporciones de una variable
usando proporcion.inei()
, donde x
será el
nombre de la(s) variable(s), base
será el objeto leído, y
pesos
será el nombre de la variable que contiene los
pesos:
proporcion.inei(x = "P7061", base = leido, pesos = "FACTRIM")
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
Como vemos, se genera una tabla con todas las categorías de la variable.
Cálculo por estratos
Podemos calcular proporciones tomando en cuenta diversos
estratos o grupos. Estos pueden ser cualquier variable
de base
. Por ejemplo, usando la variable
DOMINIO
:
proporcion.inei(x = "P7061",base = leido, pesos = "FACTRIM",
estratos = "DOMINIO")
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2011 DOMINIO 1 P7061 0.5725683 0.4274317
#> 3 2011 DOMINIO 2 P7061 0.3087030 0.6912970
#> 4 2011 DOMINIO 3 P7061 0.3826709 0.6173291
#> 5 2011 DOMINIO 4 P7061 0.7411016 0.2588984
#> 6 2011 DOMINIO 5 P7061 0.5203982 0.4796018
#> 7 2011 DOMINIO 6 P7061 0.5443270 0.4556730
#> 8 2011 DOMINIO 7 P7061 0.6511964 0.3488036
#> 9 2011 DOMINIO 8 P7061 0.1808784 0.8191216
Vemos que en 2011 hay 8 dominios (no etiquetados) y los resultados se presentan por cada uno de ellos.
Además de usar cualquier variable, también es posible calcular resultados por región y por área geográfica.
Cálculo por región
Para hacerlo por región, usamos
"region"
:
proporcion.inei(x = "P7061",base = leido, pesos = "FACTRIM",
estratos = "region")
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2011 Región AMAZONAS P7061 0.6906379 0.3093621
#> 3 2011 Región ANCASH P7061 0.6339238 0.3660762
#> 4 2011 Región APURIMAC P7061 0.6688937 0.3311063
#> 5 2011 Región AREQUIPA P7061 0.5644237 0.4355763
#> 6 2011 Región AYACUCHO P7061 0.4338506 0.5661494
#> 7 2011 Región CAJAMARCA P7061 0.7852436 0.2147564
#> 8 2011 Región CALLAO P7061 0.3471748 0.6528252
#> 9 2011 Región CUSCO P7061 0.3812129 0.6187871
#> 10 2011 Región HUANCAVELICA P7061 0.5087897 0.4912103
#> 11 2011 Región HUANUCO P7061 0.4069921 0.5930079
#> 12 2011 Región ICA P7061 0.3542673 0.6457327
#> 13 2011 Región JUNIN P7061 0.7626412 0.2373588
#> 14 2011 Región LA LIBERTAD P7061 0.6267056 0.3732944
#> 15 2011 Región LAMBAYEQUE P7061 0.8547198 0.1452802
#> 16 2011 Región LIMA P7061 0.1826197 0.8173803
#> 17 2011 Región LORETO P7061 0.5830936 0.4169064
#> 18 2011 Región MADRE DE DIOS P7061 0.5220190 0.4779810
#> 19 2011 Región MOQUEGUA P7061 0.4549213 0.5450787
#> 20 2011 Región PASCO P7061 0.5467217 0.4532783
#> 21 2011 Región PIURA P7061 0.4296127 0.5703873
#> 22 2011 Región PUNO P7061 0.5672177 0.4327823
#> 23 2011 Región SAN MARTIN P7061 0.6783964 0.3216036
#> 24 2011 Región TACNA P7061 0.3415172 0.6584828
#> 25 2011 Región TUMBES P7061 0.7895966 0.2104034
#> 26 2011 Región UCAYALI P7061 0.6395970 0.3604030
Cálculo por área geográfica
Para hacerlo por área geográfica, usamos
"area"
:
proporcion.inei(x = "P7061",base = leido, pesos = "FACTRIM",
estratos = "area")
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2011 Área Urbana P7061 0.4040843 0.5959157
#> 3 2011 Área Rural P7061 0.6029572 0.3970428
En el caso del área geográfica, ésta se determina usando la variable
"ESTRATO"
de base
. Esta variable suele
contener 8 categorías, y las categorías 6, 7 y 8 suelen ser consideras
rurales. Sin embargo, podemos cambiar esta definición con el argumento
ruralidad
cuyo valor por defecto es 6:8
:
proporcion.inei(x = "P7061",base = leido, pesos = "FACTRIM",
estratos = "area",
ruralidad = 7:8)
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2011 Área Urbana P7061 0.4556884 0.5443116
#> 3 2011 Área Rural P7061 0.5759101 0.4240899
Combinación de estratos
Si utilizamos más de un estrato, por defecto no serán halladas las proporciones de la combinación de ellos:
proporcion.inei(x = "P7061",base = leido, pesos = "FACTRIM",
estratos = c("area","DOMINIO"))
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2011 Área Urbana P7061 0.4040843 0.5959157
#> 3 2011 Área Rural P7061 0.6029572 0.3970428
#> 4 2011 DOMINIO 1 P7061 0.5725683 0.4274317
#> 5 2011 DOMINIO 2 P7061 0.3087030 0.6912970
#> 6 2011 DOMINIO 3 P7061 0.3826709 0.6173291
#> 7 2011 DOMINIO 4 P7061 0.7411016 0.2588984
#> 8 2011 DOMINIO 5 P7061 0.5203982 0.4796018
#> 9 2011 DOMINIO 6 P7061 0.5443270 0.4556730
#> 10 2011 DOMINIO 7 P7061 0.6511964 0.3488036
#> 11 2011 DOMINIO 8 P7061 0.1808784 0.8191216
Pero es posible combinar estratos usando el argumento
combinarestratos = TRUE
:
proporcion.inei(x = "P7061",base = leido, pesos = "FACTRIM",
estratos = c("area","DOMINIO"),
combinarestratos = TRUE)
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2011 Área Urbana P7061 0.4040843 0.5959157
#> 3 2011 Área Rural P7061 0.6029572 0.3970428
#> 4 2011 DOMINIO 1 P7061 0.5725683 0.4274317
#> 5 2011 DOMINIO 2 P7061 0.3087030 0.6912970
#> 6 2011 DOMINIO 3 P7061 0.3826709 0.6173291
#> 7 2011 DOMINIO 4 P7061 0.7411016 0.2588984
#> 8 2011 DOMINIO 5 P7061 0.5203982 0.4796018
#> 9 2011 DOMINIO 6 P7061 0.5443270 0.4556730
#> 10 2011 DOMINIO 7 P7061 0.6511964 0.3488036
#> 11 2011 DOMINIO 8 P7061 0.1808784 0.8191216
#> 12 2011 Área_DOMINIO Urbana_1 P7061 0.5032507 0.4967493
#> 13 2011 Área_DOMINIO Urbana_2 P7061 0.2694531 0.7305469
#> 14 2011 Área_DOMINIO Urbana_3 P7061 0.3665883 0.6334117
#> 15 2011 Área_DOMINIO Urbana_4 P7061 0.7785809 0.2214191
#> 16 2011 Área_DOMINIO Urbana_5 P7061 0.5077609 0.4922391
#> 17 2011 Área_DOMINIO Urbana_6 P7061 0.5682125 0.4317875
#> 18 2011 Área_DOMINIO Urbana_7 P7061 0.6139821 0.3860179
#> 19 2011 Área_DOMINIO Urbana_8 P7061 0.1808784 0.8191216
#> 20 2011 Área_DOMINIO Rural_1 P7061 0.7545385 0.2454615
#> 21 2011 Área_DOMINIO Rural_2 P7061 0.3994594 0.6005406
#> 22 2011 Área_DOMINIO Rural_3 P7061 0.5993993 0.4006007
#> 23 2011 Área_DOMINIO Rural_4 P7061 0.7362002 0.2637998
#> 24 2011 Área_DOMINIO Rural_5 P7061 0.5236780 0.4763220
#> 25 2011 Área_DOMINIO Rural_6 P7061 0.5303208 0.4696792
#> 26 2011 Área_DOMINIO Rural_7 P7061 0.6769487 0.3230513
#> 27 2011 Área_DOMINIO Rural_8 P7061 NaN NaN
Cálculo de más de un período
Si más de un período es leído por leer.inei()
o
leer.inei.web()
se genera una lista. Si bien esta lista se
puede combinar, no siempre es posible:
leido2 <- leer.inei(modulo = 37,periodos = c(2011,2024),tipo = c("t1"),directorio = dir,
combinar = TRUE)
#> Leyendo 2 archivos.
#> Leyendo archivo 1 de 2.
#> Leyendo archivo 2 de 2.
#> Warning in combinar.inei(out, combinarsolocomunes = combinarsolocomunes):
#> No se pudo combinar la lista porque al menos una variable con el mismo nombre no tiene las mismas etiquetas.
class(leido2)
#> [1] "list"
Sin embargo, sí es posible calcular proporciones sobre esta lista:
proporcion.inei(x = "P7061", base = leido2, pesos = NULL)
#> Período Estrato Nombre Variable PASE SI,PAGOENDINERO SI,CONDINERO
#> 1 2011_t1 Nacional Nacional P7061 0.5643243 0.4356757 NA
#> 2 2024_t1 Nacional Nacional P7061 0.6181161 NA 0.3818839
Es importante notar que las etiquetas de las categorías han cambiado. Esto se debe a que 2011 y 2024 no comparten exactamente las mismas etiquetas. Para resolver este problema se remueven los espacios en blanco y se convierten a mayúsculas. Pero como se ve en el ejemplo, seguimos teniendo etiquetas que no coinciden.
Sin embargo, si creemos que las etiquetas tienen el mismo orden podemos forzarlas a que sean las mismas. Para ello, la función utilizará las etiquetas con mayor número de categorías del período más reciente:
proporcion.inei(x = "P7061", base = leido2, pesos = NULL,
forzaretiquetas = TRUE)
#> Período Estrato Nombre Variable PASE SI,CONDINERO
#> 1 2011_t1 Nacional Nacional P7061 0.5643243 0.4356757
#> 2 2024_t1 Nacional Nacional P7061 0.6181161 0.3818839
Cuando introducimos los pesos, es posible que exista un error porque no necesariamente todos los períodos tienen el mismo nombre para los pesos:
proporcion.inei(x = "P7061", base = leido2, pesos = "FACTRIM",
forzaretiquetas = TRUE)
#> Error in `basek[, pesok]`:
#> ! Can't subset columns that don't exist.
#> ✖ Column `FACTRIM` doesn't exist.
Esto lo podemos resolver haciendo un vector con los nombres para cada período:
proporcion.inei(x = "P7061", base = leido2, pesos = c("FACTRIM","FACTOR"),
forzaretiquetas = TRUE)
#> Período Estrato Nombre Variable PASE SI,CONDINERO
#> 1 2011_t1 Nacional Nacional P7061 0.5094712 0.4905288
#> 2 2024_t1 Nacional Nacional P7061 0.5826425 0.4173575
Múltiples variables
También podemos calcular múltiples variables a la vez, con las mismas opciones mostradas, el resultado será siempre en formato largo:
proporcion.inei(x = c("P7061","P7062"), base = leido2, pesos = c("FACTRIM","FACTOR"),
estratos = "area", forzaretiquetas = TRUE)
#> Período Estrato Nombre Variable Categoría Proporción
#> 1 2011_t1 Nacional Nacional P7061 PASE 0.50947121
#> 2 2011_t1 Área Urbana P7061 PASE 0.40408430
#> 3 2011_t1 Área Rural P7061 PASE 0.60295723
#> 4 2024_t1 Nacional Nacional P7061 PASE 0.58264251
#> 5 2024_t1 Área Urbana P7061 PASE 0.53082728
#> 6 2024_t1 Área Rural P7061 PASE 0.65384025
#> 7 2011_t1 Nacional Nacional P7061 SI,CONDINERO 0.49052879
#> 8 2011_t1 Área Urbana P7061 SI,CONDINERO 0.59591570
#> 9 2011_t1 Área Rural P7061 SI,CONDINERO 0.39704277
#> 10 2024_t1 Nacional Nacional P7061 SI,CONDINERO 0.41735749
#> 11 2024_t1 Área Urbana P7061 SI,CONDINERO 0.46917272
#> 12 2024_t1 Área Rural P7061 SI,CONDINERO 0.34615975
#> 13 2011_t1 Nacional Nacional P7062 PASE 0.90364984
#> 14 2011_t1 Área Urbana P7062 PASE 0.96857138
#> 15 2011_t1 Área Rural P7062 PASE 0.84605961
#> 16 2024_t1 Nacional Nacional P7062 PASE 0.85959122
#> 17 2024_t1 Área Urbana P7062 PASE 0.93960228
#> 18 2024_t1 Área Rural P7062 PASE 0.74965044
#> 19 2011_t1 Nacional Nacional P7062 SI,REALIZANDOALGUNALABOR 0.09635016
#> 20 2011_t1 Área Urbana P7062 SI,REALIZANDOALGUNALABOR 0.03142862
#> 21 2011_t1 Área Rural P7062 SI,REALIZANDOALGUNALABOR 0.15394039
#> 22 2024_t1 Nacional Nacional P7062 SI,REALIZANDOALGUNALABOR 0.14040878
#> 23 2024_t1 Área Urbana P7062 SI,REALIZANDOALGUNALABOR 0.06039772
#> 24 2024_t1 Área Rural P7062 SI,REALIZANDOALGUNALABOR 0.25034956
Opciones adicionales
Podemos imprimir los resultados de una variable en formato largo:
proporcion.inei(x = "P7061", base = leido, pesos = "FACTRIM",
formatolargo = TRUE)
#> Período Estrato Nombre Variable Categoría Proporción
#> 1 2011 Nacional Nacional P7061 Pase 0.5094712
#> 2 2011 Nacional Nacional P7061 Sí, pagó en dinero 0.4905288
Podemos imprimir los resultados como porcentaje:
proporcion.inei(x = "P7061", base = leido, pesos = "FACTRIM",
porcentaje = TRUE)
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 50.94712 49.05288
Podemos imprimir los resultados con un número específico de decimales:
proporcion.inei(x = "P7061", base = leido, pesos = "FACTRIM",
decimales = 3)
#> Período Estrato Nombre Variable Pase Sí, pagó en dinero
#> 1 2011 Nacional Nacional P7061 0.509 0.491