03 - Medidas de tendencia central
medias.Rmd
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