Objetivos

General:

Analizar el proceso de decisiones en el análisis de una base de datos.

Específicos:

  1. Examinar la base de datos de la ENDISC-II

  2. Describir la relevancia de limpiar la base de datos para su análisis

  3. Describir las principales variables que serán utilizadas en el análisis

  4. Analizar la asociación entre sexo, edad, educación e ingresos y discapacidad.

La base de datos utilizada corresponde a ENDISC-II. Nuestras variables dependientes serán los determinantes sociales de sexo, edad, educación e ingresos; mientras que nuestra variable dependiente será discapacidad.

El taller va a estar estructurado en base a los objetivos específicos. En grupos, discutan acerca de las distintas tareas y respondan las preguntas relacionadas a cada objetivo específico.

Web ENDISC-II:

https://www.senadis.gob.cl/pag/355/1197/ii_estudio_nacional_de_discapacidad

Web RStudio:

https://www.rstudio.com/products/rstudio/download/#download

Instalación y primeros pasos

https://conceptosclaros.com/instalar-r-primeros-pasos/

BORRAR GitHub Taller

https://github.com/eloluna/to_uch_dic21

BORRAR Web con el producto del taller

https://rpubs.com/eloluna/840182

Intro R

Paquetes

R Notebook

Dos partes, un procesador de texto y ‘chunks’ para escribir comandos. Lo escrito aquí es el procesador. Los chunks son aquellas secciones de otro color que comienzan con ```{r}

Comentarios

En los chunks, todo lo que lleve “#” va a ser interpretado por R como un comentario y no lo va a correr como comando.

#este es un comentario
#esto me va a generar problemas si no tiene #

Taller

Realizar análisis descriptivos de ENDISC-II. Recordemos que nuestras variables dependientes serán los determinantes sociales de sexo, edad, educación e ingresos, mientras que nuestra variable dependiente será discapacidad.

Antes de comenzar

Una vez que tengo una idea de lo que pretendo realizar, es necesario cargar los datos y examinar su estructura.

Este código me permite examinar las variables de los seis primeros participantes.

Cuántas variables contiene la base de datos de la ENDISC-II. Será necesario reternarlas todas?

La reduzco incluyendo mis variables de interés. Antes eran 992 variables y ahora son 13. El computador lo agradecerá.

endisc <- endisc %>%
    select(enc_id, hogar, rph_id, region, sexo, edad, educc, esc, ytot, cie_suma,
        cap_puntaje_adulto, des_puntaje_adulto, disc_grado_adulto)

# $

write.csv(endisc, "C:/Users/elolu/OneDrive - University College London/PGTA/UCH/Taller/endisc_lite.csv")
head(endisc) #solo las primeras 6 obs

1. Examinar la base de datos

La ENDISC-II recolectó información de la siguiente forma. Dentro de cada manzana, se eligen al azar viviendas. Dentro de cada vivienda, el encuestador entrevista a una persona quien da información de todo su grupo familiar. La variable dependiente/outcome para este práctico -grado de discapacidad- solo se mide en la persona entrevistada.

A. Cuál es el número total de observaciones (número de participantes en la encuesta)?

nrow(endisc) #todas las obs
## [1] 39886

B. Qué significan los NA? Por qué se producen?

summary(endisc)
##      enc_id          hogar           rph_id          region      
##  Min.   :  623   Min.   :1.000   Min.   : 1530   Min.   : 1.000  
##  1st Qu.: 4502   1st Qu.:1.000   1st Qu.:11910   1st Qu.: 5.000  
##  Median : 9268   Median :1.000   Median :22348   Median : 9.000  
##  Mean   : 9074   Mean   :1.024   Mean   :22304   Mean   : 9.013  
##  3rd Qu.:13959   3rd Qu.:1.000   3rd Qu.:32645   3rd Qu.:13.000  
##  Max.   :17686   Max.   :4.000   Max.   :43180   Max.   :15.000  
##                                                                  
##       sexo            edad            educc             esc       
##  Min.   :1.000   Min.   :  0.00   Min.   : 0.000   Min.   : 0.00  
##  1st Qu.:1.000   1st Qu.: 18.00   1st Qu.: 1.000   1st Qu.: 8.00  
##  Median :2.000   Median : 35.00   Median : 3.000   Median :12.00  
##  Mean   :1.524   Mean   : 36.95   Mean   : 3.081   Mean   :10.85  
##  3rd Qu.:2.000   3rd Qu.: 54.00   3rd Qu.: 4.000   3rd Qu.:13.00  
##  Max.   :2.000   Max.   :108.00   Max.   :99.000   Max.   :24.00  
##                                                    NA's   :7917   
##       ytot             cie_suma      cap_puntaje_adulto des_puntaje_adulto
##  Min.   :       0   Min.   : 0.000   Min.   :  0.00     Min.   :  0.00    
##  1st Qu.:       0   1st Qu.: 0.000   1st Qu.: 14.55     1st Qu.: 24.65    
##  Median :   90555   Median : 1.000   Median : 29.46     Median : 38.02    
##  Mean   :  220206   Mean   : 1.852   Mean   : 27.95     Mean   : 34.98    
##  3rd Qu.:  300000   3rd Qu.: 3.000   3rd Qu.: 39.58     3rd Qu.: 46.68    
##  Max.   :26500000   Max.   :12.000   Max.   :100.00     Max.   :100.00    
##  NA's   :75         NA's   :22106    NA's   :27621      NA's   :27621     
##  disc_grado_adulto
##  Min.   :0.000    
##  1st Qu.:0.000    
##  Median :0.000    
##  Mean   :0.302    
##  3rd Qu.:0.000    
##  Max.   :2.000    
##  NA's   :27621
#False: los datos están. True: missing data
summary(is.na(endisc))
##    enc_id          hogar           rph_id          region       
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:39886     FALSE:39886     FALSE:39886     FALSE:39886    
##                                                                 
##     sexo            edad           educc            esc         
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:39886     FALSE:39886     FALSE:39886     FALSE:31969    
##                                                  TRUE :7917     
##     ytot          cie_suma       cap_puntaje_adulto des_puntaje_adulto
##  Mode :logical   Mode :logical   Mode :logical      Mode :logical     
##  FALSE:39811     FALSE:17780     FALSE:12265        FALSE:12265       
##  TRUE :75        TRUE :22106     TRUE :27621        TRUE :27621       
##  disc_grado_adulto
##  Mode :logical    
##  FALSE:12265      
##  TRUE :27621

Notemos los ‘NAs’ que aparecen. Esto es lo que se llama como missing data. Personas que no tienen información en ciertas variables.

C. En el caso específico de las variables de discapacidad (cap_puntaje_adulto, des_puntaje_adulto, disc_grado_adulto) por qué existen tantos NAs?

D. Si calculase el promedio de edad de toda la muestra versus el promedio de edad de aquellos con información en las variables de discapacidad serían iguales o distintos? Qué riesgo puede tener esto?

##      enc_id          hogar           rph_id          region      
##  Min.   :  623   Min.   :1.000   Min.   : 1530   Min.   : 1.000  
##  1st Qu.: 4502   1st Qu.:1.000   1st Qu.:11910   1st Qu.: 5.000  
##  Median : 9268   Median :1.000   Median :22348   Median : 9.000  
##  Mean   : 9074   Mean   :1.024   Mean   :22304   Mean   : 9.013  
##  3rd Qu.:13959   3rd Qu.:1.000   3rd Qu.:32645   3rd Qu.:13.000  
##  Max.   :17686   Max.   :4.000   Max.   :43180   Max.   :15.000  
##                                                                  
##       sexo            edad            educc             esc       
##  Min.   :1.000   Min.   :  0.00   Min.   : 0.000   Min.   : 0.00  
##  1st Qu.:1.000   1st Qu.: 18.00   1st Qu.: 1.000   1st Qu.: 8.00  
##  Median :2.000   Median : 35.00   Median : 3.000   Median :12.00  
##  Mean   :1.524   Mean   : 36.95   Mean   : 3.081   Mean   :10.85  
##  3rd Qu.:2.000   3rd Qu.: 54.00   3rd Qu.: 4.000   3rd Qu.:13.00  
##  Max.   :2.000   Max.   :108.00   Max.   :99.000   Max.   :24.00  
##                                                    NA's   :7917   
##       ytot             cie_suma      cap_puntaje_adulto des_puntaje_adulto
##  Min.   :       0   Min.   : 0.000   Min.   :  0.00     Min.   :  0.00    
##  1st Qu.:       0   1st Qu.: 0.000   1st Qu.: 14.55     1st Qu.: 24.65    
##  Median :   90555   Median : 1.000   Median : 29.46     Median : 38.02    
##  Mean   :  220206   Mean   : 1.852   Mean   : 27.95     Mean   : 34.98    
##  3rd Qu.:  300000   3rd Qu.: 3.000   3rd Qu.: 39.58     3rd Qu.: 46.68    
##  Max.   :26500000   Max.   :12.000   Max.   :100.00     Max.   :100.00    
##  NA's   :75         NA's   :22106    NA's   :27621      NA's   :27621     
##  disc_grado_adulto
##  Min.   :0.000    
##  1st Qu.:0.000    
##  Median :0.000    
##  Mean   :0.302    
##  3rd Qu.:0.000    
##  Max.   :2.000    
##  NA's   :27621
##    Mode   FALSE    TRUE 
## logical   12265   27621

Ejemplo: El encuestado vive en una casa con su pareja, su suegra y sus dos hijos. Quien realiza la entrevista va a solicitar información acerca de elementos como edad, ocupación, entre otros para todos los miembros del hogar (5 personas), sin embargo, para variables más complejas, como las relacionadas con discapacidad, solo se le pedirá al encuestado.

Esto se vería así en una base:

id_hogar <- c(1,1,1,1,1)

id_persona <- c(1,2,3,4,5)

var_edad <- c(55, 50, 72, 20, 17)

var_occ <- c("Empleado", "Empleado", "Jubilado",
             "Estudiante", "Estudiante")

var_disc <- c(25, NA, NA, NA, NA) #Solo un dato

tibble(id_hogar, id_persona, 
       var_edad, var_occ, var_disc)

E.Cuál es el riesgo de no tomar en cuenta aquello?

#Promedio de edad en toda la muestra
mean(endisc$edad)
## [1] 36.95154
#Promedio de edad de personas con mi variable de interés
mean(subset(endisc, !is.na(endisc$cap_puntaje_adulto))$edad)
## [1] 48.35907

Retomaremos este aspecto en la siguiente sección.

2. Limpiar la base de datos para su análisis

La limpieza de una base de datos significa el realizar modificaciones para generar las condiciones ideales para su análisis en relación a los objetivos que tengo.

Para esto, es clave tener una estructura de datos adecuadas.

Nota sobre estructura de datos

Observaciones: en encuestas poblacionales, normalmente se refiere a los participantes.

La limpieza de datos incluye generar etiquetas (labels) de las distintas categorías de las variables que voy a utilizar. Esto me va a permitir entender de qué trata cada variable.

También es necesario examinar la base para checkear si hay valores que están mal codificados.

También ebo decidir cuál será mi muestra analítica. Esta muestra es el número de participantes sobre los cuales realizaré mis análisis.

A. Etiquetado y examinación. Cuál es el número de hombres y mujeres en esta muestra? Qué significa el ‘1’ y ‘2’?

table(endisc$sexo)
## 
##     1     2 
## 18977 20909
attr(endisc$sexo, "labels")
## Hombre  Mujer 
##      1      2
#R piensa que 1 y 2 significa una variable numérica. Debo decirle que es categórica (factor) y ponerle labels
endisc$sexo <- factor(endisc$sexo, levels = c(1, 2), labels = c("Hombre", "Mujer"))

addmargins(table(endisc$sexo))
## 
## Hombre  Mujer    Sum 
##  18977  20909  39886

B.Qué puede significar que la variable de educación tenga un valor de ‘99’?

table(endisc$educc)
## 
##    0    1    2    3    4    5    6   99 
## 4010 8655 3266 6409 8584 3802 5115   45
attr(endisc$educc, "labels")
## Sin educación formal    Básica incompleta     Básica completa. 
##                    0                    1                    2 
##     Media incompleto       Media completo  Superior incompleta 
##                    3                    4                    5 
##    Superior completa             Sin dato 
##                    6                   99
#99 "Sin dato". Si realizo algún análisis, el 99 va a ser un problema, por lo tanto, lo cambio por NA
endisc$educc <-  replace(endisc$educc, endisc$educc==99, NA)

endisc$educc <-  factor(endisc$educc, levels = c(0:6), labels = c("Sin educacion formal", "Basica incompleta", "Basica completa", "Media incompleta", "Media completa", "Superior incompleta", "Superior completa"))

addmargins(table(endisc$educc))
## 
## Sin educacion formal    Basica incompleta      Basica completa 
##                 4010                 8655                 3266 
##     Media incompleta       Media completa  Superior incompleta 
##                 6409                 8584                 3802 
##    Superior completa                  Sum 
##                 5115                39841
table(endisc$disc_grado_adulto)
## 
##    0    1    2 
## 9647 1527 1091
attr(endisc$disc_grado_adulto, "labels")
##             Sin Discapacidad Discapacidad Leve a Moderada 
##                            0                            1 
##          Discapacidad Severa 
##                            2
endisc$disc_grado_adulto <- factor(endisc$disc_grado_adulto,
       levels = c(0:2),
       labels = c("Sin Discapacidad",
                     "Leve a Moderada",
                     "Severa"))

addmargins(table(endisc$disc_grado_adulto))
## 
## Sin Discapacidad  Leve a Moderada           Severa              Sum 
##             9647             1527             1091            12265

Con nuestra base con etiquetas, podemos examinarla nuevamente , con énfasis en los datos NA para decidir nuestra muestra analítica.

Diferencias en nuestra estimación. Necesitamos tener un número determinado que sea constante para todos mis análisis. No debería realizar un análisis en 1,000 participantes, luego otro en 668 y finalmente uno en 350. No existe consistencia.

#complete.cases(endisc)
summary(complete.cases(endisc))
##    Mode   FALSE    TRUE 
## logical   27637   12249

C. Muestra analítica. Cuántas personas tienen NA en la variable de grado de discapacidad?

#FALSE: Non-missing, TRUE: Missing
summary(is.na(endisc))
##    enc_id          hogar           rph_id          region       
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:39886     FALSE:39886     FALSE:39886     FALSE:39886    
##                                                                 
##     sexo            edad           educc            esc         
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:39886     FALSE:39886     FALSE:39841     FALSE:31969    
##                                  TRUE :45        TRUE :7917     
##     ytot          cie_suma       cap_puntaje_adulto des_puntaje_adulto
##  Mode :logical   Mode :logical   Mode :logical      Mode :logical     
##  FALSE:39811     FALSE:17780     FALSE:12265        FALSE:12265       
##  TRUE :75        TRUE :22106     TRUE :27621        TRUE :27621       
##  disc_grado_adulto
##  Mode :logical    
##  FALSE:12265      
##  TRUE :27621

Para realizar todos nuestros análisis sobre el mismo número de personas, es necesario tener una muestra analítica de casos completos.

D. Qué podría significar casos completos?

endisc_cc <- subset(endisc, complete.cases(endisc))

E. Cuál es el número de casos completos en mi muestra?

nrow(endisc_cc)
## [1] 12249

3. Describir la base en relación a variables de interés.

Vamos a realizar descripciones de nuestras variables de interés: discapacidad, sexo, edad y educación. Qué método utilizo para describir estas variables depende de su naturaleza.

Sexo

A. Qué tipo de variable es sexo? Cómo se podría describir?

flextable(tbl_sex) %>% 
  set_header_labels(Var1 = "Sexo", 
                    Freq = "N", 
                    Freq.1 = "%") %>% 
  add_header_lines(values = "Tabla 1. Número y porcentaje de personas en la muestra por sexo") %>% 
  width(j = NULL, width = 1) %>% 
  theme_vanilla()

B. Describe la variable de sexo?

Edad

C. Qué tipo de variable es edad? Cómo podemos describirla?

#summary(endisc_cc$edad)
#Medidas de tendencia central

#Promedio
round(mean(endisc_cc$edad, na.rm = T),2)
## [1] 48.36
#Mediana
median(endisc_cc$edad, na.rm = T)
## [1] 48
#Desviación stándard
sd(endisc_cc$edad, na.rm = T)
## [1] 18.34703
#Forma gráfica
ggplot(endisc_cc) +
  geom_bar(mapping = aes(x=edad), fill = "sky blue", color = "black") +
  theme_bw() +
  scale_x_continuous(n.breaks = 10) +
  xlab("Edad") +
  ylab("Número de personas") +
  labs(title = "Figura 1. Distribución de edad en la muestra",
       caption = "Fuente: ENDISC-II")

D. Describe la variable de edad

Educación

E. Hay dos variables de educación: grado de escolaridad y años de escolaridad. Qué tipo de variables son? De qué forma convendría describirlas

tbl_educ <- as.data.frame(round(prop.table(table(endisc_cc$educc))*100,2))

tbl_educ #con %
tbl_educ2 <- as.data.frame(table(endisc_cc$educc))
tbl_educ2 #con números
flextable(tbl_educ) %>% 
  set_header_labels(Var1 = "Nivel educacional", 
                    Freq = "%") %>% 
  add_header_lines(values = "Tabla 2. Porcentaje de personas en la muestra por nivel educacional") %>% 
  width(j = NULL, width = 1.5) %>% 
  theme_zebra()

F. Describe la variable de escolaridad categórica

#Forma gráfica
#hist(endisc_cc$esc)

ggplot(endisc_cc) +
  geom_bar(mapping = aes(x=esc), fill = "#9621ad", color = "black") +
  theme_bw() +
  xlab("Años de escolaridad") +
  ylab("Número de personas") +
  labs(title = "Figura 2. Histograma de años de escolaridad",
       caption = "Fuente: ENDISC-II")

#Medidas de tendencia central
#Promedio
mean(endisc_cc$esc)
## [1] 10.67908
#Mediana
median(endisc_cc$esc)
## [1] 12

G. Describe la variable de educación en años

Ingresos

H. Qué tipo de variable es ingresos? Cómo se podría describir?

En esta variable, voy a a hacer una modificación: pondré un límite superior de ingresos de hasta 6 millones de pesos. Por qué habría de hacer eso?

summary(endisc_cc$ytot)
##     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
##        0    80000   200000   317923   384000 26500000
mean(endisc_cc$ytot) #317,923
## [1] 317923
median(endisc_cc$ytot)
## [1] 2e+05
#Conocer cuántas personas tienen ingresos superiores a 15m
subset(endisc_cc, endisc_cc$ytot>6000000) #enc_id es clave
#Outliers identificado, observaciones que desvirtúan mi análisis. Pongo límite máximo
endisc_cc$ytot <- replace(endisc_cc$ytot, endisc_cc$ytot>6000000, 6000000)

max(endisc_cc$ytot)
## [1] 6e+06
options(scipen = 50)
#Ingreso promedio y mediano

#Promedio
mean(endisc_cc$ytot)
## [1] 315122.7
#Mediana
median(endisc_cc$ytot)
## [1] 200000
#Desviación standard
sd(endisc_cc$ytot)
## [1] 474683.7
options(scipen = 50) #Evitar notación científica

ggplot(endisc_cc) +
  geom_bar(mapping = aes(x=ytot), fill = "orange", color = "orange") +
  theme_bw() +
  scale_x_continuous(n.breaks = 10) +
  xlim(c(0, 6000000)) +
  ylim(c(0, 300)) +
  xlab("Ingreso ($)") +
  ylab("Número de personas") +
  labs(title = "Figura 3. Distribución de ingresos en la muestra",
       caption = "Fuente: ENDISC-II")
## Scale for 'x' is already present. Adding another scale for 'x', which will
## replace the existing scale.

I. Describe la variable de ingresos

Discapacidad

J. Qué tipo de variable es discapacidad (disc_grado_adulto)? Cómo se podría describir?

K. Describe la variable de discapacidad.

4. Análisis

Tenemos descritas nuestras variables de interés, ahora analizaremos la relación entre nuestra variable dependiente, discapacidad, con los determinantes sociales de sexo, edad, educación e ingresos.

Sexo y discapacidad

Tipos de variables? Categórica ordinal y binaria. Puedo utilizar más de una opción

#Opcion 2
ggplot(endisc_cc) +
  geom_bar(mapping = aes(x = disc_grado_adulto,
                         fill = sexo)) +
    labs(title = "Figura 5. Distribución de discapacidad según sexo") +
  ylab("Número de personas") +
  xlab("") +
  scale_y_continuous(n.breaks = 5)

A. Qué se puede decir acerca de la prevalencia y número de personas con discapacidad por sexo?

Edad y discapacidad

Tipo de variable? Continua y ordinal. Puedo utilizar boxplots

B. Qué se puede decir acerca de la relación entre edad y discapacidad

Educación y discapacidad

Tipo de variable? Grado educativo es ordinal y discapacidad también.

C. Qué se puede decir acerca del porcentaje de personas con discapacidad según grado educacional?

Ingresos y discapacidad

Ingresos es una variable continua y discapacidad es ordinal. Utilizaré promedio y mediana, sus medidas de tendencia central, para enfatizar las diferencias en una tabla.

D. Qué se puede decir acerca de la relación entre discapacidad e ingresos?

Todo junto

#Tabla de promedio de estudios según grado de discapacidad
endisc_cc %>% 
  group_by(disc_grado_adulto) %>% 
  summarise(Promedio_Educacional = round(mean(esc, na.rm = T),2)) %>% 
  flextable() %>% 
  theme_vanilla() %>% 
  set_header_labels(Promedio_Educacional = "Promedio de escolaridad",
                    disc_grado_adulto = "Grado de discapacidad") %>% 
  width(width = 2)
#Tabla de promedio de estudios según grado de discapacidad y sexo
endisc_cc %>% 
  group_by(disc_grado_adulto, sexo) %>% 
  summarise(Promedio_Educ = round(mean(esc, na.rm = T),2))  %>% 
  flextable() %>% 
  theme_tron() %>% 
  set_header_labels(Promedio_Educ = "Promedio de escolaridad",
                    disc_grado_adulto = "Grado de discapacidad",
                    sexo = "Sexo") %>% 
  width(j=1, width = 2) %>% 
  width(j=3, width = 2) %>% 
  align(align = "left", part = "header")
## `summarise()` has grouped output by 'disc_grado_adulto'. You can override using
## the `.groups` argument.
unique(endisc_cc %>% 
  group_by(disc_grado_adulto) %>%
  mutate(prom_sexo = round(
    200 - mean(as.numeric(sexo))*100,2)) %>%
  mutate(prom_edad = round(mean(edad),2)) %>%
  mutate(prom_educ = round(mean(esc),2)) %>%
    mutate(media_ingr = median(ytot)) %>% 
  select(disc_grado_adulto, prom_sexo,
         prom_edad, prom_educ, media_ingr)) %>% 
  arrange(disc_grado_adulto) %>% #Crear datos con promedios
  flextable() %>% #Generar tabla en base a los datos
  set_header_labels(disc_grado_adulto = 
                      "Grado de discapacidad",
                    prom_sexo = "Porcentaje hombres",
                    prom_edad = "Edad promedio",
                    prom_educ = "Escolaridad promedio",
                    media_ingr = "Ingreso mediano") %>%
  add_header_lines(values = "Tabla 6.Tabla resumen") %>% 
  width(j = NULL, width = 1) %>% 
  align(align = "left", part = "all") %>% 
  theme_vanilla()

Tabla resumen: La Tabla 6 resume los temas discutidos. Solo variables continuas fueron utilizadas para tener una tabla más compacta. En la tabla, se aprecia una menor carga de discapacidad en los hombres -pues solo el 29% de todas las personas con discapacidad severa son hombres-, mayor edad de aquellos con discapacidad, menor escolaridad y también menores ingresos.

Opcional

Hasta ahora, hemos analizado asociaciones considerando dos variables. Por ejemplo, edad y discapacidad o educación y discapacida.

En realidad, van a existir múltiples relaciones actuando de manera simultánea y muchas veces habrán interacciones entre las distintas variables independientes.

Fuente: Lund et al. (2018)

Visualicemos la relación entre tres variables a la vez: ingresos, edad y discapacidad. Cómo es la relación entre estas tres variables?

A. Qué podemos decir de la relación que existe entre desempeño, ingresos y edad mirando el gráfico?

Muchas veces nuestra variable de interés está asociada a más de una variable independiente. En el caso de hoy, podemos intuir que el grado de discapacidad está relacionado a factores como el sexo, la edad, la educación y los ingresos. Una de las ventajas de métodos estadísticos más avanzados es que nos permite cuantificar la contribución de estos factores de forma simultánea. A pesar de que estos métodos no son el foco del taller, es bueno tenerlo en cuenta esta simultaneidad en la influencia de la variable dependiente.

En este gráfico, la línea azul representa una regresión linear entre puntaje de desempeño e ingresos. Mayor puntaje en la variable de desempeño significa peor desempeño. Se puede observar una relación indirecta entre ambas variables: a mayor puntaje de desempeño (peor desempeño) las personas tienden a recibir menos ingresos. Sin embargo, este gráfico también nos muestra la edad de las personas. Cada punto es una persona, y el color del punto se relaciona con la edad. Personas más jóvenes están representados con puntos en el espectro más rojo, mientras que personas de mayor edad están representados con puntos en el espectro más amarillo. Si observamos el gráfico, este sugiere que el peor desempeño parece estar asociado a mayor edad, y que menores ingresos también. Es decir, que aquellas personas de peor desempeño suelen estar concentradas entre aquellos más pobres y de mayor edad.