Exploración de variables escolaridad materna y paterna

MP

2018/10/24

Se presenta el código que escribimos en la sesión del 23 de octubre para analizar la base de datos de consumos culturales. Por si no pudieron seguir el ejercicio y para que quede registro.

Carga de datos

library(tidyverse)
## ── Attaching packages ────────────────────────────────────────────────────────────────────── tidyverse 1.2.1 ──
## ✔ ggplot2 3.0.0     ✔ purrr   0.2.5
## ✔ tibble  1.4.2     ✔ dplyr   0.7.6
## ✔ tidyr   0.8.1     ✔ stringr 1.3.1
## ✔ readr   1.1.1     ✔ forcats 0.3.0
## ── Conflicts ───────────────────────────────────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
library(readr)

consumos <- read_csv("https://raw.githubusercontent.com/martinpaladino/consumos_culturales/master/datos/base_consumos_culturales.csv") %>% 
  rename(escolaridad_padre = P22_1, escolaridad_madre = P22_2) 
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   Edad = col_integer()
## )
## See spec(...) for full column specifications.

Primera aproximación

Realizamos una tabla con las variables tal como vienen codificadas en las base de datos.

consumos %>% 
  filter(Ciudad == "Mexico") %>% 
  select(escolaridad_padre, escolaridad_madre) %>% 
  table()
##                                  escolaridad_madre
## escolaridad_padre                 Bachillerato Incompleto
##   Bachillerato Incompleto                              22
##   Bachillerato Técnico Completo                         1
##   Bachillerato Técnico Incompleto                       2
##   Diplomado / Maestria                                  0
##   Doctorado                                             0
##   No Contesto                                           4
##   Preparatoria Completa                                13
##   Primaria Completa                                     0
##   Primaria Incompleta                                   2
##   Secundaria Incompleta                                 0
##   Secundria Completa                                    5
##   Universidad Completa                                 15
##   Universidad Incompleta                                5
##                                  escolaridad_madre
## escolaridad_padre                 Bachillerato Técnico Completo
##   Bachillerato Incompleto                                     3
##   Bachillerato Técnico Completo                              23
##   Bachillerato Técnico Incompleto                             9
##   Diplomado / Maestria                                        1
##   Doctorado                                                   0
##   No Contesto                                                 1
##   Preparatoria Completa                                       8
##   Primaria Completa                                           0
##   Primaria Incompleta                                         0
##   Secundaria Incompleta                                       4
##   Secundria Completa                                          7
##   Universidad Completa                                        8
##   Universidad Incompleta                                      3
##                                  escolaridad_madre
## escolaridad_padre                 Bachillerato Técnico Incompleto
##   Bachillerato Incompleto                                       4
##   Bachillerato Técnico Completo                                 5
##   Bachillerato Técnico Incompleto                              12
##   Diplomado / Maestria                                          1
##   Doctorado                                                     0
##   No Contesto                                                   4
##   Preparatoria Completa                                         9
##   Primaria Completa                                             0
##   Primaria Incompleta                                           0
##   Secundaria Incompleta                                         2
##   Secundria Completa                                            3
##   Universidad Completa                                          2
##   Universidad Incompleta                                        3
##                                  escolaridad_madre
## escolaridad_padre                 Diplomado / Maestria Doctorado
##   Bachillerato Incompleto                            0         0
##   Bachillerato Técnico Completo                      0         0
##   Bachillerato Técnico Incompleto                    0         0
##   Diplomado / Maestria                               7         0
##   Doctorado                                          4         2
##   No Contesto                                        8         0
##   Preparatoria Completa                              0         0
##   Primaria Completa                                  0         0
##   Primaria Incompleta                                0         0
##   Secundaria Incompleta                              0         0
##   Secundria Completa                                 0         0
##   Universidad Completa                               2         2
##   Universidad Incompleta                             0         0
##                                  escolaridad_madre
## escolaridad_padre                 No Contesto Preparatoria Completa
##   Bachillerato Incompleto                   3                     7
##   Bachillerato Técnico Completo             2                     6
##   Bachillerato Técnico Incompleto           0                     3
##   Diplomado / Maestria                      0                     2
##   Doctorado                                 0                     5
##   No Contesto                              31                     3
##   Preparatoria Completa                     5                    96
##   Primaria Completa                         2                     3
##   Primaria Incompleta                       2                     1
##   Secundaria Incompleta                     0                     2
##   Secundria Completa                        5                    15
##   Universidad Completa                      3                    33
##   Universidad Incompleta                    1                    22
##                                  escolaridad_madre
## escolaridad_padre                 Primaria Completa Primaria Incompleta
##   Bachillerato Incompleto                         3                   0
##   Bachillerato Técnico Completo                   4                   5
##   Bachillerato Técnico Incompleto                 0                   4
##   Diplomado / Maestria                            0                   0
##   Doctorado                                       0                   0
##   No Contesto                                     9                   1
##   Preparatoria Completa                           5                   4
##   Primaria Completa                              27                   0
##   Primaria Incompleta                             5                  23
##   Secundaria Incompleta                           3                   4
##   Secundria Completa                             17                   8
##   Universidad Completa                            0                   1
##   Universidad Incompleta                          0                   1
##                                  escolaridad_madre
## escolaridad_padre                 Secundaria Incompleta Secundria Completa
##   Bachillerato Incompleto                             1                 13
##   Bachillerato Técnico Completo                       6                 17
##   Bachillerato Técnico Incompleto                     4                  4
##   Diplomado / Maestria                                1                  0
##   Doctorado                                           0                  0
##   No Contesto                                         5                  7
##   Preparatoria Completa                               3                 35
##   Primaria Completa                                   3                 13
##   Primaria Incompleta                                 1                 12
##   Secundaria Incompleta                              28                  5
##   Secundria Completa                                  7                129
##   Universidad Completa                                2                 16
##   Universidad Incompleta                              1                  6
##                                  escolaridad_madre
## escolaridad_padre                 Universidad Completa
##   Bachillerato Incompleto                            1
##   Bachillerato Técnico Completo                      0
##   Bachillerato Técnico Incompleto                    0
##   Diplomado / Maestria                               8
##   Doctorado                                          2
##   No Contesto                                        4
##   Preparatoria Completa                              9
##   Primaria Completa                                  0
##   Primaria Incompleta                                0
##   Secundaria Incompleta                              0
##   Secundria Completa                                 0
##   Universidad Completa                             113
##   Universidad Incompleta                             8
##                                  escolaridad_madre
## escolaridad_padre                 Universidad Incompleta
##   Bachillerato Incompleto                              0
##   Bachillerato Técnico Completo                        1
##   Bachillerato Técnico Incompleto                      0
##   Diplomado / Maestria                                 1
##   Doctorado                                            2
##   No Contesto                                          2
##   Preparatoria Completa                                4
##   Primaria Completa                                    0
##   Primaria Incompleta                                  0
##   Secundaria Incompleta                                0
##   Secundria Completa                                   0
##   Universidad Completa                                 8
##   Universidad Incompleta                              18

Problemas:

  1. La tabla es prácticamente ilegible dado su tamaño.
  • Hay demasiadas categorías.
  1. Muchos de los conteos cruzados están en 0. Esto reduce la fiabilidad de la prueba \(\chi^2\).
  • Hay categorías con poca frecuencia.

Solución:

Reducir la dimensionalidad de las tablas compactando categorías. La idea es pasar de 13 categorías de escolaridad a 3. Se utilizan las categorías de escolaridad de la SEP: básica, media superior y superior.

consumos %>% 
  filter(Ciudad == "Mexico") %>% 
  select(escolaridad_padre, escolaridad_madre) %>% 
  mutate(escolaridad_madre = recode (escolaridad_madre, 
  "Bachillerato Incompleto"        = "Media Superior",                      
  "Bachillerato Técnico Completo"  = "Media Superior",              
  "Bachillerato Técnico Incompleto"= "Media Superior",              
  "Diplomado / Maestria"           = "Superior",              
  "Doctorado"                      = "Superior",   
  "No Contesto"                    =  "No Contesto",               
  "Preparatoria Completa"          = "Media Superior",              
  "Primaria Completa"              = "Básica",              
  "Primaria Incompleta"            = "Básica",              
  "Secundaria Incompleta"          = "Básica",              
  "Secundria Completa"            = "Básica",              
  "Universidad Completa"           = "Superior",              
  "Universidad Incompleta"         = "Superior")) %>% 
  mutate(escolaridad_padre = recode(escolaridad_padre, 
    "Bachillerato Incompleto"        = "Media Superior",                      
    "Bachillerato Técnico Completo"  = "Media Superior",              
  "Bachillerato Técnico Incompleto"= "Media Superior",              
  "Diplomado / Maestria"           = "Superior",              
  "Doctorado"                      = "Superior",   
  "No Contesto"                    =  "No Contesto",               
  "Preparatoria Completa"          = "Media Superior",              
  "Primaria Completa"              = "Básica",              
  "Primaria Incompleta"            = "Básica",              
  "Secundaria Incompleta"          = "Básica",              
  "Secundria Completa"            = "Básica",              
  "Universidad Completa"           = "Superior",              
  "Universidad Incompleta"         = "Superior")) %>% 
  filter(escolaridad_padre != "No Contesto") %>% 
  filter(escolaridad_madre != "No Contesto") %>% 
  table() 
##                  escolaridad_madre
## escolaridad_padre Básica Media Superior Superior
##    Básica            285             44        0
##    Media Superior    108            223       15
##    Superior           28            100      177
consumos %>% 
  filter(Ciudad == "Mexico") %>% 
  select(escolaridad_padre, escolaridad_madre) %>% 
  mutate(escolaridad_madre = recode (escolaridad_madre, 
  "Bachillerato Incompleto"        = "Media Superior",                      
  "Bachillerato Técnico Completo"  = "Media Superior",              
  "Bachillerato Técnico Incompleto"= "Media Superior",              
  "Diplomado / Maestria"           = "Superior",              
  "Doctorado"                      = "Superior",   
  "No Contesto"                    =  "No Contesto",               
  "Preparatoria Completa"          = "Media Superior",              
  "Primaria Completa"              = "Básica",              
  "Primaria Incompleta"            = "Básica",              
  "Secundaria Incompleta"          = "Básica",              
  "Secundria Completa"            = "Básica",              
  "Universidad Completa"           = "Superior",              
  "Universidad Incompleta"         = "Superior")) %>% 
  mutate(escolaridad_padre = recode(escolaridad_padre, 
    "Bachillerato Incompleto"        = "Media Superior",                      
    "Bachillerato Técnico Completo"  = "Media Superior",              
  "Bachillerato Técnico Incompleto"= "Media Superior",              
  "Diplomado / Maestria"           = "Superior",              
  "Doctorado"                      = "Superior",   
  "No Contesto"                    =  "No Contesto",               
  "Preparatoria Completa"          = "Media Superior",              
  "Primaria Completa"              = "Básica",              
  "Primaria Incompleta"            = "Básica",              
  "Secundaria Incompleta"          = "Básica",              
  "Secundria Completa"            = "Básica",              
  "Universidad Completa"           = "Superior",              
  "Universidad Incompleta"         = "Superior")) %>% 
  filter(escolaridad_padre != "No Contesto") %>% 
  filter(escolaridad_madre != "No Contesto") %>% 
  table() %>% 
  chisq.test()
## 
##  Pearson's Chi-squared test
## 
## data:  .
## X-squared = 693.81, df = 4, p-value < 2.2e-16

Solución avanzada

Como vamos a tener que usar esta recodificación de los datos varias veces vamos a envolver el código que lleva a cabo la recodificación en un función. En lugar de copiar y pegar el código para la recodificación cada vez o crear un objeto con los datos recodificados creamos una función que llamamos en un línea y hace el trabajo cada vez que es necesario.

De este modo no creamos objetos innecesarios en el entorno y nunca sobreescribimos nuestros datos.

# Definición de la función: 
# input: un vector de cadenas de caracteres. Ver uso.
# output: un un vector de cadenas de caracteres con las recodificaciones especificadas. Regresa el vector original si no hay coincidencias. No produce un error en ese caso, user debe verificar los resultados.
# uso: dentro de cadenas de dplyr utilizar con mutate. No recibe como input un data.frame, 

recodificar_escolaridad <- function(x) 
  { 
  dplyr::recode (x, 
  "Bachillerato Incompleto"        = "Media Superior",                      
  "Bachillerato Técnico Completo"  = "Media Superior",              
  "Bachillerato Técnico Incompleto"= "Media Superior",              
  "Diplomado / Maestria"           = "Superior",              
  "Doctorado"                      = "Superior",   
  "No Contesto"                    =  "No Contesto",               
  "Preparatoria Completa"          = "Media Superior",              
  "Primaria Completa"              = "Básica",              
  "Primaria Incompleta"            = "Básica",              
  "Secundaria Incompleta"          = "Básica",              
  "Secundria Completa"            = "Básica",              
  "Universidad Completa"           = "Superior",              
  "Universidad Incompleta"         = "Superior")
}

consumos %>% 
  filter(Ciudad == "Mexico") %>% 
  select(starts_with("escol")) %>% 
  mutate_all(recodificar_escolaridad) %>% 
  mutate_all(na_if, "No Contesto") %>%  # Paso lo No Contesto a NA, desaparecen de la tabla.
  table() -> tabla

prop.table(tabla, 2) #Proporciones de columna.
##                  escolaridad_madre
## escolaridad_padre     Básica Media Superior   Superior
##    Básica         0.67695962     0.11989101 0.00000000
##    Media Superior 0.25653207     0.60762943 0.07812500
##    Superior       0.06650831     0.27247956 0.92187500
prop.table(tabla, 1) #Proporciones de fila.
##                  escolaridad_madre
## escolaridad_padre     Básica Media Superior   Superior
##    Básica         0.86626140     0.13373860 0.00000000
##    Media Superior 0.31213873     0.64450867 0.04335260
##    Superior       0.09180328     0.32786885 0.58032787
consumos %>% 
  filter(Ciudad == "Mexico") %>% 
  select(starts_with("escol")) %>% 
  mutate_all(recodificar_escolaridad) %>% 
  mutate_all(na_if, "No Contesto") %>% 
  table() %>% 
  chisq.test()
## 
##  Pearson's Chi-squared test
## 
## data:  .
## X-squared = 693.81, df = 4, p-value < 2.2e-16