Carga de Datos

Vamos a trabajar con los datos de la encuesta sobre Familia y Roles de Género 2012 del IOP-PUCP.

library(foreign)
genero12 <- read.spss("IOP_1212_01_D.sav", to.data.frame = TRUE, 
                      use.value.labels = TRUE)

Cálculo de índices

Vamos a calcular dos índices para poder trabajar con esta base de datos:

Índice de Acoso Sexual Callejero

v.acoso.c <- genero12[, c(173:180)]

library(dplyr)

v.acoso.c <- v.acoso.c %>% mutate_if(is.factor, as.numeric)

v.acoso.c.2 <- v.acoso.c %>%
  mutate_all(~recode(., '2'=0, .missing=0))

i.acoso <- rowSums(v.acoso.c.2) 

i.acoso[i.acoso > 1] <- 1

genero12$i.acoso <- factor(i.acoso, labels = c("No", "Sí"))

Índice de Homofobia

homofob <- genero12[, c(111:117)]

homofob <- homofob %>% mutate_if(is.factor, as.numeric)

homofob <- homofob %>% mutate_all(~recode(., '5'= NaN))

homofob <- homofob %>% mutate_all(~((. -4)*(-1)))

genero12$i.homofob <- rowSums(homofob)/21*100

Estadísticos de Tendencia Central

Los estadísticos de tendencia central nos indican la puntuación típica o común en una distribución de valores de una variable:

\[\bar{x}= \frac{\sum{x}}{n}\]

Pedir los estadísticos de tendencia central con R

Variable de análisis: Edad ideal para que una mujer se case (P1)

Moda:

table(genero12$P1)
## 
##  15  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36 
##   1  12   3 101   6  37  31  40 393  72  71 101  22 207   1  12   7   1  34   3 
##  38  40  60 
##   1   4   1
frecuencias <- as.data.frame(table(genero12$P1))
frecuencias[which.max(frecuencias$Freq), 1]
## [1] 25
## 23 Levels: 15 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ... 60

Mediana:

median(genero12$P1, na.rm = T)
## [1] 25

Media:

mean(genero12$P1, na.rm = T)
## [1] 26.22481

Variable de análisis: Edad ideal para que un hombre se case (P2)

frecuencias <- as.data.frame(table(genero12$P2))
frecuencias[which.max(frecuencias$Freq), 1]
## [1] 30
## 24 Levels: 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 ... 42
median(genero12$P2, na.rm = T)
## [1] 29
mean(genero12$P2, na.rm = T)
## [1] 28.55508

Debilidades y Potencialidades de las medidas de tendencia central

  • La moda es una medida muy simple, nos puede dar una imagen distorsionada cuando hay múltiples modas.
  • La media puede verse afectadada cuando hay valores extremos o un sesgo en la curva de la distribución. No es muy útil cuando la distribución tiene un sesgo muy pronunciado.
  • La mediana no se ve afectada por valores extremos pero sí por cambios en el tamaño de la muestra. Es útil cuando la distribución tiene un sesgo muy pronunciado.

Ejemplo 1: Edad ideal para que un hombre y una mujer se casen.

La media está representada por la línea roja y la mediana por la línea azul

Ejemplo 2: Horas dedicadas a las labores domésticas:

summary(genero12$P19A)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    7.00   16.00   23.19   30.00  168.00       2

Ejemplo 4: Índice de homofobia

summary(genero12$i.homofob)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00   38.10   47.62   48.64   61.90  100.00     252

Estadísticos de Dispersión

Los estadísticos de dispersión describen como se dispersan o distribuyen los valores de una variable de intervalo o razón.

Los principales estadísticos de dispersión son:

Para calcular la desviación estándar se debe primero calcular la varianza que es la media de las desviaciones al cuadrado: \[s^2_{x}=\frac{\sum (x-\bar{x})^2}{n-1}\]

Una puntuación de desviación \((x-\bar{x})\) nos dice cuánto se “desvía” el puntaje de un caso particular respecto de la media.

La varianza es una medida y un concepto que es muy importante para otros procedimientos estadísticos, como el Análisis de la Varianza y el análisis de regresión.

En el R, las funciones para el rango, la desviación estándar y la varianza son las siguientes, tomando como ejemplo la variable “edad ideal para que una mujer se case”:

range(genero12$P1, na.rm=T) # Rango
## [1] 15 60
sd(genero12$P1, na.rm = T) # Desviación Estándar
## [1] 3.734084
var(genero12$P1, na.rm = T) # Varianza
## [1] 13.94338

Otro ejemplo: veamos cómo están distribuídos los estadísticos descriptivos del índice de homofobia, según ámbito de residencia. Ello nos permitirá identificar en qué ámbitos econtramos mayores niveles de homofobia y qué tan dispersos o concentrados están los casos alrededor de la media.

Hay que tomar en cuenta que una mayor dispersión nos dice que la distribución de la variable es más heterogénea, es decir presenta mayores diferencias en la población objetivo.

Para calcular un conjunto de estadísticos descriptivos por grupos podemos usar la función summaryBy del paquete doBy

library(doBy)

tab1 <- summaryBy(i.homofob ~ Ambito, data = genero12,
          FUN = function(x) {c(Media = mean(x, na.rm = T), 
                               Md = median(x, na.rm = T),
                               Desv = sd(x, na.rm = T), 
                               Rg = range(x, na.rm = T))})

tab1
##            Ambito i.homofob.Media i.homofob.Md i.homofob.Desv i.homofob.Rg1
## 1     Lima-Callao        45.15041     47.61905       15.18230             0
## 2 Interior Urbano        49.27438     52.38095       20.27958             0
## 3  Interior Rural        54.03959     57.14286       20.25500             0
##   i.homofob.Rg2
## 1       95.2381
## 2      100.0000
## 3      100.0000

En el siguiente gráfico de densidades se muestran las medias de cada grupo como líneas verticales:

La función summaryBy nos permite pedir estadísticos descriptivos de más de una variable, por diferentes grupos compuestos. Por ejemplo, estadísticos descriptivos de la edad ideal para que un hombre se case y para que una mujer se case, según sexo del entrevistado y grupo de edad:

tab2 <- summaryBy(P1 + P2 ~ SEXO + GEDAD, data = genero12,
          FUN = function(x) {c(Media = mean(x, na.rm = T), 
                               Md = median(x, na.rm = T),
                               Desv = sd(x, na.rm = T), 
                               Rg = range(x, na.rm = T))})

tab2
##        SEXO    GEDAD P1.Media P1.Md  P1.Desv P1.Rg1 P1.Rg2 P2.Media P2.Md
## 1 Masculino  18 a 29 26.58883  25.0 3.244851     18     38 28.46701    28
## 2 Masculino  30 a 44 26.25556  25.0 4.267746     18     60 28.24022    28
## 3 Masculino 45 a más 25.13298  25.0 3.431278     18     40 27.87895    28
## 4  Femenino  18 a 29 26.34653  26.0 3.219764     18     36 28.57711    30
## 5  Femenino  30 a 44 27.14583  26.5 4.142688     15     40 29.59067    30
## 6  Femenino 45 a más 25.86139  25.0 3.761628     18     40 28.54455    30
##    P2.Desv P2.Rg1 P2.Rg2
## 1 3.436773     18     40
## 2 4.143948     18     40
## 3 3.670428     19     40
## 4 3.532035     18     40
## 5 4.466696     20     42
## 6 3.756321     18     40

Otra función útil que nos permite calcular estadísticos descriptivos por grupos es summarySE del paquete Rmisc. Esta función nos muestra el número de casos válidos, la media, la desviación estándar, además del error estándar (se) y el intervalo de confianza al 95% (ci). Estos dos últimos estadísticos los veremos más adelante en el curso.

summarySE nos permite hacer comparaciones entre diversos grupos compuestos, por ejemplo:

Índice de homofobia según sexo:

library(Rmisc)
## Loading required package: lattice
tab3 <- summarySE(data = genero12, measurevar = "i.homofob", groupvars = "SEXO", na.rm = T)
tab3
##        SEXO   N i.homofob       sd        se       ci
## 1 Masculino 454  52.00336 18.70172 0.8777151 1.724898
## 2  Femenino 497  45.55907 18.37323 0.8241519 1.619259

Índice de homofobia según sexo y grupo de edad:

tab4 <- summarySE(data = genero12, measurevar = "i.homofob", 
                  groupvars = c("SEXO", "GEDAD"), na.rm = T)
tab4
##        SEXO    GEDAD   N i.homofob       sd       se       ci
## 1 Masculino  18 a 29 164  48.75145 18.56579 1.449745 2.862702
## 2 Masculino  30 a 44 148  53.05663 17.15590 1.410206 2.786897
## 3 Masculino 45 a más 142  54.66130 19.94443 1.673699 3.308788
## 4  Femenino  18 a 29 175  42.36735 19.76004 1.493718 2.948139
## 5  Femenino  30 a 44 161  45.07542 16.71787 1.317553 2.602037
## 6  Femenino 45 a más 161  49.51198 17.75590 1.399361 2.763600

Estadísticos de Orden o Posición

Los estadísticos de orden o posición nos permiten conocer la distribución relativa de los valores de una variable al divivir la distribución en proporciones específicas de casos. Nos indican la proporción de casos que está por encima o por debajo de un estadístico de orden o posición especifico. Reciben el nombre genérico de cuantiles. Algunos cuantiles tienen nombres especiales:

La función summary, además de rango y la media, nos proporciona los cuartiles. Por ejemplo en el caso de las horas dedicadas a labores domésticas en el hogar, tenemos:

summary(genero12$P19A)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    0.00    7.00   16.00   23.19   30.00  168.00       2

Si queremos pedir otros cuantiles de la misma variable:

quantile(genero12$P19A, probs = seq(0,1, 0.1), na.rm = T) # Los deciles
##   0%  10%  20%  30%  40%  50%  60%  70%  80%  90% 100% 
##    0    3    6    9   14   16   21   28   35   56  168
quantile(genero12$P19A, probs = seq(0,1, 0.2), na.rm = T) # Los quintiles
##   0%  20%  40%  60%  80% 100% 
##    0    6   14   21   35  168
quantile(genero12$P19A, probs = c(.3, .45, .66), na.rm = T) # Percentiles específicos
## 30% 45% 66% 
##   9  14  28

Con la función summaryBy Podemos comparar los cuartiles de esta variable entre hombres y mujeres:

tab5 <- summaryBy(P19A ~ SEXO, data = genero12,
          FUN = function(x) {c(quantile(x, probs = c(.25,.5,.75), na.rm = T))})

tab5
##        SEXO P19A.25% P19A.50% P19A.75%
## 1 Masculino        4       10       21
## 2  Femenino       14       28       42

… o comparar los deciles:

tab6 <- summaryBy(P19A ~ SEXO, data = genero12,
          FUN = function(x) {c(quantile(x, probs = seq(0, 1, 0.1), na.rm = T))})

tab6
##        SEXO P19A.0% P19A.10% P19A.20% P19A.30% P19A.40% P19A.50% P19A.60%
## 1 Masculino       0        0        3        6        7       10       14
## 2  Femenino       0        7       14       18       21       28       30
##   P19A.70% P19A.80% P19A.90% P19A.100%
## 1       15       21     28.0        84
## 2       42       49     68.8       168

Ejercicios