El propósito de esta guía es desarrollar un análisis estadístico completo que incluya:
El estudiante debe interpretar cada resultado y justificar sus decisiones estadísticas.
library(dplyr) # Manipulación y transformación de datos
library(ggplot2) # Visualización gráfica de datos
library(psych) # Estadísticos descriptivos avanzados
library(corrplot) # Visualización de matrices de correlación
library(readr) # Importación eficiente de datos
library(GGally) # Gráficos multivariados (ggpairs)
library(car) # Diagnóstico de modelos de regresión
library(MASS) # Selección de modelos (stepAIC)## Rows: 200 Columns: 6
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): student_id
## dbl (5): hours_studied, sleep_hours, attendance_percent, previous_scores, ex...
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Descripción de variables:
## spc_tbl_ [200 × 6] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
## $ student_id : chr [1:200] "S001" "S002" "S003" "S004" ...
## $ hours_studied : num [1:200] 8 1.3 4 3.5 9.1 8.4 10.8 2 5.6 1.3 ...
## $ sleep_hours : num [1:200] 8.8 8.6 8.2 4.8 6.4 5.1 6 4.3 5.9 8.9 ...
## $ attendance_percent: num [1:200] 72.1 60.7 73.7 95.1 89.8 58.5 54.2 75.8 81.6 66.8 ...
## $ previous_scores : num [1:200] 45 55 86 66 71 75 88 55 84 70 ...
## $ exam_score : num [1:200] 30.2 25 35.8 34 40.3 35.7 37.9 18.3 34.7 24.7 ...
## - attr(*, "spec")=
## .. cols(
## .. student_id = col_character(),
## .. hours_studied = col_double(),
## .. sleep_hours = col_double(),
## .. attendance_percent = col_double(),
## .. previous_scores = col_double(),
## .. exam_score = col_double()
## .. )
## - attr(*, "problems")=<externalptr>
## [1] 200 6
## [1] "student_id" "hours_studied" "sleep_hours"
## [4] "attendance_percent" "previous_scores" "exam_score"
## student_id hours_studied sleep_hours attendance_percent
## Length:200 Min. : 1.000 Min. :4.000 Min. : 50.30
## Class :character 1st Qu.: 3.500 1st Qu.:5.300 1st Qu.: 62.20
## Mode :character Median : 6.150 Median :6.700 Median : 75.25
## Mean : 6.325 Mean :6.622 Mean : 74.83
## 3rd Qu.: 9.000 3rd Qu.:8.025 3rd Qu.: 87.42
## Max. :12.000 Max. :9.000 Max. :100.00
## previous_scores exam_score
## Min. :40.0 Min. :17.10
## 1st Qu.:54.0 1st Qu.:29.50
## Median :67.5 Median :34.05
## Mean :66.8 Mean :33.95
## 3rd Qu.:80.0 3rd Qu.:38.75
## Max. :95.0 Max. :51.30
Interpretación de la exploración inicial de los datos
A partir de las funciones str(), dim(),
names() y summary(), se obtiene la siguiente
comprensión de la base de datos:
Estructura de los datos (str())
La base de datos contiene 200 observaciones y 6 variables. Se identifican:
student_id: identificador del estudiante (no se utiliza
en el modelo)hours_studiedsleep_hoursattendance_percentprevious_scoresexam_score (variable respuesta)El conjunto de datos es adecuado para aplicar modelos de regresión lineal, ya que la variable respuesta es continua y los predictores son numéricos.
Dimensión de los datos (dim())
El tamaño muestral es suficiente para un análisis estadístico básico y permite estimaciones relativamente estables en el modelo de regresión.
Nombres de variables (names())
Permiten identificar claramente cada variable y su rol en el análisis. Se recomienda usar nombres claros y consistentes, como en este caso, lo cual facilita la interpretación y modelamiento.
Estadísticos descriptivos
(summary())
Variable: hours_studied
Existe variabilidad en los hábitos de estudio. La media sugiere un nivel moderado de dedicación.
Variable: sleep_hours
Los estudiantes presentan patrones de sueño relativamente homogéneos, aunque algunos duermen pocas horas (posible factor de riesgo).
Variable: attendance_percent
La asistencia es moderadamente alta, pero con variabilidad importante que podría influir en el rendimiento.
Variable: previous_scores
El rendimiento previo muestra dispersión, lo cual es relevante para explicar el desempeño actual.
Variable: exam_score (respuesta)
Existe variabilidad en el rendimiento académico, lo que justifica el uso de un modelo explicativo.
DE MANERA GENERAL:
Los datos presentan condiciones adecuadas para:
En las siguientes secciones se evaluará si estas variables explican
significativamente el rendimiento académico
(exam_score).
## student_id hours_studied sleep_hours attendance_percent
## 0 0 0 0
## previous_scores exam_score
## 0 0
## student_id hours_studied sleep_hours attendance_percent
## 0 0 0 0
## previous_scores exam_score
## 0 0
No hay datos faltantes
Interpretación:
Tabla completa de estadisticos descriptivos y desviaciones estándar de las variables
## [1] 3.227317
## [1] 1.497138
## [1] 14.24991
## [1] 15.66387
## [1] 6.789548
Interpretación de los estadísticos descriptivos
El análisis descriptivo de las variables evidencia que, en general, los datos presentan un comportamiento adecuado para el modelamiento estadístico. En particular, la variable hours_studied muestra una media de 6.33 horas con una desviación estándar de 3.23, lo que indica una variabilidad moderada en los hábitos de estudio entre los estudiantes. Por su parte, sleep_hours presenta una media de 6.62 horas y una desviación estándar de 1.50, reflejando una mayor homogeneidad en los patrones de sueño. La variable attendance_percent tiene una media de 74.83% y una desviación estándar de 14.25, lo que sugiere una dispersión considerable en la asistencia, potencialmente relevante para explicar el rendimiento académico. De manera similar, previous_scores presenta una media de 66.80 y una desviación estándar de 15.66, evidenciando diferencias importantes en el desempeño previo de los estudiantes.
En cuanto a la variable respuesta, exam_score, se observa una media de 33.95 con una desviación estándar de 6.79, lo que indica una variabilidad moderada en los resultados del examen final, suficiente para justificar su modelamiento. Adicionalmente, todas las variables presentan coeficientes de asimetría cercanos a cero, lo que sugiere distribuciones aproximadamente simétricas, mientras que los valores de curtosis negativos indican distribuciones ligeramente más planas que la normal (platicúrticas), reduciendo la presencia de valores extremos. En conjunto, estas características sugieren que los datos cumplen condiciones favorables para la aplicación de técnicas estadísticas como el análisis de correlación y la regresión lineal.
ggplot(punt_estud, aes(x = hours_studied)) +
geom_histogram(fill = "steelblue", color = "black", bins = 15) +
theme_minimal() +
labs(title = "Horas de estudio")ggplot(punt_estud, aes(x = sleep_hours)) +
geom_histogram(fill = "orange", color = "black", bins = 15) +
theme_minimal()ggplot(punt_estud, aes(x = attendance_percent)) +
geom_histogram(fill = "green", color = "black", bins = 15) +
theme_minimal()ggplot(punt_estud, aes(x = previous_scores)) +
geom_histogram(fill = "purple", color = "black", bins = 15) +
theme_minimal()ggplot(punt_estud, aes(x = exam_score)) +
geom_histogram(fill = "red", color = "black", bins = 15) +
theme_minimal()Diagrama de caja y bigotes
library(dplyr)
var_cuant <- punt_estud %>%
dplyr::select(hours_studied, sleep_hours, attendance_percent,
previous_scores, exam_score)
matriz_cor <- cor(var_cuant)
round(matriz_cor,2)## hours_studied sleep_hours attendance_percent previous_scores
## hours_studied 1.00 0.08 -0.03 0.07
## sleep_hours 0.08 1.00 0.00 -0.19
## attendance_percent -0.03 0.00 1.00 0.05
## previous_scores 0.07 -0.19 0.05 1.00
## exam_score 0.78 0.19 0.23 0.43
## exam_score
## hours_studied 0.78
## sleep_hours 0.19
## attendance_percent 0.23
## previous_scores 0.43
## exam_score 1.00
quartz()
pairs(var_cuant, main="Diagrama de dispersión")
ggpairs(var_cuant,main="Matriz de Correlaciones")## Warning in warn_if_args_exist(list(...)): Extra arguments: 'main' are being
## ignored. If these are meant to be aesthetics, submit them using the 'mapping'
## variable within ggpairs with ggplot2::aes or ggplot2::aes_string.
Interpretación de la matriz de correlación
La matriz de correlación permite analizar la relación lineal entre las variables cuantitativas del estudio. En particular, se observa que la variable exam_score presenta una correlación positiva fuerte con hours_studied (r = 0.78), lo que indica que a mayor número de horas de estudio, mayor tiende a ser el puntaje en el examen. Esta relación es la más relevante del conjunto y sugiere que las horas de estudio son un factor determinante en el rendimiento académico.
Por otro lado, la correlación entre exam_score y previous_scores es moderada y positiva (r = 0.43), lo que indica que los estudiantes con mejores antecedentes académicos tienden a obtener mejores resultados en el examen, aunque con menor intensidad que las horas de estudio. Asimismo, la relación con attendance_percent es positiva pero débil (r = 0.23), sugiriendo que la asistencia tiene un efecto limitado sobre el rendimiento. En el caso de sleep_hours, la correlación con exam_score es débil (r = 0.19), lo que indica una relación poco significativa en términos prácticos.
En cuanto a las relaciones entre variables explicativas, se observa que las correlaciones son en general bajas (cercanas a cero), lo que sugiere ausencia de problemas graves de multicolinealidad. La correlación más notable es entre sleep_hours y previous_scores (r = -0.19), aunque su magnitud sigue siendo baja.
En conjunto, estos resultados indican que hours_studied y, en menor medida, previous_scores, son las variables con mayor potencial explicativo del rendimiento académico (exam_score). Además, la baja correlación entre las variables independientes favorece la estabilidad en la estimación de los coeficientes en un modelo de regresión lineal.
Interpretación:
##
## Pearson's product-moment correlation
##
## data: punt_estud$hours_studied and punt_estud$exam_score
## t = 17.354, df = 198, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## 0.7150718 0.8264303
## sample estimates:
## cor
## 0.7767514
Hipótesis:
Interpretación: