Este taller presenta un análisis estadístico sobre el rendimiento académico y hábitos de estudio de estudiantes universitarios. Se utilizan técnicas de muestreo probabilístico y análisis de estimadores para responder preguntas de investigación relevantes.
¿Existe una relación significativa entre las horas de estudio semanales y el promedio académico de los estudiantes universitarios?
Generamos una población de 1000 estudiantes universitarios con las siguientes características:
# Crear población de 1000 estudiantes
n_poblacion = 1000
# Establecer semilla para reproducibilidad de la población
set.seed(1)
poblacion = data.frame(
id = 1:n_poblacion,
edad = round(rnorm(n_poblacion, mean = 20, sd = 2)),
horas_estudio = round(pmax(0, rnorm(n_poblacion, mean = 15, sd = 5)), 1),
promedio = round(pmax(0, pmin(5, rnorm(n_poblacion, mean = 3.5, sd = 0.6))), 2),
genero = sample(c("M", "F"), n_poblacion, replace = TRUE),
semestre = sample(1:10, n_poblacion, replace = TRUE)
)
# Crear variable categórica: aprueba con buen promedio (>3.5) donde 1 indicará que si aprueba y 0 indicará que no aprueba)
poblacion$aprueba = ifelse(poblacion$promedio > 3.5, 1, 0)
#Se visualizan los primeros 25 estudiantes de la población
head(poblacion, 25)
## id edad horas_estudio promedio genero semestre aprueba
## 1 1 19 20.7 2.97 M 10 0
## 2 2 20 20.6 2.35 F 2 0
## 3 3 18 10.6 4.47 F 5 1
## 4 4 23 16.1 3.81 M 3 1
## 5 5 21 15.3 3.47 F 1 0
## 6 6 18 6.7 3.92 M 7 1
## 7 7 21 19.1 3.53 M 8 1
## 8 8 21 5.4 2.71 M 2 0
## 9 9 21 8.8 2.23 M 10 0
## 10 10 19 20.0 3.38 M 9 0
## 11 11 23 12.3 3.31 M 10 0
## 12 12 21 13.9 2.87 M 9 0
## 13 13 19 6.9 3.75 M 2 1
## 14 14 16 7.7 3.31 M 7 0
## 15 15 22 16.8 4.00 F 5 1
## 16 16 20 14.1 4.27 F 9 1
## 17 17 20 12.0 3.12 M 9 0
## 18 18 22 8.3 2.97 M 4 0
## 19 19 22 9.5 3.59 M 4 1
## 20 20 21 25.2 4.36 F 4 1
## 21 21 22 13.4 2.46 M 6 0
## 22 22 22 18.9 3.00 M 2 0
## 23 23 20 18.9 3.07 F 9 0
## 24 24 16 18.8 3.72 F 10 1
## 25 25 21 16.5 4.93 M 5 1
Las variables a tomar son Horas de Estudio Semanales (horas_estudio) y Promedio Académico (promedio)
Utilizamos Muestreo Aleatorio Simple (MAS) para garantizar que cada elemento de la población tenga la misma probabilidad de ser seleccionado.
# Establecer semilla para reproducibilidad del muestreo
set.seed(2)
n_muestra1 = round(0.70 * n_poblacion)
indices_muestra1 = sample(1:n_poblacion, n_muestra1, replace = FALSE)
muestra1 = poblacion[indices_muestra1, ]
cat("Tamaño de la Muestra 1:", nrow(muestra1), "estudiantes.")
## Tamaño de la Muestra 1: 700 estudiantes.
#Se visualizan los primeros 5 estudiantes de la muestra 2.
head(muestra1, 5)
## id edad horas_estudio promedio genero semestre aprueba
## 853 853 18 18.7 4.10 F 5 1
## 975 975 14 11.9 3.32 M 10 0
## 710 710 24 7.4 2.95 F 4 0
## 774 774 23 19.4 3.29 F 4 0
## 416 416 21 14.4 4.60 F 4 1
# Establecer semilla para reproducibilidad del muestreo
set.seed(3)
n_muestra2 = round(0.30 * n_poblacion)
indices_muestra2 = sample(1:n_poblacion, n_muestra2, replace = FALSE)
muestra2 = poblacion[indices_muestra2, ]
cat("Tamaño de la Muestra 1:", nrow(muestra1), "estudiantes.")
## Tamaño de la Muestra 1: 700 estudiantes.
#Se visualizan los primeros 5 estudiantes de la muestra 2.
head(muestra2, 5)
## id edad horas_estudio promedio genero semestre aprueba
## 773 773 22 12.2 3.71 F 8 1
## 698 698 21 5.5 3.99 F 3 1
## 652 652 18 12.5 3.48 F 8 0
## 548 548 21 12.5 4.45 F 5 1
## 999 999 17 20.0 2.20 F 7 0
Se toma como estimador la Media Muestral (\(\bar{X}\)) porque caracteriza el nivel promedio de horas de estudio y promedio académico, necesario para contextualizar las variables antes de analizar su relación.
NO se toman los estimadores Varianza Muestral (\(S^2\)) y Desviación Estándar (S) ya que la pregunta de investigación busca determinar si EXISTE RELACIÓN entre las variables, no cuantificar su dispersión. Los estimadores de variabilidad no son necesarios para responder si dos variables están correlacionadas.
# Parámetro poblacional
mu_horas_pob = mean(poblacion$horas_estudio)
# Estimadores muestrales
media_horas_m1 = mean(muestra1$horas_estudio)
media_horas_m2 = mean(muestra2$horas_estudio)
#Se visualizan los resultados
cat(" Parámetro poblacional:", round(mu_horas_pob,2),"\n","Estimador Muestra 1: ", round(media_horas_m1,2),"\n","Estimador Muestra 2: ", round(media_horas_m2,2))
## Parámetro poblacional: 14.92
## Estimador Muestra 1: 14.96
## Estimador Muestra 2: 15.11
diferencia_poblacion_m1 = abs(media_horas_m1 - mu_horas_pob)
cat("Diferencia observada entre media muestral y poblacional:", diferencia_poblacion_m1)
## Diferencia observada entre media muestral y poblacional: 0.03971429
El estimador de la media muestral presenta una diferencia de aproximadamente 0.04 con respecto a la media poblacional (14.96 vs. 14.92).
Según la tabla de propiedades del estimador, este valor corresponde a un sesgo pequeño, atribuible a la variabilidad muestral y no a un desplazamiento sistemático. Se considera aceptable al no tener impacto significativo sobre el error cuadrático medio (MSE). Pero esta conclusión aplica solo para el ejercicio netamente académico (ver nota).
diferencia_poblacion_m2 = abs(media_horas_m2 - mu_horas_pob)
cat("Diferencia observada entre media muestral y poblacional:", diferencia_poblacion_m2)
## Diferencia observada entre media muestral y poblacional: 0.189
El estimador de la media muestral presenta una diferencia de aproximadamente 0.19 con respecto a la media poblacional (15.11 vs. 14.92).
Según la tabla de propiedades del estimador, este valor corresponde a un sesgo pequeño, atribuible a la variabilidad muestral y no a un desplazamiento sistemático. Se considera aceptable al no tener impacto significativo sobre el error cuadrático medio (MSE). Pero esta conclusión aplica solo para el ejercicio netamente académico (ver nota).
NOTA: Se debe aclarar que la media muestral es INSESGADA, teóricamente:
\[E[\bar{X}]=\mu\] Según la teoría, las diferencias observadas entre las medias muestrales y la media poblacional son variabilidad aleatoria, NO sesgo.
En conclusión, las diferencias observadas entre medias muestrales y media poblacional NO representa sesgo del estimador. Esta es VARIABILIDAD MUESTRAL ALEATORIA, esperada en cualquier Muestreo Aleatorio Simple (MAS).
El estimador NO tiene sesgo sistemático. Si repitiéramos el muestreo infinitas veces: E[\(\bar{X}\)] = \(\mu\), la diferencia observada tiende a 0 al promediar sobre muchas muestras posibles.
Al validar los resultados obtenidos para la media poblacional y las medias muestrales:
#Se visualizan los resultados
cat(" Parámetro poblacional:", round(mu_horas_pob,2),"\n","Estimador Muestra 1: ", round(media_horas_m1,2),"\n","Estimador Muestra 2: ", round(media_horas_m2,2))
## Parámetro poblacional: 14.92
## Estimador Muestra 1: 14.96
## Estimador Muestra 2: 15.11
Se evidencia que la media muestral se acerca a la media poblacional cuando se agregan mas datos, es decir, la media muestral converge hacia la media poblacional al aumentar el tamaño de muestra. En conclusión, el estimador de la media es consistente.
Es asociada a que tan grande es la varianza de un estimador.
\[Var(\hat{\theta}_1) < Var(\hat{\theta}_2)\] Para el caso del estimador de la media muestral:
\[Var(\bar{X}) = {\sigma}^2/n\]
# Varianza del estimador de la media = varianza muestral / tamaño de la muestra
var_horas_m1 = var(muestra1$horas_estudio)
var_horas_m2 = var(muestra2$horas_estudio)
var_media_m1 = var_horas_m1 / nrow(muestra1)
var_media_m2 = var_horas_m2 / nrow(muestra2)
cat(" Varianza muestra 1:", round(var_media_m1,2), "\n", "Varianza muestra 2:", round(var_media_m2,2), "\n")
## Varianza muestra 1: 0.04
## Varianza muestra 2: 0.1
if (var_media_m1 < var_media_m2) {
cat("El estimador de la media en la Muestra 1 es MÁS EFICIENTE (menor varianza).")
} else if (var_media_m1 > var_media_m2) {
cat("El estimador de la media en la Muestra 2 es MÁS EFICIENTE (menor varianza).")
} else {
cat("Ambos estimadores tienen EFICIENCIA SIMILAR.")
}
## El estimador de la media en la Muestra 1 es MÁS EFICIENTE (menor varianza).
Un estimador es suficiente cuando utiliza toda la información contenida en la muestra respecto al parámetro de interés.
En este, el parámetro poblacional de horas de estudio fue de 14.92.
La media muestral de la muestra 1 (70%) fue de 14.96 horas, mientras que la media muestral de la muestra 2 (30%) fue de 15.11 horas.
Ambas medias muestrales resumen completamente la información relevante de sus respectivas muestras sobre el promedio poblacional de horas de estudio, ya que cada una incorpora todos los valores observados de la variable horas_estudio para estimar el parámetro \(\mu\).
Por tanto, tanto la media muestral de la muestra 1 como la de la muestra 2 son estimadores suficientes, pues utilizan toda la información disponible en los datos para representar el comportamiento promedio de la población sin pérdida de información estadística.
# Parámetro poblacional
mu_promedio_pob = mean(poblacion$promedio)
# Estimadores muestrales
media_promedio_m1 = mean(muestra1$promedio)
media_promedio_m2 = mean(muestra2$promedio)
#Se visualizan los resultados
cat(" Parámetro poblacional:", round(mu_promedio_pob,4),"\n","Estimador Muestra 1: ", round(media_promedio_m1,4),"\n","Estimador Muestra 2: ", round(media_promedio_m2,4))
## Parámetro poblacional: 3.5086
## Estimador Muestra 1: 3.5086
## Estimador Muestra 2: 3.5174
diferencia_poblacion_m1 = abs(media_promedio_m1 - mu_promedio_pob)
cat("La diferencia es:", diferencia_poblacion_m1)
## La diferencia es: 1e-05
El estimador de la media muestral presenta una diferencia de aproximadamente 0.00001 con respecto a la media poblacional (3.5086 vs. 3.5086).
Según la tabla de propiedades del estimador, este valor corresponde a un sesgo pequeño, atribuible a la variabilidad muestral y no a un desplazamiento sistemático. Se considera aceptable al no tener impacto significativo sobre el error cuadrático medio (MSE). Pero esta conclusión aplica solo para el ejercicio netamente académico (ver nota).
diferencia_poblacion_m2 = abs(media_promedio_m2 - mu_promedio_pob)
cat("La diferencia es:", diferencia_poblacion_m2)
## La diferencia es: 0.00879
El estimador de la media muestral presenta una diferencia de aproximadamente 0.00879 con respecto a la media poblacional (3.5174 vs. 3.5086).
Según la tabla de propiedades del estimador, este valor corresponde a un sesgo pequeño, atribuible a la variabilidad muestral y no a un desplazamiento sistemático. Se considera aceptable al no tener impacto significativo sobre el error cuadrático medio (MSE). Pero esta conclusión aplica solo para el ejercicio netamente académico (ver nota).
NOTA: Se debe aclarar que la media muestral es INSESGADA, teóricamente:
\[E[\bar{X}]=\mu\] Según la teoría, las diferencias observadas entre las medias muestrales y la media poblacional son variabilidad aleatoria, NO sesgo.
En conclusión, las diferencias observadas entre medias muestrales y media poblacional NO representa sesgo del estimador. Esta es VARIABILIDAD MUESTRAL ALEATORIA, esperada en cualquier Muestreo Aleatorio Simple (MAS).
El estimador NO tiene sesgo sistemático. Si repitiéramos el muestreo infinitas veces: \(E[\bar{X}]\) = \(\mu\), la diferencia observada tiende a 0 al promediar sobre muchas muestras posibles.
Al validar los resultados obtenidos para la media poblacional y las medias muestrales:
#Se visualizan los resultados
cat(" Parámetro poblacional:", round(mu_promedio_pob,4),"\n","Estimador Muestra 1: ", round(media_promedio_m1,4),"\n","Estimador Muestra 2: ", round(media_promedio_m2,4))
## Parámetro poblacional: 3.5086
## Estimador Muestra 1: 3.5086
## Estimador Muestra 2: 3.5174
Se evidencia que la media muestral se acerca a la media poblacional cuando se agregan mas datos, es decir, la media muestral converge hacia la media poblacional al aumentar el tamaño de muestra. En conclusión, el estimador de la media es consistente.
Es asociada a que tan grande es la varianza de un estimador.
\[Var(\hat{\theta}_1) < Var(\hat{\theta}_2)\] Para el caso del estimador de la media muestral:
\[Var(\bar{X}) = {\sigma}^2/n\]
# Varianza del estimador de la media = varianza muestral / tamaño de la muestra
var_promedio_m1 = var(muestra1$promedio)
var_promedio_m2 = var(muestra2$promedio)
var_media_m1 = var_promedio_m1 / nrow(muestra1)
var_media_m2 = var_promedio_m2 / nrow(muestra2)
cat(" Varianza muestra 1:", format(round(var_media_m1,4), scientific = FALSE), "\n", "Varianza muestra 2:", format(round(var_media_m2,4), scientific = FALSE), "\n")
## Varianza muestra 1: 0.0006
## Varianza muestra 2: 0.0013
if (var_media_m1 < var_media_m2) {
cat("El estimador de la media en la Muestra 1 es MÁS EFICIENTE (menor varianza).")
} else if (var_media_m1 > var_media_m2) {
cat("El estimador de la media en la Muestra 2 es MÁS EFICIENTE (menor varianza).")
} else {
cat("Ambos estimadores tienen EFICIENCIA SIMILAR.")
}
## El estimador de la media en la Muestra 1 es MÁS EFICIENTE (menor varianza).
Un estimador es suficiente cuando utiliza toda la información contenida en la muestra respecto al parámetro de interés.
En este, el parámetro poblacional de la media para el promedio académico fue de 3.5086.
La media muestral de la muestra 1 (70%) fue de 3.5086, mientras que la media muestral de la muestra 2 (30%) fue de 3.5174.
Ambas medias muestrales resumen completamente la información relevante de sus respectivas muestras sobre el promedio poblacional de promedio académico, ya que cada una incorpora todos los valores observados de la variable promedio para estimar el parámetro \(\mu\).
Por tanto, tanto la media muestral de la muestra 1 como la de la muestra 2 son estimadores suficientes, pues utilizan toda la información disponible en los datos para representar el comportamiento promedio de la población sin pérdida de información estadística.
NO se construyen IC para \(\mu\) (medias poblacionales):
Los intervalos de confianza solo se construyen para parámetros que son OBJETIVO DIRECTO de inferencia.
La pregunta NO es: ‘¿Cuántas horas estudian los universitarios? La pregunta ES:’¿Existe relación entre horas y promedio?
Las medias caracterizan las variables pero NO responden la pregunta de investigación. Son valores de CONTEXTO, no objetivos de inferencia.
El estudio busca DETECTAR CORRELACIÓN (prueba de hipótesis), NO estimar parámetros individuales con precisión.
Con el fin de continuar con los datos que hemos venido utilizando (estudiantes universitarios), para la prueba de hipótesis tomaremos la Muestra 1 (700 estudiantes), asumiendo que desconocemos la población con el fin de realizar Inferencia.
También indicamos que el nivel de significancia que tomamos es \({\alpha}\)=0.05. Significa que estamos dispuestos a aceptar un 5% de probabilidad de rechazar \(H_0\) cuando en realidad es verdadera (Error Tipo I).
Basándonos en la pregunta de investigación, relacionada en el punto 1.1 del presente Informe:
No existe relación significativa entre las horas de estudio semanales y el promedio académico de los estudiantes universitarios.
Basándonos en la pregunta de investigación, relacionada en el punto 1.1 del presente Informe:
Sí existe relación significativa entre las horas de estudio semanales y el promedio académico de los estudiantes universitarios.
Se genera gráfico Q-Q plot para las variables Horas de Estudio y Promedio Académico.
par(mfrow = c(1, 2))
#Horas de Estudio
qqnorm(muestra1$horas_estudio, main = "Q-Q Plot: Horas de Estudio")
qqline(muestra1$horas_estudio, col = 2)
#Horas de Promedio
qqnorm(muestra1$promedio, main = "Q-Q Plot: Promedio Académico")
qqline(muestra1$promedio, col = 2)
Según los puntos observados en el Q-Q plot, de ambas variables (Horas de estudio y Promedio académico), visualmente se evidencia que se alinean aproximadamente en una línea diagonal, en ese caso se considera que los datos son aproximadamente normales.
Debido a que el tamaño de nuestra muestar es grande (n=700), teniendo en cuenta la población (simulación de 1000 estudiantes universitarios), utilizamos la prueba de Kolmogorov-Smirnov.
Contamos con un nivel de significancia de 0.05.
ks.test(muestra1$horas_estudio, "pnorm", mean = mean(muestra1$horas_estudio), sd = sd(muestra1$horas_estudio))
## Warning in ks.test.default(muestra1$horas_estudio, "pnorm", mean =
## mean(muestra1$horas_estudio), : ties should not be present for the one-sample
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: muestra1$horas_estudio
## D = 0.024731, p-value = 0.7853
## alternative hypothesis: two-sided
Ya que el p-valor es mayor que el nivel de significancia elegido (\({\alpha}\)=0.05), se acepta la hipótesis nula (\(H_0\)). De acuerdo a esto, los datos de la variable Horas de estudio presenta un comportamiento normal.
ks.test(muestra1$promedio, "pnorm", mean = mean(muestra1$promedio), sd = sd(muestra1$promedio))
## Warning in ks.test.default(muestra1$promedio, "pnorm", mean =
## mean(muestra1$promedio), : ties should not be present for the one-sample
## Kolmogorov-Smirnov test
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: muestra1$promedio
## D = 0.033266, p-value = 0.4207
## alternative hypothesis: two-sided
Ya que el p-valor es mayor que el nivel de significancia elegido (\({\alpha}\)=0.05), se acepta la hipótesis nula (\(H_0\)). De acuerdo a esto, los datos de la variable Promedio académico presenta un comportamiento normal.
En nuestro caso, como nuestros datos tienen un comportamiento normal, se debe usar una prueba de hipótesis Paramétrica.
Específicamente, como se está buscando la existencia de relación significativa entre las horas de estudio semanales y el promedio académico de los estudiantes universitarios, utilizamos la Prueba de Correlación de Pearson.
# Realizar la prueba de correlación de Pearson
resultado_correlacion = cor.test(muestra1$horas_estudio, muestra1$promedio, method = "pearson")
coef_correlacion = resultado_correlacion$estimate
p_valor = resultado_correlacion$p.value
print(resultado_correlacion)
##
## Pearson's product-moment correlation
##
## data: muestra1$horas_estudio and muestra1$promedio
## t = 0.4338, df = 698, p-value = 0.6646
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.05775556 0.09041040
## sample estimates:
## cor
## 0.01641755
Se evidencia que p-value es de 0.6645641 y el coeficiente de correlación es 0.01641755, esto nos indica que podemos aceptar la Hipótesis nula (\(H_0\)) y que NO existe relación lineal entre las horas de estudio semanales y el promedio académico de los estudiantes universitarios.
Esto tiene sentido ya que dedicar muchas horas a estudiar no garantiza que se obtengan buenos resultados. Para obtener un buen promedio, entran otras variables que deben tenerse en cuenta además de las horas dedicadas a estudiar: Horas de descanso, Historial académico, Metodología de estudio, Bases académicas de cada estudiante, entre otras.