# 03 - Medidas de tendencia central

    library(enaho)

Se pueden calcular medidas de tendencia central sobre cualquier variable de un objeto leído con `leer.inei()` o `leer.inei.web()`. Por ejemplo, para calcular las medidas de tendencia central 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 medidas de tendencia central de una variable usando `media.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:

    media.inei(x = "P7061", base = leido, pesos = "FACTRIM")
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104

Como vemos, se genera una tabla con las medidas de tendencia central de la variable.

## Cálculo por estratos

Podemos calcular medidas de tendencia central tomando en cuenta diversos estratos o grupos. Estos pueden ser cualquier variable de `base`. Por ejemplo, usando la variable `DOMINIO`:

    media.inei(x = "P7061",base = leido, pesos = "FACTRIM",
                     estratos = "DOMINIO")
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2    2011  DOMINIO        1    P7061 0.4274317 0.4947066 0.2447346
    #> 3    2011  DOMINIO        2    P7061 0.6912970 0.4619603 0.2134073
    #> 4    2011  DOMINIO        3    P7061 0.6173291 0.4860435 0.2362383
    #> 5    2011  DOMINIO        4    P7061 0.2588984 0.4380302 0.1918704
    #> 6    2011  DOMINIO        5    P7061 0.4796018 0.4995840 0.2495842
    #> 7    2011  DOMINIO        6    P7061 0.4556730 0.4980315 0.2480354
    #> 8    2011  DOMINIO        7    P7061 0.3488036 0.4765920 0.2271399
    #> 9    2011  DOMINIO        8    P7061 0.8191216 0.3849177 0.1481616

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"`:

    media.inei(x = "P7061",base = leido, pesos = "FACTRIM",
                     estratos = "region")
    #>    Período  Estrato        Nombre Variable     Media        DE  Varianza
    #> 1     2011 Nacional      Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2     2011   Región      AMAZONAS    P7061 0.3093621 0.4622326 0.2136589
    #> 3     2011   Región        ANCASH    P7061 0.3660762 0.4817318 0.2320655
    #> 4     2011   Región      APURIMAC    P7061 0.3311063 0.4706127 0.2214763
    #> 5     2011   Región      AREQUIPA    P7061 0.4355763 0.4958338 0.2458511
    #> 6     2011   Región      AYACUCHO    P7061 0.5661494 0.4956062 0.2456255
    #> 7     2011   Región     CAJAMARCA    P7061 0.2147564 0.4106539 0.1686366
    #> 8     2011   Región        CALLAO    P7061 0.6528252 0.4760752 0.2266476
    #> 9     2011   Región         CUSCO    P7061 0.6187871 0.4856860 0.2358909
    #> 10    2011   Región  HUANCAVELICA    P7061 0.4912103 0.4999240 0.2499240
    #> 11    2011   Región       HUANUCO    P7061 0.5930079 0.4912746 0.2413507
    #> 12    2011   Región           ICA    P7061 0.6457327 0.4782963 0.2287674
    #> 13    2011   Región         JUNIN    P7061 0.2373588 0.4254655 0.1810209
    #> 14    2011   Región   LA LIBERTAD    P7061 0.3732944 0.4836805 0.2339468
    #> 15    2011   Región    LAMBAYEQUE    P7061 0.1452802 0.3523856 0.1241756
    #> 16    2011   Región          LIMA    P7061 0.8173803 0.3863546 0.1492699
    #> 17    2011   Región        LORETO    P7061 0.4169064 0.4930479 0.2430963
    #> 18    2011   Región MADRE DE DIOS    P7061 0.4779810 0.4995262 0.2495264
    #> 19    2011   Región      MOQUEGUA    P7061 0.5450787 0.4979812 0.2479853
    #> 20    2011   Región         PASCO    P7061 0.4532783 0.4978158 0.2478206
    #> 21    2011   Región         PIURA    P7061 0.5703873 0.4950224 0.2450472
    #> 22    2011   Región          PUNO    P7061 0.4327823 0.4954619 0.2454825
    #> 23    2011   Región    SAN MARTIN    P7061 0.3216036 0.4670930 0.2181758
    #> 24    2011   Región         TACNA    P7061 0.6584828 0.4742252 0.2248895
    #> 25    2011   Región        TUMBES    P7061 0.2104034 0.4075984 0.1661365
    #> 26    2011   Región       UCAYALI    P7061 0.3604030 0.4801195 0.2305147

### Cálculo por área geográfica

Para hacerlo por área geográfica, usamos `"area"`:

    media.inei(x = "P7061",base = leido, pesos = "FACTRIM",
                     estratos = "area")
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2    2011     Área   Urbana    P7061 0.5959157 0.4907141 0.2408003
    #> 3    2011     Área    Rural    P7061 0.3970428 0.4892851 0.2393999

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`:

    media.inei(x = "P7061",base = leido, pesos = "FACTRIM",
                     estratos = "area",
                     ruralidad = 7:8)
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2    2011     Área   Urbana    P7061 0.5443116 0.4980327 0.2480366
    #> 3    2011     Área    Rural    P7061 0.4240899 0.4942042 0.2442378

### Combinación de estratos

Si utilizamos más de un estrato, por defecto no serán halladas las medidas de tendencia central de la combinación de ellos:

    media.inei(x = "P7061",base = leido, pesos = "FACTRIM",
                     estratos = c("area","DOMINIO"))
    #>    Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1     2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2     2011     Área   Urbana    P7061 0.5959157 0.4907141 0.2408003
    #> 3     2011     Área    Rural    P7061 0.3970428 0.4892851 0.2393999
    #> 4     2011  DOMINIO        1    P7061 0.4274317 0.4947066 0.2447346
    #> 5     2011  DOMINIO        2    P7061 0.6912970 0.4619603 0.2134073
    #> 6     2011  DOMINIO        3    P7061 0.6173291 0.4860435 0.2362383
    #> 7     2011  DOMINIO        4    P7061 0.2588984 0.4380302 0.1918704
    #> 8     2011  DOMINIO        5    P7061 0.4796018 0.4995840 0.2495842
    #> 9     2011  DOMINIO        6    P7061 0.4556730 0.4980315 0.2480354
    #> 10    2011  DOMINIO        7    P7061 0.3488036 0.4765920 0.2271399
    #> 11    2011  DOMINIO        8    P7061 0.8191216 0.3849177 0.1481616

Pero es posible combinar estratos usando el argumento `combinarestratos = TRUE`:

    media.inei(x = "P7061",base = leido, pesos = "FACTRIM",
                     estratos = c("area","DOMINIO"),
                     combinarestratos = TRUE)
    #>    Período      Estrato   Nombre Variable     Media        DE  Varianza
    #> 1     2011     Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2     2011         Área   Urbana    P7061 0.5959157 0.4907141 0.2408003
    #> 3     2011         Área    Rural    P7061 0.3970428 0.4892851 0.2393999
    #> 4     2011      DOMINIO        1    P7061 0.4274317 0.4947066 0.2447346
    #> 5     2011      DOMINIO        2    P7061 0.6912970 0.4619603 0.2134073
    #> 6     2011      DOMINIO        3    P7061 0.6173291 0.4860435 0.2362383
    #> 7     2011      DOMINIO        4    P7061 0.2588984 0.4380302 0.1918704
    #> 8     2011      DOMINIO        5    P7061 0.4796018 0.4995840 0.2495842
    #> 9     2011      DOMINIO        6    P7061 0.4556730 0.4980315 0.2480354
    #> 10    2011      DOMINIO        7    P7061 0.3488036 0.4765920 0.2271399
    #> 11    2011      DOMINIO        8    P7061 0.8191216 0.3849177 0.1481616
    #> 12    2011 Área_DOMINIO Urbana_1    P7061 0.4967493 0.4999906 0.2499906
    #> 13    2011 Área_DOMINIO Urbana_2    P7061 0.7305469 0.4436784 0.1968505
    #> 14    2011 Área_DOMINIO Urbana_3    P7061 0.6334117 0.4818775 0.2322060
    #> 15    2011 Área_DOMINIO Urbana_4    P7061 0.2214191 0.4152060 0.1723960
    #> 16    2011 Área_DOMINIO Urbana_5    P7061 0.4922391 0.4999410 0.2499410
    #> 17    2011 Área_DOMINIO Urbana_6    P7061 0.4317875 0.4953260 0.2453478
    #> 18    2011 Área_DOMINIO Urbana_7    P7061 0.3860179 0.4868354 0.2370087
    #> 19    2011 Área_DOMINIO Urbana_8    P7061 0.8191216 0.3849177 0.1481616
    #> 20    2011 Área_DOMINIO  Rural_1    P7061 0.2454615 0.4303631 0.1852124
    #> 21    2011 Área_DOMINIO  Rural_2    P7061 0.6005406 0.4897942 0.2398983
    #> 22    2011 Área_DOMINIO  Rural_3    P7061 0.4006007 0.4900861 0.2401844
    #> 23    2011 Área_DOMINIO  Rural_4    P7061 0.2637998 0.4406926 0.1942100
    #> 24    2011 Área_DOMINIO  Rural_5    P7061 0.4763220 0.4994394 0.2494397
    #> 25    2011 Área_DOMINIO  Rural_6    P7061 0.4696792 0.4990803 0.2490811
    #> 26    2011 Área_DOMINIO  Rural_7    P7061 0.3230513 0.4676426 0.2186896
    #> 27    2011 Área_DOMINIO  Rural_8    P7061       NaN 0.0000000 0.0000000

## 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 medidas de tendencia central sobre esta lista:

    media.inei(x = "P7061", base = leido2, pesos = NULL)
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1 2011_t1 Nacional Nacional    P7061 0.4356757 0.4958987 0.2459156
    #> 2 2024_t1 Nacional Nacional    P7061 0.3818839 0.4858883 0.2360874

Cuando introducimos los pesos, es posible que exista un error porque no necesariamente todos los períodos tienen el mismo nombre para los pesos:

    media.inei(x = "P7061", base = leido2, pesos = "FACTRIM")
    #> 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:

    media.inei(x = "P7061", base = leido2, pesos = c("FACTRIM","FACTOR"),)
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1 2011_t1 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104
    #> 2 2024_t1 Nacional Nacional    P7061 0.4173575 0.4931230 0.2431703

## Múltiples variables

También podemos calcular múltiples variables a la vez, con las mismas opciones mostradas:

    media.inei(x = c("P7061","P7062"), base = leido2, pesos = c("FACTRIM","FACTOR"),
                     estratos = "area")
    #>    Período  Estrato   Nombre Variable      Media        DE   Varianza
    #> 1  2011_t1 Nacional Nacional    P7061 0.49052879 0.4999103 0.24991035
    #> 2  2011_t1     Área   Urbana    P7061 0.59591570 0.4907141 0.24080029
    #> 3  2011_t1     Área    Rural    P7061 0.39704277 0.4892851 0.23939991
    #> 4  2024_t1 Nacional Nacional    P7061 0.41735749 0.4931230 0.24317025
    #> 5  2024_t1     Área   Urbana    P7061 0.46917272 0.4990488 0.24904975
    #> 6  2024_t1     Área    Rural    P7061 0.34615975 0.4757450 0.22633326
    #> 7  2011_t1 Nacional Nacional    P7062 0.09635016 0.2950709 0.08706682
    #> 8  2011_t1     Área   Urbana    P7062 0.03142862 0.1744731 0.03044088
    #> 9  2011_t1     Área    Rural    P7062 0.15394039 0.3608917 0.13024280
    #> 10 2024_t1 Nacional Nacional    P7062 0.14040878 0.3474107 0.12069417
    #> 11 2024_t1     Área   Urbana    P7062 0.06039772 0.2382223 0.05674985
    #> 12 2024_t1     Área    Rural    P7062 0.25034956 0.4332144 0.18767473

## Opciones adicionales

Para la estimación de la varianza podemos optar por el método insesgado (n-1) o por máxima verosimilitud (n):

    media.inei(x = "P7061", base = leido, pesos = "FACTRIM",
                var = "insesgado")
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499104

    media.inei(x = "P7061", base = leido, pesos = "FACTRIM",
                var = "MV")
    #>   Período  Estrato   Nombre Variable     Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061 0.4905288 0.4999103 0.2499103

Podemos imprimir los resultados con un número específico de decimales:

    media.inei(x = "P7061", base = leido, pesos = "FACTRIM",
                     decimales = 3)
    #>   Período  Estrato   Nombre Variable Media        DE  Varianza
    #> 1    2011 Nacional Nacional    P7061  0.25 0.4999103 0.2499104