Introducción
Vamos a importar la base de datos del Estudio de Familia y Roles de Genero 2012, usando las etiquetas de los valores
library(foreign)
genero12 <- read.spss("IOP_1212_01_D.sav", to.data.frame = TRUE,
use.value.labels = TRUE)
names(genero12)
## [1] "NRO" "SEXO" "GEDAD" "EDAD" "P1" "P2" "P3A"
## [8] "P3B" "P3C" "P3D" "P4A" "P4B" "P4C" "P5"
## [15] "P6A" "P6B" "P6C" "P6D" "P6E" "P7A" "P7B"
## [22] "P8A" "P8B" "P9A" "P9B" "P9C" "P9D" "P9E"
## [29] "P9F" "P10" "P10A" "P11" "P12" "P13A" "P13B"
## [36] "P14" "P15" "P16" "P17" "P18A" "P18B" "P18C"
## [43] "P18D" "P19A" "P19B" "P20" "P21" "P22" "P22A"
## [50] "P23" "P24" "P25" "P26" "P27" "P28A" "P28B"
## [57] "P29" "P30" "P31A" "P31B" "P31C" "P31D" "P31E"
## [64] "P31F" "P32" "P33A" "P33B" "P33C" "P33D" "P34"
## [71] "P35A" "P35B" "P35C" "P35D" "P35E" "P35F" "P35G"
## [78] "P36" "P37" "P38" "P39" "P40" "P41" "P42"
## [85] "P43" "P44" "P44A" "P44B" "P44C" "P45A" "P45B"
## [92] "P46A" "P46B" "P47" "P48" "P48A" "P48B" "P48C"
## [99] "P49" "P50A" "P50B" "P50C" "P50D" "P50E" "P50F"
## [106] "P50G" "P50H" "P51A" "P51B" "P51C" "P51D" "P51E"
## [113] "P51F" "P51G" "P51H" "P51I" "P51J" "P51K" "P52A"
## [120] "P52B" "P52C" "P52D" "P52E" "P52F" "P52G" "P53A"
## [127] "P53B" "P53C" "P53D" "P53E" "P53F" "P53G" "P54A"
## [134] "P54B" "P54C" "P54D" "P54E" "P55A" "P55B" "P55C"
## [141] "P55D" "P55E" "P55F" "P56" "P57" "P58" "P59A"
## [148] "P59B" "P59C" "P59D" "P59E" "P59F" "P59G" "P59H"
## [155] "P59I" "P60A" "P60B" "P60C" "P60D" "P60E" "P60F"
## [162] "P61A" "P61B" "P61C" "P61D" "P61E" "P62A" "P62B"
## [169] "P62C" "P63A" "P63B" "P63C" "P64A" "P64B" "P64C"
## [176] "P64D" "P64E" "P64F" "P64G" "P64H" "P65A" "P65B"
## [183] "P65C" "P65D" "P65E" "P65F" "P65G" "P65H" "P66A"
## [190] "P66B" "P67A" "P67B" "P67C" "P68" "P69" "P70"
## [197] "P71" "P72" "P72A" "P73" "P73A" "P74" "P75"
## [204] "P76" "P77" "P78" "P79" "P80" "P81A" "P81B"
## [211] "P81C" "P81D" "P81E" "P82" "P87" "P89" "P90"
## [218] "P92" "Región" "Ambito" "DOMINIO" "NSEGrup" "sumaNSE" "NSE"
Tabla de frecuencia para una variable categórica nominal
Con la función “freq” del paquete “summarytools”, vamos a generar una tabla de frecuencia simple para la variable nominal “P11” que registrar qué institución debe de ocuparse de la licencia de maternidad con goce de haber:
library(summarytools)
## Warning: package 'summarytools' was built under R version 4.1.1
## Registered S3 method overwritten by 'pryr':
## method from
## print.bytes Rcpp
## For best results, restart R session and update pander using devtools:: or remotes::install_github('rapporter/pander')
tab.p11 <- freq(genero12$P11)
tab.p11
## Frequencies
## genero12$P11
## Type: Factor
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------------------------------------- ------ --------- -------------- --------- --------------
## El gobierno 411 38.41 38.41 34.16 34.16
## El empleador 265 24.77 63.18 22.03 56.19
## Tanto el gobierno como el empleador 378 35.33 98.50 31.42 87.61
## Otras fuentes 6 0.56 99.07 0.50 88.11
## No sabe / No contesta 10 0.93 100.00 0.83 88.94
## <NA> 133 11.06 100.00
## Total 1203 100.00 100.00 100.00 100.00
Tablas a partir de variables numéricas
La variable P19A registra información sobre el número de horas a la semana que los encuestados realizan trabajo doméstico (ej.: lavar, planchar, etc). Vamos a tratar de tabular esta variable.
Como se observa en la tabla “tab.p19a” no es adecuado tabular una variable numérica cuando los datos son muy dispersos; por ello, vamos a recodificar esta variable con el paquete “car”.
tab.p19a <- freq(genero12$P19A)
tab.p19a
## Frequencies
## genero12$P19A
## Type: Numeric
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------- ------ --------- -------------- --------- --------------
## 0 76 6.328 6.328 6.318 6.318
## 1 10 0.833 7.161 0.831 7.149
## 2 30 2.498 9.659 2.494 9.643
## 3 29 2.415 12.073 2.411 12.053
## 4 36 2.998 15.071 2.993 15.046
## 5 13 1.082 16.153 1.081 16.126
## 6 48 3.997 20.150 3.990 20.116
## 7 89 7.410 27.560 7.398 27.515
## 8 28 2.331 29.892 2.328 29.842
## 9 7 0.583 30.475 0.582 30.424
## 10 38 3.164 33.639 3.159 33.583
## 11 1 0.083 33.722 0.083 33.666
## 12 22 1.832 35.554 1.829 35.495
## 13 1 0.083 35.637 0.083 35.578
## 14 148 12.323 47.960 12.303 47.880
## 15 20 1.665 49.625 1.663 49.543
## 16 5 0.416 50.042 0.416 49.958
## 18 22 1.832 51.873 1.829 51.787
## 20 16 1.332 53.206 1.330 53.117
## 21 116 9.659 62.864 9.643 62.760
## 22 1 0.083 62.948 0.083 62.843
## 23 2 0.167 63.114 0.166 63.009
## 24 11 0.916 64.030 0.914 63.924
## 25 10 0.833 64.863 0.831 64.755
## 26 1 0.083 64.946 0.083 64.838
## 28 107 8.909 73.855 8.894 73.732
## 30 19 1.582 75.437 1.579 75.312
## 34 1 0.083 75.520 0.083 75.395
## 35 65 5.412 80.933 5.403 80.798
## 36 5 0.416 81.349 0.416 81.214
## 40 3 0.250 81.599 0.249 81.463
## 42 61 5.079 86.678 5.071 86.534
## 43 2 0.167 86.844 0.166 86.700
## 44 2 0.167 87.011 0.166 86.866
## 45 1 0.083 87.094 0.083 86.949
## 48 8 0.666 87.760 0.665 87.614
## 49 16 1.332 89.092 1.330 88.944
## 50 2 0.167 89.259 0.166 89.111
## 56 49 4.080 93.339 4.073 93.184
## 60 2 0.167 93.505 0.166 93.350
## 63 7 0.583 94.088 0.582 93.932
## 64 3 0.250 94.338 0.249 94.181
## 66 1 0.083 94.421 0.083 94.264
## 70 27 2.248 96.669 2.244 96.509
## 72 6 0.500 97.169 0.499 97.007
## 77 1 0.083 97.252 0.083 97.091
## 80 1 0.083 97.336 0.083 97.174
## 81 1 0.083 97.419 0.083 97.257
## 84 22 1.832 99.251 1.829 99.086
## 91 1 0.083 99.334 0.083 99.169
## 100 2 0.167 99.500 0.166 99.335
## 112 1 0.083 99.584 0.083 99.418
## 140 1 0.083 99.667 0.083 99.501
## 168 4 0.333 100.000 0.333 99.834
## <NA> 2 0.166 100.000
## Total 1203 100.000 100.000 100.000 100.000
Recodificación de variable numérica con paquete “car”
Para realizar la recodificación de la variable “P19A”, primero debemos activar el paquete con la función “library”.
library(car)
## Warning: package 'car' was built under R version 4.1.1
## Loading required package: carData
Segundo, vamos a realizar la recodificación de la variable:
genero12$P19an <- recode(genero12$P19A, "0=1; 1:14=2; 15:28=3; 29:42=4; 43:hi=5")
Tercero, convertimos a factor y colocamos las etiquetas:
genero12$p19ar <- factor(genero12$P19an, labels = c("Ninguna", "Entre 1 y 14", "Entre 15 y 28",
"Entre 29 y 42", "Más de 42"))
Finalmente, tabulamos la variable recodificada “p19ar”.
tab.p19ar <- table(genero12$p19ar)
tab.p19ar
##
## Ninguna Entre 1 y 14 Entre 15 y 28 Entre 29 y 42 Más de 42
## 76 500 311 154 160
Tablas cruzadas
También, podemos realizar tablas cruzadas para dos variables cualitativas con la función “ctable” del paquete “summarytools”:
ctable(genero12$p19ar, genero12$SEXO, "c")
## Cross-Tabulation, Column Proportions
## p19ar * SEXO
## Data Frame: genero12
##
## --------------- ------ -------------- -------------- ---------------
## SEXO Masculino Femenino Total
## p19ar
## Ninguna 68 ( 11.5%) 8 ( 1.3%) 76 ( 6.3%)
## Entre 1 y 14 338 ( 57.4%) 162 ( 26.4%) 500 ( 41.6%)
## Entre 15 y 28 128 ( 21.7%) 183 ( 29.8%) 311 ( 25.9%)
## Entre 29 y 42 31 ( 5.3%) 123 ( 20.0%) 154 ( 12.8%)
## Más de 42 22 ( 3.7%) 138 ( 22.5%) 160 ( 13.3%)
## <NA> 2 ( 0.3%) 0 ( 0.0%) 2 ( 0.2%)
## Total 589 (100.0%) 614 (100.0%) 1203 (100.0%)
## --------------- ------ -------------- -------------- ---------------
Finalmente, podemos construir una tabla combinando una variable cuantitativa y una cualitativa:
tabla.biv <- with(genero12, stby(data = P19A, INDICES = SEXO,
FUN = descr))
tabla.biv
## Descriptive Statistics
## P19A by SEXO
## Data Frame: genero12
## N: 589
##
## Masculino Femenino
## ----------------- ----------- ----------
## Mean 13.70 32.27
## Std.Dev 13.50 24.34
## Min 0.00 0.00
## Q1 4.00 14.00
## Median 10.00 28.00
## Q3 21.00 42.00
## Max 84.00 168.00
## MAD 8.90 20.76
## IQR 17.00 28.00
## CV 0.99 0.75
## Skewness 1.85 1.79
## SE.Skewness 0.10 0.10
## Kurtosis 4.53 5.79
## N.Valid 587.00 614.00
## Pct.Valid 99.66 100.00
Gráficos para evaluar dispersión
Con la función “hist” pdoemos generar un histograma de la variables “P19A” para evaluar si existe sesgo en la distribución:
hist(genero12$P19A)
Con la función “boxplot” pdoemos generar un un gráficos de cajas de la variable “P19A” para evaluar su dispersión, así como las medidas de posicionamiento:
boxplot(genero12$P19A)
___
boxplot(genero12$P19A ~ genero12$SEXO)
Otros códigos
Con el comando “cut” del paquete básico podemos realizar también una recategorización de la variable:
genero12$edad.c <- cut(genero12$EDAD, breaks = 3 , include.lowest = T)
Luego, solicitamos una tabla de la variable recodificada:
tabla.edad <- freq(genero12$edad.c)
tabla.edad
## Frequencies
## genero12$edad.c
## Type: Factor
##
## Freq % Valid % Valid Cum. % Total % Total Cum.
## ----------------- ------ --------- -------------- --------- --------------
## [17.9,42.7] 745 61.93 61.93 61.93 61.93
## (42.7,67.3] 394 32.75 94.68 32.75 94.68
## (67.3,92.1] 64 5.32 100.00 5.32 100.00
## <NA> 0 0.00 100.00
## Total 1203 100.00 100.00 100.00 100.00