The hardware and bandwidth for this mirror is donated by METANET, the Webhosting and Full Service-Cloud Provider.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]metanet.ch.

04 - Proporciones

library(enaho)

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 (sólo en bases de la ENAHO)

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 (sólo en bases de la ENAHO)

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

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.