Índice

  1. Introducción
  2. Importación de la base de datos
  3. Análisis de una variable numérica
  4. Relación entre las variables numéricas
  5. Comparación según una Variable Categórica
  6. Boxplot Comparativo

1. Introducción

Este taller aplica conceptos básicos de estadística descriptiva utilizando la base de datos rendimiento acedemico de los estudiantes (Students Performance Dataset) con variables numéricas y categóricas. Se analizan medidas de tendencia central y dispersión, se exploran relaciones entre variables mediante gráficos y correlaciones, y se comparan grupos definidos por una variable categórica.

Fuente del conjunto de datos

El conjunto de datos utilizado en este taller fue obtenido de Kaggle:

Students Performance Dataset – Kaggle

2. Importación de la base de datos

Para importar lainformación a R se utilizará el paquete readxl, que permite trabajar con archivos en formato Excel.

library(readxl)
library(dplyr)
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
estudiantes <- read_excel("Datos-Diplomado-expo.xlsx")

Una vez importada la información, se verificó que la base de datos se encuentre almacenada correctamente en el objeto estudiantes.

estudiantes
## # A tibble: 2,392 × 15
##    StudentID   Age Gender Ethnicity ParentalEducation StudyTimeWeekly   Absences
##        <dbl> <dbl>  <dbl>     <dbl>             <dbl> <chr>                <dbl>
##  1      1001    17      1         0                 2 1.98337228078547…        7
##  2      1002    18      0         0                 1 1540875605584670         0
##  3      1003    15      0         2                 3 421056976881226         26
##  4      1004    17      1         0                 3 1.00288294739582…       14
##  5      1005    17      1         0                 2 4.67249527297132…       17
##  6      1006    18      0         0                 1 8191218545250180         0
##  7      1007    15      0         1                 1 1.56016804746992…       10
##  8      1008    15      1         1                 4 1.5424496305808E…       22
##  9      1009    17      0         0                 0 4562007558047700         1
## 10      1010    16      1         0                 1 1.84444663630972…        0
## # ℹ 2,382 more rows
## # ℹ 8 more variables: Tutoring <dbl>, ParentalSupport <dbl>,
## #   Extracurricular <dbl>, Sports <dbl>, Music <dbl>, Volunteering <dbl>,
## #   GPA <chr>, GradeClass <chr>

3. Análisis de una variable numérica

Selección de la variable numérica

Para el análisis numérico se seleccionó la variable Absences, que representa el número de ausencias de cada estudiante, es útil para analizar su comportamiento académico y permite calcular medidas como media, mediana, varianza y desviación estándar, además de gráficos como histogramas y diagramas de caja.

Cálculo de medidas estadísticas

mean(estudiantes$Absences, na.rm = TRUE)
## [1] 14.54139
median(estudiantes$Absences, na.rm = TRUE)
## [1] 15
var(estudiantes$Absences, na.rm = TRUE)
## [1] 71.69716
sd(estudiantes$Absences, na.rm = TRUE)
## [1] 8.467417
sd(estudiantes$Absences, na.rm = TRUE) / mean(estudiantes$Absences, na.rm = TRUE)
## [1] 0.5822977
quantile(estudiantes$Absences, probs = c(0, 0.25, 0.5, 0.75, 1), na.rm = TRUE)
##   0%  25%  50%  75% 100% 
##    0    7   15   22   29

Los valores obtenidos para la variable Absences fueron: •Media: 14.54 •Mediana: 15 •Varianza: 71.69 •Desviación estándar: 8.47 •Coeficiente de variación: 0.58 •Cuantiles: 0% → 0 25% → 7 50% → 15 75% → 22 100% → 29

La media (14.54) y la mediana (15) son similares, indicando una distribución equilibrada. La desviación estándar (8.47) muestra una variabilidad considerable. El 25% tiene ≤7 ausencias, el 50% ≤15 y el 75% ≤22, con un máximo de 29, esto evidencia diferencias importantes en las ausencias.

Graficos

Diagrama de caja y bigotes (boxplot)

boxplot(estudiantes$Absences,
        main = "Diagrama de Caja y Bigotes de Absences",
        col = "#F7C6D0",     
        border = "#F4A7B9",   
        ylab = "Número de ausencias")

El diagrama de caja y bigotes muestra una mediana de 15 ausencias y una variabilidad considerable (7–22). Los valores cercanos a 29 indican estudiantes con ausencias elevadas.

Histograma

hist(estudiantes$Absences,
     main = "Histograma de Absences",
     col = "#F2B8C6",        
     border = "#F4A7B9",     
     xlab = "Número de ausencias",
     breaks = 20)

El histograma muestra una distribución amplia de ausencias (0–29), con variabilidad y una ligera concentración hacia valores altos.

4. Relación entre las Variables Numéricas

Seleccionar las variables numéricas y asegurar formato numérico

estudiantes[, c("Absences", "Age")]
## # A tibble: 2,392 × 2
##    Absences   Age
##       <dbl> <dbl>
##  1        7    17
##  2        0    18
##  3       26    15
##  4       14    17
##  5       17    17
##  6        0    18
##  7       10    15
##  8       22    15
##  9        1    17
## 10        0    16
## # ℹ 2,382 more rows
estudiantes_num <- as.data.frame(lapply(estudiantes[, c("Absences", "Age")], as.numeric))

Matriz de Dispersión

pairs(estudiantes_num,
      main = "Matriz de Dispersión",
      col = "#F2B8C6",
      pch = 19)

Matriz de Correlación

cor (estudiantes_num, use = "complete.obs")
##             Absences         Age
## Absences  1.00000000 -0.01151091
## Age      -0.01151091  1.00000000

La correlación entre las variables Absences y Age es de –0.0115. Este valor se encuentra muy próximo a cero, lo que indica que no existe una relación lineal significativa entre la edad del estudiante y el número de ausencias.

Gráfico de dispersión entre Absences y Age

plot(estudiantes_num$Age, estudiantes_num$Absences,
     main = "Relación entre Edad y Ausencias",
     xlab = "Edad",
     ylab = "Número de Ausencias",
     col = "#F2B8C6",
     pch = 19)

# 5. Comparación según una Variable Categórica

Se agrupan los datos según la variable categórica Gender para comparar la media y desviación estándar de la variable Absences.

resumen_genero <- estudiantes %>%
  group_by(Gender) %>%
  summarise(
    Media_Ausencias = round(mean(Absences, na.rm = TRUE), 4),
    Desv_Estandar = round(sd(Absences, na.rm = TRUE), 4),
    Total = n() )

print(resumen_genero)
## # A tibble: 2 × 4
##   Gender Media_Ausencias Desv_Estandar Total
##    <dbl>           <dbl>         <dbl> <int>
## 1      0            14.4          8.52  1170
## 2      1            14.7          8.41  1222

Grupo 0: Registra una media de 14.3556 ausencias con una desviación estándar de 8.5226.

Grupo 1: Registra una media de 14.7193 ausencias con una desviación estándar de 8.4139.

Ambos grupos presentan comportamientos de inasistencia prácticamente idénticos en promedio y dispersión.

6. Boxplot Comparativo

boxplot(Absences ~ Gender, data = estudiantes,
        main = "Comparación de Ausencias según Género",
        xlab = "Género", ylab = "Número de Ausencias",
        col = c("#F4A7B9", "#F7C6D0"))