Introducción

Este análisis tiene como objetivo evaluar conocimientos previos en estadística aplicada y programación en R. Se trabajará con datos de la prueba Saber 11 para un período específico.

Carga de librerías y datos

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(ggplot2)
library(knitr)
library(readr)
library(saber)
data("SB11_20061")
datos <- as_tibble(SB11_20061)

Exploración de la base de datos

P1: ¿Cuántas columnas tiene la base de datos?

ncol(datos)
## [1] 86

P2: ¿Cuántas de estas son categóricas?

sum(sapply(datos, is.character))
## [1] 42

P3: ¿Cuántas de estas son numéricas?

sum(sapply(datos, is.numeric))
## [1] 44

P4: ¿Cuántos registros tiene la base de datos?

nrow(datos)
## [1] 61069

Particularidades

Podemos también responder algunas preguntas muy fáciles sobre la prueba Saber 11.

P5: ¿Cuál es el departamento (ESTU_RESIDE_DEPT_PRESENTACION) en el que reside el estudiante que tuvo el puntaje en física (FISICA_PUNT) más alto?

datos %>% filter(FISICA_PUNT == max(FISICA_PUNT, na.rm = TRUE)) %>% pull(ESTU_RESIDE_DEPT_PRESENTACION)
## [1] "BOGOTÁ" "VALLE"

P6: ¿Cuál es el municipio (ESTU_RESIDE_MPIO_PRESENTACION) en el que reside el estudiante que tuvo el puntaje en física (FISICA_PUNT) más bajo?

datos %>% filter(FISICA_PUNT == min(FISICA_PUNT, na.rm = TRUE)) %>% pull(ESTU_RESIDE_MPIO_PRESENTACION)
##  [1] "CALI"     "PASTO"    "PASTO"    "FLORIDA"  "TRUJILLO" "IPIALES" 
##  [7] "CALI"     "VIJES"    "CALI"     "CALI"     "TUMACO"   "YOPAL"   
## [13] "TORO"     "CALI"

P7: ¿Cuál es el departamento (ESTU_RESIDE_DEPT_PRESENTACION) en el que reside el estudiante que tuvo el puntaje en filosof?a (FILOSOFIA_PUNT) más alto?

datos %>% filter(FILOSOFIA_PUNT == max(FILOSOFIA_PUNT, na.rm = TRUE)) %>% pull(ESTU_RESIDE_DEPT_PRESENTACION)
## [1] "BOGOTÁ"

Estadísticos univariados

Para comenzar podemos calcular algunos descriptivos univariados.

P8: ¿Cuál es el promedio del puntaje de matemáticas (MATEMATICAS_PUNT)?

mean(datos$MATEMATICAS_PUNT, na.rm = TRUE)
## [1] 50.76749

P9: ¿Cuál es el la desviación estándar del puntaje de matemáticas (MATEMATICAS_PUNT)?

sd(datos$MATEMATICAS_PUNT, na.rm = TRUE)
## [1] 9.638313

P10: ¿Qué porcentaje de los estudiantes tiene acceso a un computador (ECON_SN_COMPUTADOR)?

porcentaje_computador <- mean(datos$ECON_SN_COMPUTADOR %in% c("1", "3", "4"), na.rm = TRUE) * 100
porcentaje_computador
## [1] 2.56595

P11: ¿Qué porcentaje de los estudiantes trabaja (ESTU_TRABAJA)?

porcentaje_trabajo <- mean(datos$ESTU_TRABAJA %in% c("1", "2", "3", "4", "5", "6", "7"), na.rm = TRUE) * 100
porcentaje_trabajo
## [1] 1.313269

P12: ¿Qué porcentaje de los estudiantes hay en colegios oficiales (COLE_NATURALEZA)?

mean(datos$COLE_NATURALEZA == "O", na.rm = TRUE) * 100
## [1] 59.12984

P13: ¿A partir de qué valor de edad comienza el 10% mayor? (ESTU_EDAD)

quantile(datos$ESTU_EDAD, probs = 0.9, na.rm = TRUE)
## 90% 
##  19

Graficos univariados

Ahora vamos a incursionar en el terreno de los gráficos. Dibujemos las siguientes figuras.

P14: Histograma del puntaje en lenguaje

ggplot(datos, aes(x = LENGUAJE_PUNT)) +
  geom_histogram(fill = "steelblue", color = "black", bins = 20) +
  labs(title = "Distribución del puntaje en lenguaje", x = "Puntaje", y = "Frecuencia") +
  theme_minimal()

P15: Gráfico de barras del conteo del estrato

Se filtra para no tener en cuenta los NA

datos_filtrados <- datos %>% filter(!is.na(ESTU_ESTRATO))
ggplot(datos_filtrados, aes(x = as.factor(ESTU_ESTRATO))) +
  geom_bar(fill = "darkred", color = "black") +
  labs(title = "Distribución de Estratos", x = "Estrato", y = "Frecuencia") +
  theme_minimal()

P16: Gráfico de caja de la edad

ggplot(datos, aes(y = ESTU_EDAD)) +
  geom_boxplot(fill = "orange", color = "black") +
  labs(title = "Distribución de la edad", y = "Edad") +
  theme_minimal()

```