El presente trabajo tiene como objetivo realizar un análisis descriptivo de la base de datos del rendimiento estudiantil, correspondiente al estudio realizado por Cortez y Silva (2008).
A partir de la información disponible en la base de datos, se seleccionaron variables numéricas y una variable categórica, con el propósito de analizar diferentes características de los datos mediante medidas de tendencia central, medidas de dispersión y cuantiles. Asimismo, se busca examinar la distribución de las variables, identificar posibles relaciones entre las variables numéricas y analizar las diferencias observadas según el sexo de los estudiantes como variable categórica.
Para la elaboración de este trabajo se tomó como referencia la base de datos relacionada con el rendimiento estudiantil correspondiente al estudio realizado por Cortez y Silva (2008).
La base presenta 30 variables, por lo cual se seleccionaron las siguientes para el análisis:
De estas variables, age, Medu,
Fedu y studytime corresponden a variables
numéricas utilizadas para analizar sus relaciones. Por otra parte,
sex corresponde a la variable categórica utilizada para
realizar comparaciones en la edad de los estudiantes.
# Librerías
library(readxl)
library(ggplot2)
library(GGally)
setwd("~/Anto ( Doc )/Diplomado Anto sep/Modulo 2/Taller 1")
# Importación de la base de datos
datos <- read.csv("student1.csv", sep = ";")
# Estructura de la base
str(datos)
## 'data.frame': 395 obs. of 33 variables:
## $ school : chr "GP" "GP" "GP" "GP" ...
## $ sex : chr "F" "F" "F" "F" ...
## $ age : int 18 17 15 15 16 16 16 17 15 15 ...
## $ address : chr "U" "U" "U" "U" ...
## $ famsize : chr "GT3" "GT3" "LE3" "GT3" ...
## $ Pstatus : chr "A" "T" "T" "T" ...
## $ Medu : int 4 1 1 4 3 4 2 4 3 3 ...
## $ Fedu : int 4 1 1 2 3 3 2 4 2 4 ...
## $ Mjob : chr "at_home" "at_home" "at_home" "health" ...
## $ Fjob : chr "teacher" "other" "other" "services" ...
## $ reason : chr "course" "course" "other" "home" ...
## $ guardian : chr "mother" "father" "mother" "mother" ...
## $ traveltime: int 2 1 1 1 1 1 1 2 1 1 ...
## $ studytime : int 2 2 2 3 2 2 2 2 2 2 ...
## $ failures : int 0 0 3 0 0 0 0 0 0 0 ...
## $ schoolsup : chr "yes" "no" "yes" "no" ...
## $ famsup : chr "no" "yes" "no" "yes" ...
## $ paid : chr "no" "no" "yes" "yes" ...
## $ activities: chr "no" "no" "no" "yes" ...
## $ nursery : chr "yes" "no" "yes" "yes" ...
## $ higher : chr "yes" "yes" "yes" "yes" ...
## $ internet : chr "no" "yes" "yes" "yes" ...
## $ romantic : chr "no" "no" "no" "yes" ...
## $ famrel : int 4 5 4 3 4 5 4 4 4 5 ...
## $ freetime : int 3 3 3 2 3 4 4 1 2 5 ...
## $ goout : int 4 3 2 2 2 2 4 4 2 1 ...
## $ Dalc : int 1 1 2 1 1 1 1 1 1 1 ...
## $ Walc : int 1 1 3 1 2 2 1 1 1 1 ...
## $ health : int 3 3 3 5 5 5 3 1 1 5 ...
## $ absences : int 6 4 10 2 4 10 0 6 0 0 ...
## $ G1 : int 5 5 7 15 6 15 12 6 16 14 ...
## $ G2 : int 6 5 8 14 10 15 12 5 18 15 ...
## $ G3 : int 6 6 10 15 10 15 11 6 19 15 ...
Para el análisis de una variable numérica se seleccionó la variable age, correspondiente a la edad de los estudiantes.
Se calcularon diferentes medidas estadísticas con el propósito de analizar la tendencia central, la dispersión y la distribución de las edades.
La media permite determinar la edad promedio de los estudiantes.
mean(datos$age, na.rm = TRUE)
## [1] 16.6962
La edad promedio de los estudiantes es de aproximadamente 16,7 años. Esto indica que, en promedio, los estudiantes de bachillerato incluidos en la base de datos tienen una edad cercana a los 17 años.
La mediana corresponde al valor central de los datos cuando estos se encuentran ordenados.
median(datos$age, na.rm = TRUE)
## [1] 17
La mediana de la edad es de 17 años. Esto significa que el 50 % de los estudiantes tiene una edad menor o igual a 17 años, mientras que el otro 50 % tiene una edad mayor o igual a 17 años.
La varianza permite medir el grado de dispersión de los datos con respecto a la media.
var(datos$age, na.rm = TRUE)
## [1] 1.628285
La varianza obtenida es de aproximadamente 1,63 años, lo que indica que las edades presentan una baja dispersión con respecto a la edad promedio.
La desviación estándar permite determinar qué tan dispersos se encuentran los datos alrededor de la media.
sd(datos$age, na.rm = TRUE)
## [1] 1.276043
La desviación estándar es de aproximadamente 1,27 años. Este resultado evidencia una baja dispersión de las edades con respecto a la media de 16,7 años.
El coeficiente de variación permite medir la variabilidad de los datos en relación con su media.
cv_age <- (sd(datos$age, na.rm = TRUE) /
mean(datos$age, na.rm = TRUE)) * 100
cv_age
## [1] 7.642712
El coeficiente de variación obtenido es de aproximadamente 7,64 %. Este resultado indica que existe una baja variabilidad de las edades con respecto a su promedio.
Para complementar el análisis se calcularon los cuantiles correspondientes al 25 %, 50 % y 75 %.
cuantiles <- quantile(
datos$age,
probs = c(0.25, 0.50, 0.75),
na.rm = TRUE
)
cuantiles
## 25% 50% 75%
## 16 17 18
El diagrama de caja permite observar la distribución de las edades, los cuantiles, la mediana y los posibles valores atípicos.
library(ggplot2)
ggplot(datos, aes(y = age)) +
geom_boxplot(
fill = "#00FA9A",
color = "black"
) +
labs(
title = "Boxplot de la variable Edad",
y = "Edad"
) +
theme_minimal()
El boxplot evidencia que el 50 % de los estudiantes de bachillerato presenta edades entre 16 y 18 años, con una mediana de 17 años. Asimismo, se identifica un valor atípico correspondiente a un estudiante de 22 años. La concentración de las edades alrededor de los 16, 17 y 18 años refleja una baja dispersión de los datos, lo cual es consistente con una desviación estándar de 1,27 años y un coeficiente de variación de 7,64 %, indicando que las edades presentan poca variabilidad respecto a su media.
El histograma permite observar la distribución de las edades y la frecuencia de estudiantes en cada grupo de edad.
# Histograma
ggplot(datos, aes(x = age)) +
geom_histogram(
bins = 30,
fill = "#F08080",
color = "black"
) +
labs(
title = "Distribución de la variable Edad",
x = "Edad",
y = "Frecuencia"
) +
theme_minimal()
En la gráfica se observa que la mayor frecuencia corresponde a los estudiantes de 16 años, seguida por aquellos de 17 años. Asimismo, se presenta una cantidad de estudiantes con edades de 15 y 18 años. A partir de los 19 años, la frecuencia disminuye considerablemente, encontrándose pocos estudiantes con edades de 20, 21 y 22 años.
En términos generales, la distribución muestra una mayor concentración de estudiantes entre los 15 y 18 años, mientras que se observa una cola hacia la derecha, asociada a la presencia de estudiantes con edades de 21 y 22 años. Esto indica una ligera asimetría positiva en la distribución de las edades.
Para analizar la relación entre las variables numéricas se seleccionaron cuatro variables de la base de datos:
vars_numericas <- datos[, c(
"age",
"Medu",
"Fedu",
"studytime"
)]
head(vars_numericas)
## age Medu Fedu studytime
## 1 18 4 4 2
## 2 17 1 1 2
## 3 15 1 1 2
## 4 15 4 2 3
## 5 16 3 3 2
## 6 16 4 3 2
Se construyó una matriz de correlación con el propósito de identificar la relación existente entre las variables numéricas seleccionadas.
cor(vars_numericas, use = "complete.obs")
## age Medu Fedu studytime
## age 1.000000000 -0.16365842 -0.163438069 -0.004140037
## Medu -0.163658419 1.00000000 0.623455112 0.064944137
## Fedu -0.163438069 0.62345511 1.000000000 -0.009174639
## studytime -0.004140037 0.06494414 -0.009174639 1.000000000
La relación más importante se encuentra entre Medu y Fedu, con una correlación de 0,623. Esto indica que existe una relación positiva: cuando aumenta el nivel educativo de la madre, también tiende a aumentar el nivel educativo del padre.
Por otro lado, studytime presenta correlaciones bajas con Fedu, Medu y age, por lo que no se observa una relación lineal importante entre estas variables dentro de los datos analizados.
Para complementar el análisis se construyó una matriz de dispersión, la cual permite observar gráficamente la relación entre las variables numéricas seleccionadas.
library(GGally)
ggpairs(vars_numericas)
La matriz de dispersión permite visualizar el comportamiento conjunto de las variables.
De acuerdo con los resultados, la relación más importante se presenta entre Medu y Fedu, lo cual coincide con el coeficiente de correlación de 0,623.
Esta relación indica que existe una asociación positiva entre el nivel educativo de la madre y el nivel educativo del padre.
Para realizar la comparación según una variable categórica se seleccionó:
El objetivo es comparar la edad promedio y la dispersión de las edades entre mujeres y hombres.
Se calculó la media de edad para cada categoría de la variable sex.
tapply(
datos$age,
datos$sex,
mean,
na.rm = TRUE
)
## F M
## 16.73077 16.65775
Los resultados muestran que la edad promedio de las mujeres es de 16,73 años, mientras que la edad promedio de los hombres es de 16,66 años.
Por lo tanto, las mujeres presentan una edad promedio ligeramente superior a la de los hombres, con una diferencia aproximada de 0,07 años.
Sin embargo, esta diferencia es pequeña, por lo que las edades promedio de ambos grupos son muy similares.
Se calculó la desviación estándar de la edad para cada grupo.
tapply(
datos$age,
datos$sex,
sd,
na.rm = TRUE
)
## F M
## 1.201696 1.356181
Los resultados obtenidos muestran una desviación estándar de aproximadamente:
Los hombres presentan una mayor dispersión en las edades, debido a que su desviación estándar es superior a la de las mujeres.
Por el contrario, las mujeres presentan una menor dispersión, lo que indica que sus edades son ligeramente más homogéneas alrededor de su promedio.
En conclusión, aunque las edades promedio de hombres y mujeres son muy similares, las mujeres presentan una edad promedio ligeramente mayor, mientras que los hombres presentan una mayor variabilidad en sus edades.
Para complementar la comparación entre hombres y mujeres se construyó un diagrama de caja de la edad según el sexo.
ggplot(datos, aes(x = sex, y = age)) +
geom_boxplot(
fill = "#FFDAB9",
color = "black"
) +
labs(
title = "Distribución de la edad según sexo",
x = "Sexo",
y = "Edad"
) +
theme_minimal()
El boxplot comparativo permite observar la distribución de las edades para hombres y mujeres.
Los resultados muestran que las distribuciones son bastante similares, lo cual coincide con las edades promedio obtenidas para ambos grupos.
También se puede observar una mayor dispersión en el grupo de hombres, resultado que coincide con la desviación estándar de 1,36 años, frente a 1,20 años para las mujeres.
Por lo tanto, el análisis permite concluir que las mujeres presentan una edad promedio ligeramente superior, mientras que los hombres presentan una mayor dispersión en sus edades.
La población estudiantil analizada presenta una alta concentración en edades entre los 16 y 18 años, con una edad promedio de 16,7 años y una baja variabilidad. La desviación estándar de 1,27 años y el coeficiente de variación de 7,64 % evidencian que las edades son relativamente homogéneas. Sin embargo, la presencia de estudiantes de 21 y 22 años genera una ligera asimetría positiva y un valor atípico identificado en el boxplot.
Entre las variables numéricas analizadas, la relación más significativa se presenta entre el nivel educativo de la madre (Medu) y del padre (Fedu), con una correlación de 0,623, lo que indica una relación positiva fuerte. Esto sugiere que, en general, un mayor nivel educativo de uno de los padres tiende a estar asociado con un mayor nivel educativo del otro. Por el contrario, el tiempo dedicado al estudio (studytime) no presenta una relación lineal significativa con la edad ni con el nivel educativo de los padres.
Finalmente, el análisis por sexo evidencia que las diferencias en la edad de los estudiantes son mínimas. Las mujeres presentan una edad promedio de 16,73 años, mientras que los hombres tienen un promedio de 16,66 años, con una diferencia de apenas 0,07 años. Aunque los hombres presentan una dispersión ligeramente mayor en sus edades, en términos generales, tanto hombres como mujeres mantienen un comportamiento similar, por lo que el sexo no representa una diferencia relevante respecto a la edad dentro de la población analizada.