library(dplyr)
library(ggplot2)
library(moments)
library(readxl)
library(nortest)
library(flextable)
knitr::opts_chunk$set(fig.align = "center") # Centra todas las figuras automáticamente
El análisis de los hábitos diarios en el uso del tiempo libre permite entender cómo las personas distribuyen actividades como navegar en internet, leer, usar el celular o realizar actividades al aire libre. En una ciudad como Bogotá, donde conviven diferentes estilos de vida y condiciones socioeconómicas, estudiar estos comportamientos ayuda a identificar patrones y diferencias entre grupos de población.
A partir de los datos de una encuesta aplicada a 315 individuos, este trabajo utiliza herramientas de estadística descriptiva e inferencial para analizar variables relacionadas con el uso del tiempo libre. Mediante cálculos, gráficos e intervalos de confianza elaborados en R, se buscan patrones, comparaciones entre grupos y conclusiones que permitan comprender de manera rigurosa los hábitos de la población estudiada.
# Cargar datos
Encuesta_habitos <- read_excel("base_encuesta_habitos.xlsx")
View(Encuesta_habitos)
En este ejercicio se analiza de manera descriptiva la variable tiempo_internet, que representa las horas que cada individuo dedica diariamente al uso de internet. El objetivo es comprender el comportamiento general de esta variable dentro de la población encuestada. Para ello, se calculan las principales medidas de tendencia central, variabilidad, posición y forma, las cuales permiten identificar el valor típico, el grado de dispersión, la distribución y posibles patrones en los datos. Este análisis inicial es fundamental, ya que proporciona una visión global del uso del tiempo en internet antes de realizar procedimientos inferenciales más avanzados.
Media
La media aritmética es el promedio del tiempo que las personas dedican a internet. Representa el valor promedio del grupo y es sensible a valores muy altos o muy bajos.
mean(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
## [1] 2.827619
Mediana
La mediana es el valor que ocupa la posición central cuando los datos están ordenados. Es una medida robusta contra valores extremos y refleja el punto donde la mitad de las personas usa menos tiempo y la otra mitad usa más.
median(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
## [1] 2.9
Moda
La moda es el valor más frecuente en la distribución. Indica cuál es la cantidad de horas más común entre los encuestados.
moda <- as.numeric(names(which.max(table(Encuesta_habitos$tiempo_internet))))
moda
## [1] 3.2
Conclusión
El análisis de los datos muestra que el tiempo promedio que las personas dedican a internet está representado por la media, que es aproximadamente 2.83 horas. La mediana es 2.9 horas, lo que indica que la mitad de los encuestados utiliza menos tiempo y la otra mitad más. La moda es 3.2 horas, reflejando que esta es la cantidad de horas más frecuente entre los participantes. Comparando estas tres medidas en el histograma, se observa que la distribución es ligeramente asimétrica, con algunos valores extremos que afectan levemente el promedio.
El histograma permite visualizar la frecuencia de los diferentes tiempos dedicados a internet, mostrando claramente que la mayoría de los datos se concentra entre 2.3 y 3.4 horas. Las líneas de la media (roja), mediana (verde) y moda (azul) sobre el histograma facilitan la interpretación de la tendencia central y respaldan la conclusión de que, aunque el promedio general es 2.83 horas, existen diferencias importantes entre los hábitos individuales de los encuestados. Por ejemplo, el valor mínimo registrado es 0.7 horas y el máximo 5.2 horas, evidenciando que hay usuarios con un uso muy bajo o muy alto de internet.
hist(Encuesta_habitos$tiempo_internet,
main = "Distribución del tiempo dedicado a Internet",
xlab = "Horas diarias",
ylab = "Número de personas",
col = "skyblue",
border = "white")
abline(v = mean(Encuesta_habitos$tiempo_internet, na.rm = TRUE), col = "red", lwd = 2, lty = 2) # media
abline(v = median(Encuesta_habitos$tiempo_internet, na.rm = TRUE), col = "green", lwd = 2, lty = 2) # mediana
tabla <- table(Encuesta_habitos$tiempo_internet)
moda <- as.numeric(names(sort(tabla, decreasing = TRUE)[1]))
abline(v = moda, col = "blue", lwd = 2, lty = 2) # moda
legend("topright",
legend = c("Media", "Mediana", "Moda"),
col = c("red", "green", "blue"),
lwd = 2, lty = 2)
varianza
Con la varianza vamos a medir qué tanto varían o se dispersan los tiempos que las personas dedican a internet respecto al promedio. En otras palabras, nos muestra si los encuestados tienen hábitos similares o muy diferentes en el uso diario de internet.
varianza <- var(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("La varianza del tiempo en internet es:", varianza, "\n")
La varianza del tiempo en internet es: 0.6509227
desviación estándar
Con la desviación estándar vamos a medir cuántas horas, en promedio, se aleja cada persona del tiempo promedio de uso de internet. Es una forma más clara de interpretar la dispersión porque está en las mismas unidades: horas.
desviacion <- sd(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("La desviación estándar del tiempo en internet es:", desviacion, "\n")
La desviación estándar del tiempo en internet es: 0.8067978
rango
Con el rango vamos a medir la diferencia entre la persona que usa menos internet y la que usa más. Esto nos permite ver qué tan amplio es el comportamiento total dentro de la población.
valor_max <- max(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
valor_min <- min(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
rango <- valor_max - valor_min
cat("El rango del tiempo en internet es:", rango,
" (máximo:", valor_max, ", mínimo:", valor_min, ")\n")
El rango del tiempo en internet es: 4.5 (máximo: 5.2 , mínimo: 0.7 )
coeficiente de variación
Con el coeficiente de variación vamos a medir qué tan grande es la variabilidad en relación con la media, expresada en porcentaje. Sirve para saber si el tiempo en internet es un hábito estable o si cambia mucho entre personas.
media <- mean(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cv <- (desviacion / media) * 100
cat("El coeficiente de variación (CV) del tiempo en internet es:", cv, "%\n")
El coeficiente de variación (CV) del tiempo en internet es: 28.53276 %
Rango Intercuartílico
Con el IQR vamos a medir la dispersión del 50% central de los datos, es decir, dónde se concentra la mayoría de personas sin considerar valores extremos. Esto nos ayuda a entender cuál es la zona de uso “típica” de internet entre los encuestados.
iqr <- IQR(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("El rango intercuartílico (IQR) del tiempo en internet es:", iqr, "\n")
El rango intercuartílico (IQR) del tiempo en internet es: 1.1
Conclusión
El análisis de las medidas de variabilidad muestra que los tiempos dedicados a internet presentan una dispersión moderada. La varianza es aproximadamente 0.65, y la desviación estándar es 0.81 horas, lo que indica que, aunque existen diferencias entre los encuestados, la mayoría se mantiene relativamente cerca del promedio de 2.83 horas. El rango, que es de 4.5 horas (mínimo 0.7, máximo 5.2), evidencia la amplitud total entre el menor y el mayor tiempo registrado. El coeficiente de variación es de 28.5%, lo que indica que la variabilidad es proporcionalmente estable respecto a la media. Además, el rango intercuartílico (IQR) es 1.1 horas, mostrando que el 50% central de los datos se concentra en un intervalo reducido, lo cual sugiere patrones de uso similares entre la mayoría de personas.
Este comportamiento se confirma visualmente con el boxplot, donde la caja representa la dispersión del tramo intercuartílico y los “bigotes” evidencian la distancia entre los valores extremos. La posición de la mediana dentro de la caja refuerza la idea de una distribución sin dispersiones extremas, mientras que la ausencia o presencia limitada de outliers coincide con el nivel moderado de variabilidad calculado. En conjunto, tanto las medidas numéricas como el gráfico reflejan que el uso de internet en la población evaluada es relativamente homogéneo, con diferencias claras pero no extremas.
ggplot(Encuesta_habitos, aes(y = tiempo_internet)) +
geom_boxplot(fill = "lightblue", color = "black") +
labs(title = "Variabilidad del tiempo en internet",
y = "Horas al día") +
theme(plot.title = element_text(hjust = 0.5))
mínimo
Con el mínimo vamos a identificar el menor tiempo registrado que una persona dedica a internet dentro de toda la encuesta. Esto nos permite conocer el punto más bajo de la distribución y entender cuál es el uso mínimo observado.
minimo <- min(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("El valor mínimo del tiempo en internet es:", minimo, "\n")
El valor mínimo del tiempo en internet es: 0.7
Primer Cuartil (Q1)
Con el primer cuartil vamos a calcular el valor por debajo del cual está el 25% de los encuestados. Esto muestra los tiempos de internet de quienes usan menos esta actividad y nos ayuda a ver cómo inicia la distribución.
q1 <- quantile(Encuesta_habitos$tiempo_internet, 0.25, na.rm = TRUE)
cat("El primer cuartil (Q1) o 25% del tiempo en internet es:", q1, "\n")
El primer cuartil (Q1) o 25% del tiempo en internet es: 2.3
Mediana (Q2)
Con la mediana vamos a determinar el punto central de la distribución, es decir, el valor que divide a los encuestados en dos grupos iguales: la mitad usa menos tiempo y la otra mitad usa más. Es una medida muy útil cuando buscamos un valor representativo que no se afecte por extremos.
q2 <- quantile(Encuesta_habitos$tiempo_internet, 0.50, na.rm = TRUE)
cat("La mediana (Q2) o 50% del tiempo en internet es:", q2, "\n")
La mediana (Q2) o 50% del tiempo en internet es: 2.9
Tercer Cuartil (Q3)
Con el tercer cuartil vamos a encontrar el valor por debajo del cual está el 75% de las personas. Esto nos muestra hasta dónde llega la mayoría de los encuestados y permite identificar el tramo de uso más común dentro de la distribución.
q3 <- quantile(Encuesta_habitos$tiempo_internet, 0.75, na.rm = TRUE)
cat("El tercer cuartil (Q3) o 75% del tiempo en internet es:", q3, "\n")
El tercer cuartil (Q3) o 75% del tiempo en internet es: 3.4
máximo
Con el máximo vamos a identificar el mayor tiempo registrado de uso de internet entre los encuestados. Esto nos muestra el extremo superior de la distribución y ayuda a detectar posibles valores atípicos o hábitos muy intensivos de consumo.
maximo <- max(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("El valor máximo del tiempo en internet es:", maximo, "\n")
El valor máximo del tiempo en internet es: 5.2
Conclusión
El análisis de las medidas de posición muestra que el tiempo dedicado a internet presenta una distribución bien estructurada. El valor mínimo registrado es 0.7 horas y el máximo es 5.2 horas, lo que permite identificar el rango total de uso de 4.5 horas. Los cuartiles describen con precisión cómo se concentra la mayor parte de los tiempos reportados: el primer cuartil (Q1) es 2.3 horas, indicando que el 25% de las personas usa internet menos que el grupo general; la mediana (Q2) es 2.9 horas, marcando el punto central de la distribución; y el tercer cuartil (Q3) es 3.4 horas, mostrando hasta dónde llega el 75% de los encuestados y evidenciando patrones de uso moderado en la mayoría de los casos.
El boxplot confirma visualmente estos resultados: la caja representa el rango intercuartílico (1.1 horas), donde se concentra la mayor parte de los datos, mientras que los “bigotes” evidencian la distancia entre los valores extremos. La posición de la mediana dentro de la caja sugiere una distribución relativamente equilibrada y los valores extremos se identifican claramente, respaldando la interpretación sobre la variabilidad natural entre usuarios con hábitos más intensivos o más leves. En conjunto, tanto las medidas numéricas como el gráfico coinciden en que el uso de internet sigue un patrón estable, donde la mayor concentración se ubica alrededor del tramo central de la distribución.
ggplot(Encuesta_habitos, aes(y = tiempo_internet)) +
geom_boxplot(fill = "lightgreen", color = "black") +
labs(title = "Boxplot del tiempo en internet",
y = "Horas al día") +
theme(plot.title = element_text(hjust = 0.5))
asimetría
Con la asimetría vamos a medir si la distribución del tiempo en internet se inclina hacia valores altos o hacia valores bajos.
Si es positiva → hay más personas con tiempos bajos y una cola hacia la derecha (algunos que usan mucho internet).
Si es negativa → sucede lo contrario.
Nos permite ver si el comportamiento típico está “corridos” hacia algún extremo.
asimetria <- skewness(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("La asimetría del tiempo en internet es:", asimetria, "\n")
La asimetría del tiempo en internet es: -0.1511352
curtosis
Con la curtosis vamos a evaluar qué tan concentrados o dispersos están los datos alrededor de la media.
Curtosis alta → distribución más “picuda”, muchos valores cerca del centro y colas pesadas.
Curtosis baja → distribución más plana.
Esto ayuda a entender si hay valores extremos que influyen en la forma general de la distribución.
curtosis_valor <- kurtosis(Encuesta_habitos$tiempo_internet, na.rm = TRUE)
cat("La curtosis del tiempo en internet es:", curtosis_valor, "\n")
La curtosis del tiempo en internet es: 2.756393
Conclusión
Las medidas de forma indican que la distribución del tiempo dedicado a internet presenta una asimetría ligeramente negativa de -0.15, lo que sugiere que la distribución es casi simétrica, con una ligera tendencia hacia valores menores; la mayoría de las personas usan internet durante un tiempo moderado, mientras que algunos usuarios dedican varias horas adicionales. La curtosis, con un valor de 2.76, cercana a la normal (3), indica que los datos no están excesivamente concentrados ni presentan colas muy extremas, manteniendo un comportamiento general relativamente equilibrado.
El histograma confirma esta interpretación al mostrar que la mayor parte de los valores se concentra entre 2.5 y 3.5 horas, con una ligera cola hacia la derecha que refleja a los usuarios con tiempos más altos. Tanto la densidad como la forma del gráfico refuerzan la idea de que el uso de internet es mayormente estable, aunque existen algunos casos destacados de uso intensivo. En conjunto, las medidas numéricas y la visualización gráfica respaldan que el patrón de uso de internet es relativamente uniforme con pocas desviaciones significativas.
ggplot(Encuesta_habitos, aes(x = tiempo_internet)) +
geom_histogram(aes(y = ..density..),
binwidth = 0.4,
color = "black",
fill = "lightblue") +
geom_density(color = "red", size = 1) +
labs(title = "Histograma del tiempo en internet",
x = "Horas al día",
y = "Densidad") +
theme(plot.title = element_text(hjust = 0.5))
En este ejercicio se selecciona una muestra aleatoria de 69 individuos a partir de los datos de la población total sobre el tiempo dedicado a internet. El propósito es analizar cómo se comporta una parte representativa de la población y aplicar conceptos de estadística inferencial, como el cálculo de la media muestral, el error estándar, intervalos de confianza y pruebas de hipótesis. Este análisis permite generalizar conclusiones sobre la población a partir de la muestra y evaluar la precisión de las estimaciones obtenidas.
set.seed(7219)
muestra <- Encuesta_habitos[sample(1:nrow(Encuesta_habitos), 69), ]
Planteamiento del problema
Se desea estimar el tiempo promedio que la población dedica a la lectura diariamente. Para ello, se construye un intervalo de confianza del 95% para la media poblacional del tiempo dedicado a la lectura, utilizando una muestra aleatoria de 69 individuos.
Objetivo
Estimar con un \(95%\) de confianza el rango dentro del cual se encuentra la verdadera media poblacional \(μ\) del tiempo en lectura.
Cálculo del intervalo de confianza
Para construir el intervalo de confianza del 95% para la media poblacional, se utiliza la fórmula:
\[\begin{equation} IC_{95\%} = \bar{x} \pm t_{\alpha/2,\,n-1} \cdot \frac{s}{\sqrt{n}} \end{equation}\]
Donde:
\(\bar{x}\) = media muestral del tiempo de lectura
\(s\) = desviación estándar muestral
\(n\) = tamaño de la muestra
\(t_{\alpha/2,\,n-1}\) = valor crítico de la distribución t-Student con \(n-1\) grados de libertad
set.seed(7219)
n <- 69
muestra_lectura <- sample(Encuesta_habitos$tiempo_lectura, size = n, replace = FALSE)
mu_pob_lectura <- mean(Encuesta_habitos$tiempo_lectura, na.rm = TRUE)
media_muestral_lectura <- mean(muestra_lectura)
desv_muestral_lectura <- sd(muestra_lectura)
error_estandar_lectura <- desv_muestral_lectura / sqrt(n)
t_critico_95 <- qt(0.975, df = n-1) # 95% confianza, α=0.05
lim_inferior_lectura <- media_muestral_lectura - t_critico_95 * error_estandar_lectura
lim_superior_lectura <- media_muestral_lectura + t_critico_95 * error_estandar_lectura
Resultados del intervalo
resultados_IC_lectura <- data.frame(
Media_poblacional = round(mu_pob_lectura, 3),
Media_muestral = round(media_muestral_lectura, 3),
Desviacion_muestral = round(desv_muestral_lectura, 3),
Tamaño_muestra = n,
Error_estandar = round(error_estandar_lectura, 4),
t_critico = round(t_critico_95, 4),
IC_inferior = round(lim_inferior_lectura, 3),
IC_superior = round(lim_superior_lectura, 3),
Amplitud_IC = round(lim_superior_lectura - lim_inferior_lectura, 3)
)
flextable(resultados_IC_lectura) %>%
set_caption("Resultados del intervalo de confianza del 95% para la media de lectura")
Media_poblacional | Media_muestral | Desviacion_muestral | Tamaño_muestra | Error_estandar | t_critico | IC_inferior | IC_superior | Amplitud_IC |
|---|---|---|---|---|---|---|---|---|
1.07 | 1.061 | 0.769 | 69 | 0.0926 | 1.9955 | 0.876 | 1.246 | 0.37 |
Interpretación del intervalo
El intervalo de confianza del 95% calculado es [ r round(lim_inferior_lectura, 3), r round(lim_superior_lectura, 3) ] horas. Esto significa que podemos afirmar con un 95% de confianza que el verdadero tiempo promedio que la población dedica a la lectura se encuentra entre r round(lim_inferior_lectura, 3) y r round(lim_superior_lectura, 3) horas diarias.
Verificación: ¿Contiene el intervalo a la media poblacional?
contiene_media_pob_lectura <- mu_pob_lectura >= lim_inferior_lectura & mu_pob_lectura <= lim_superior_lectura
cat("¿El intervalo de confianza contiene la media poblacional (μ = ",
round(mu_pob_lectura, 3), ")?\n", sep = "")
¿El intervalo de confianza contiene la media poblacional (μ = 1.07)?
if(contiene_media_pob_lectura) {
cat("SÍ, la media poblacional μ =", round(mu_pob_lectura, 3),
"está dentro del intervalo [", round(lim_inferior_lectura, 3), ", ",
round(lim_superior_lectura, 3), "]\n")
} else {
cat("NO, la media poblacional μ =", round(mu_pob_lectura, 3),
"NO está dentro del intervalo [", round(lim_inferior_lectura, 3), ", ",
round(lim_superior_lectura, 3), "]\n")
}
SÍ, la media poblacional μ = 1.07 está dentro del intervalo [ 0.876 , 1.246 ]
Visualización gráfica
library(ggplot2)
# Crear data frame para el gráfico
datos_grafico_lectura <- data.frame(
Tipo = c("Media poblacional (μ)", "Media muestral (x̄)",
"Límite inferior IC", "Límite superior IC"),
Valor = c(mu_pob_lectura, media_muestral_lectura,
lim_inferior_lectura, lim_superior_lectura),
Color = c("Poblacional", "Muestral", "IC", "IC")
)
# Gráfico de puntos con el intervalo
ggplot(datos_grafico_lectura, aes(x = Tipo, y = Valor, color = Color)) +
geom_point(size = 4) +
geom_errorbar(aes(ymin = lim_inferior_lectura, ymax = lim_superior_lectura),
width = 0.2, color = "#3182BD", size = 1) +
geom_hline(yintercept = mu_pob_lectura, linetype = "dashed",
color = "#E31A1C", alpha = 0.5) +
labs(title = "Intervalo de Confianza del 95% para la Media de Tiempo en Lectura",
subtitle = paste("IC 95%: [", round(lim_inferior_lectura, 2), ", ",
round(lim_superior_lectura, 2), "] horas", sep = ""),
x = "",
y = "Horas de lectura",
color = "Tipo de estimación") +
scale_color_manual(values = c("Poblacional" = "#E31A1C",
"Muestral" = "#31A354",
"IC" = "#3182BD")) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14),
plot.subtitle = element_text(hjust = 0.5, size = 12),
axis.text.x = element_text(angle = 45, hjust = 1),
legend.position = "bottom")
Conclusión
El intervalo de confianza del 95% construido para la media del tiempo dedicado a la lectura, \(0.876, 1.246\) horas, proporciona una estimación estadísticamente robusta del comportamiento lector de la población. Con un nivel de confianza del 95%, podemos afirmar que el verdadero tiempo promedio que los individuos dedican diariamente a la lectura se encuentra dentro de este rango. La precisión de esta estimación queda evidenciada por la amplitud relativamente estrecha del intervalo \(0.37 horas\), resultado del tamaño muestral adecuado \(n=69\) y la metodología apropiada empleada en su construcción.
La validación del método se confirma al verificar que la media poblacional real \(1.07 horas\) está contenida dentro del intervalo calculado. Este hallazgo no solo respalda la fiabilidad del procedimiento inferencial utilizado, sino que también ofrece información valiosa para el diseño de políticas educativas y culturales. Los resultados sugieren que, en promedio, la población dedica entre aproximadamente 53 y 75 minutos diarios a la lectura, proporcionando una base cuantitativa sólida para comprender y potenciar los hábitos lectores en el contexto estudiado.
Planteamiento del problema
Se desea determinar si existen diferencias significativas en el tiempo promedio dedicado a actividades al aire libre entre hombres y mujeres. Para ello, se realiza una prueba de hipótesis para comparar las medias poblacionales y se construye un intervalo de confianza del 99% para la diferencia.
Hipótesis
\[ H_0: \mu_H = \mu_M \]
\[ H_1: \mu_H \neq \mu_M \]
Es decir:
\[ H_0: \text{El tiempo promedio dedicado a actividades al aire libre es igual en hombres y mujeres.} \]
\[ H_1: \text{El tiempo promedio dedicado a actividades al aire libre es diferente entre hombres y mujeres.} \]
Nivel de significancia para la prueba de hipótesis:
\[ \alpha = 0.01 \]
(Consistente con el intervalo de confianza del 99%)
Nivel de confianza para el intervalo:
\[ Confianza=99% \]
Preparación de los datos
aire_hombres <- Encuesta_habitos$tiempo_aire_libre[Encuesta_habitos$genero == "M"]
aire_mujeres <- Encuesta_habitos$tiempo_aire_libre[Encuesta_habitos$genero == "F"]
datos_aire_libre <- Encuesta_habitos[Encuesta_habitos$genero %in% c("M", "F"), ]
Verificación del supuesto de normalidad
Antes de aplicar la prueba para la diferencia de medias, es necesario verificar el supuesto de normalidad en cada grupo.
cat("Tamaño de la muestra - Hombres:", length(aire_hombres), "\n")
Tamaño de la muestra - Hombres: 156
cat("Tamaño de la muestra - Mujeres:", length(aire_mujeres), "\n\n")
Tamaño de la muestra - Mujeres: 159
cat("Valor p (Lilliefors) - Hombres:", lillie.test(aire_hombres)$p.value, "\n")
Valor p (Lilliefors) - Hombres: 0.1242381
cat("Valor p (Lilliefors) - Mujeres:", lillie.test(aire_mujeres)$p.value, "\n")
Valor p (Lilliefors) - Mujeres: 0.1387495
Si ambos valores p son mayores a 0.05, se puede asumir normalidad y aplicar la prueba t para medias.
En caso contrario, se debe usar una prueba no paramétrica.
Verificación de homogeneidad de varianzas
Para determinar qué tipo de prueba t utilizar (con varianzas iguales o diferentes), se verifica la homogeneidad de varianzas.
var_test_aire <- var.test(tiempo_aire_libre ~ genero, data = datos_aire_libre)
cat("Prueba F para igualdad de varianzas:\n")
## Prueba F para igualdad de varianzas:
cat("Estadístico F =", round(var_test_aire$statistic, 4), "\n")
## Estadístico F = 0.9417
cat("Valor p =", round(var_test_aire$p.value, 4), "\n")
## Valor p = 0.707
Si el valor p es mayor a 0.05, se asume homogeneidad de varianzas y se usa prueba t con varianzas iguales. Si es menor, se usa prueba t de Welch con varianzas diferentes.
Prueba de hipótesis t de Student
Dado que se cumplen los supuestos de normalidad, se aplica la prueba t para dos muestras independientes.
usar_var_equal_aire <- var_test_aire$p.value > 0.05
resultado_t_aire <- t.test(tiempo_aire_libre ~ genero,
data = datos_aire_libre,
alternative = "two.sided",
var.equal = usar_var_equal_aire,
conf.level = 0.99)
tabla_resultados_aire <- data.frame(
Estadistico_t = as.numeric(resultado_t_aire$statistic),
Grados_libertad = resultado_t_aire$parameter,
p_valor = resultado_t_aire$p.value,
Diferencia_medias = resultado_t_aire$estimate[1] - resultado_t_aire$estimate[2],
IC99_inferior = resultado_t_aire$conf.int[1],
IC99_superior = resultado_t_aire$conf.int[2],
Media_hombres = resultado_t_aire$estimate[1],
Media_mujeres = resultado_t_aire$estimate[2]
)
flextable(tabla_resultados_aire) %>%
set_caption("Resultados de la prueba t para comparación de medias de tiempo al aire libre")
Estadistico_t | Grados_libertad | p_valor | Diferencia_medias | IC99_inferior | IC99_superior | Media_hombres | Media_mujeres |
|---|---|---|---|---|---|---|---|
-0.06272586 | 313 | 0.9500248 | -0.005285438 | -0.2236625 | 0.2130916 | 1.441509 | 1.446795 |
sta prueba contrasta directamente si las medias del tiempo dedicado a actividades al aire libre son iguales entre hombres y mujeres.
Valor p y región de rechazo
Región de rechazo: Al tratarse de una prueba bilateral, la región de rechazo se encuentra en ambas colas de la distribución t.
Criterio de decisión (consistente con α = 0.01):
\[ \text{Si } p < 0.01, \text{ se rechaza } H_0. \]
\[ \text{Si } p \ge 0.01, \text{ no se rechaza } H_0. \]
Conclusión
Con un nivel de significancia del 1% \(α = 0.01\), el valor p obtenido \(0.9500\) es considerablemente mayor que el umbral de rechazo, por lo que no se rechaza la hipótesis nula \(H₀\). Esto significa que no existe evidencia estadística suficiente para afirmar que haya una diferencia significativa en el tiempo promedio dedicado a actividades al aire libre entre hombres y mujeres. La diferencia estimada es de apenas \(-0.005 horas\), prácticamente insignificante.
El intervalo de confianza del 99% para la diferencia de medias \([-0.224, 0.213]\) horas incluye el valor cero en toda su amplitud, lo cual confirma estadísticamente la ausencia de diferencia significativa. Con un 99% de confianza, podemos afirmar que la verdadera diferencia poblacional entre el tiempo que hombres y mujeres dedican a actividades al aire libre se encuentra dentro de este rango que abarca valores tanto positivos como negativos, evidenciando la equivalencia estadística entre ambos grupos.
Planteamiento del problema
Se desea determinar si la variabilidad del tiempo dedicado al celular es diferente entre hombres y mujeres. Para ello se comparan las varianzas poblacionales del tiempo dedicado al celular en ambos grupos, a partir de una muestra aleatoria.
En este problema interesa probar si las varianzas poblacionales del tiempo dedicado al celular en hombres y mujeres son iguales o no; por esta razón, el cociente
\[ H_0 : \frac{\sigma^{2}_{Hombres}}{\sigma^{2}_{Mujeres}} = 1 \]
\[ H_1 : \frac{\sigma^{2}_{Hombres}}{\sigma^{2}_{Mujeres}} \neq 1 \]
Es decir:
\[ H_0: \text{La variabilidad del tiempo dedicado al celular es igual en hombres y mujeres.} \]
\[ H_1: \text{La variabilidad del tiempo dedicado al celular es diferente entre hombres y mujeres.} \]
Se utilizará un nivel de significancia:
\[ \alpha = 0.05 \]
Supuesto de normalidad
Antes de aplicar la prueba para el cociente de varianzas, es necesario verificar el supuesto de normalidad en cada grupo. Para ello se emplea la prueba de Lilliefors
celular_hombres <- muestra$tiempo_celular[muestra$genero == "M"]
celular_mujeres <- muestra$tiempo_celular[muestra$genero == "F"]
cat("Tamaño de la muestra - Hombres:", length(celular_hombres), "\n")
Tamaño de la muestra - Hombres: 34
cat("Tamaño de la muestra - Mujeres:", length(celular_mujeres), "\n\n")
Tamaño de la muestra - Mujeres: 35
cat("Valor p (Lilliefors) - Hombres:", lillie.test(celular_hombres)$p.value, "\n")
Valor p (Lilliefors) - Hombres: 0.6460883
cat("Valor p (Lilliefors) - Mujeres:", lillie.test(celular_mujeres)$p.value, "\n")
Valor p (Lilliefors) - Mujeres: 0.6600416
De acuerdo con los resultados de la prueba de Lilliefors, los valores p obtenidos para hombres y mujeres son mayores que el nivel de significancia \[\alpha = 0.05\] , por lo que no se rechaza la hipótesis de normalidad en ninguno de los dos grupos. En consecuencia, se puede asumir que la variable tiempo dedicado al celular presenta una distribución aproximadamente normal tanto en hombres como en mujeres.
Estadístico de prueba
resultado_var <- var.test(celular_hombres, celular_mujeres,
alternative = "two.sided",
conf.level = 0.95)
tabla_var <- data.frame(
Estadistico_F = as.numeric(resultado_var$statistic),
p_valor = resultado_var$p.value,
IC_inferior = resultado_var$conf.int[1],
IC_superior = resultado_var$conf.int[2]
)
flextable(tabla_var)
Estadistico_F | p_valor | IC_inferior | IC_superior |
|---|---|---|---|
0.6762857 | 0.2639614 | 0.3401553 | 1.349382 |
Esta prueba contrasta directamente si el cociente de varianzas poblacionales es igual a 1.
Valor p y región de rechazo
Región de rechazo: Al tratarse de una prueba bilateral, la región de rechazo se encuentra en ambas colas de la distribución F.
Criterio de decisión:
\[ \text{Si valor } p < 0.05\text{, se rechaza }H_0. \]
\[ \text{Si valor } p \geq 0.05\text{, no se rechaza }H_0. \]
Conclusión final
Con un nivel de significancia del 5%, y de acuerdo con el valor p obtenido en la prueba F para el cociente de varianzas, no se rechaza la hipótesis nula, debido a que el valor p es mayor que el nivel de significancia establecido \[\alpha = 0.05\]En consecuencia, no se encontraron evidencias estadísticas suficientes para afirmar que la variabilidad del tiempo dedicado al celular difiera entre hombres y mujeres. Por lo tanto, se concluye que la dispersión del tiempo dedicado al celular es estadísticamente similar en ambos grupos.
Planteamiento del problema
Se desea determinar si la proporción de personas que dedican más de 3 horas al día a internet es la misma entre hombres y mujeres. Para ello, se toma una muestra aleatoria de tamaño 81 y se define una variable binaria que indica si una persona supera o no dicho umbral de tiempo.
Definición de la variable binaria
Se define la variable:
\[ Y = \begin{cases} 1, & \text{si el tiempo dedicado a internet es mayor a 3 horas al día} \\ 0, & \text{en caso contrario} \end{cases} \]
Hipótesis
Sea \(pH\) la proporción de hombres que dedican más de 3 horas al día a internet y \(pM\) la proporción correspondiente en mujeres.
\[ H_0: p_H = p_M \] \[ H_1: p_H \neq p_M \]
Es decir:
\[ H_0: \text{La proporción de personas que dedican más de 3 horas a internet es igual en hombres y mujeres.} \]
\[ H_1: \text{La proporción de personas que dedican más de 3 horas a internet es diferente entre hombres y mujeres.} \]
Nivel de significancia:
\[ \alpha = 0.01 \]
Selección de la muestra
set.seed(7219)
muestra_81 <- Encuesta_habitos[sample(1:nrow(Encuesta_habitos), 81), ]
Creación de la variable binaria
muestra_81$internet_mayor_3 <- ifelse(muestra_81$tiempo_internet > 3, 1, 0)
tabla_frec <- as.data.frame(table(muestra_81$internet_mayor_3))
colnames(tabla_frec) <- c("Categoría", "Frecuencia")
flextable(tabla_frec)
Categoría | Frecuencia |
|---|---|
0 | 47 |
1 | 34 |
Tabla de contingencia por género
tabla_prop <- table(muestra_81$genero, muestra_81$internet_mayor_3)
tabla_prop_df <- as.data.frame.matrix(tabla_prop)
tabla_prop_df <- cbind(
Genero = rownames(tabla_prop_df),
tabla_prop_df
)
flextable(tabla_prop_df) %>%
set_header_labels(
Genero = "Género",
"0" = "≤ 3 horas",
"1" = "> 3 horas"
)
Género | ≤ 3 horas | > 3 horas |
|---|---|---|
F | 23 | 20 |
M | 24 | 14 |
Prueba de hipótesis para la diferencia de proporciones
Se utiliza la prueba de comparación de proporciones (prop.test), adecuada para contrastar si dos proporciones poblacionales son iguales.
resultado_prop <- prop.test(tabla_prop,
alternative = "two.sided",
conf.level = 0.99)
tabla_prop_result <- data.frame(
Estadistico_X2 = as.numeric(resultado_prop$statistic),
p_valor = resultado_prop$p.value,
IC_inferior = resultado_prop$conf.int[1],
IC_superior = resultado_prop$conf.int[2]
)
flextable(tabla_prop_result)
Estadistico_X2 | p_valor | IC_inferior | IC_superior |
|---|---|---|---|
0.4282841 | 0.5128321 | -0.402577 | 0.2091866 |
Región de rechazo y criterio de decisión
Al tratarse de una prueba bilateral, la región de rechazo se encuentra en ambas colas de la distribución.
Regla de decisión:
\[ \text{Si valor } p < 0.01 \Rightarrow \text{se rechaza } H_0 \]
\[ \text{Si valor } p \geq 0.01 \Rightarrow \text{no se rechaza } H_0 \]
Conclusión
Tras analizar una muestra de 81 personas y clasificarlas según si superan las 3 horas diarias de uso de internet, se realizó una prueba bilateral para la diferencia de proporciones con \(α=0.01\). Los resultados mostraron un estadístico \(X²=0.4283 (p-valor=0.5128)\) y un intervalo de confianza del 99% para la diferencia de proporciones que incluye el cero \((-0.403, 0.209)\).
Dado que el \(p-valor\) \((0.5128)\) es mayor que el nivel de significancia \((0.01)\), no se rechaza la hipótesis nula. No existe evidencia estadística suficiente para afirmar que la proporción de personas que dedican más de 3 horas al día a internet difiera entre hombres y mujeres. Los datos sugieren que ambos géneros presentan hábitos de uso similares respecto a este umbral de tiempo.
Intervalo de confianza para la diferencia de proporciones
En este ejercicio se construirá un intervalo de confianza del 95% para la diferencia de proporciones entre hombres y mujeres que dedican más de 3 horas al día a internet. Este análisis complementa la prueba de hipótesis realizada en el ejercicio 6, permitiendo estimar la magnitud de la posible diferencia entre los dos grupos.
Usaremos la misma muestra de 81 observaciones y la misma variable binaria definida en el ejercicio 6.
set.seed(7219)
muestra_81 <- Encuesta_habitos[sample(1:nrow(Encuesta_habitos), 81), ]
muestra_81$internet_mayor_3 <- ifelse(muestra_81$tiempo_internet > 3, 1, 0)
cat("Tamaño de la muestra:", nrow(muestra_81), "\n")
Tamaño de la muestra: 81
cat("Distribución por género:\n")
Distribución por género:
print(table(muestra_81$genero))
F M 43 38
cat("\nDistribución de la variable binaria:\n")
Distribución de la variable binaria:
print(table(muestra_81$internet_mayor_3))
0 1 47 34
cat("\nTabla de contingencia:\n")
Tabla de contingencia:
tabla_contingencia <- table(muestra_81$genero, muestra_81$internet_mayor_3)
print(tabla_contingencia)
0 1
F 23 20 M 24 14
Ahora se realizara un calculo de proporcionos por cada grupo.
hombres <- muestra_81 %>% filter(genero == "M")
n_hombres <- nrow(hombres)
exitos_hombres <- sum(hombres$internet_mayor_3 == 1)
p_hombres <- exitos_hombres / n_hombres
mujeres <- muestra_81 %>% filter(genero == "F")
n_mujeres <- nrow(mujeres)
exitos_mujeres <- sum(mujeres$internet_mayor_3 == 1)
p_mujeres <- exitos_mujeres / n_mujeres
cat("HOMBRES (M):\n")
HOMBRES (M):
cat(" n =", n_hombres, "\n")
n = 38
cat(" Éxitos (> 3 horas) =", exitos_hombres, "\n")
Éxitos (> 3 horas) = 14
cat(" Proporción =", round(p_hombres, 4), "(", round(p_hombres * 100, 1), "%)\n")
Proporción = 0.3684 ( 36.8 %)
cat("\nMUJERES (F):\n")
MUJERES (F):
cat(" n =", n_mujeres, "\n")
n = 43
cat(" Éxitos (> 3 horas) =", exitos_mujeres, "\n")
Éxitos (> 3 horas) = 20
cat(" Proporción =", round(p_mujeres, 4), "(", round(p_mujeres * 100, 1), "%)\n")
Proporción = 0.4651 ( 46.5 %)
cat("\nDiferencia observada (Hombres - Mujeres):", round(p_hombres - p_mujeres, 4), "\n")
Diferencia observada (Hombres - Mujeres): -0.0967
Existen varios métodos para calcular intervalos de confianza para la diferencia de proporciones. Utilizaremos el método de aproximación normal con corrección de continuidad.
-La aproximación normal con corrección de continuidad es una técnica estadística utilizada para aproximar una distribución de probabilidad discreta (como la distribución binomial) con una distribución de probabilidad continua (como la distribución normal). Esta técnica se aplica cuando se desea calcular probabilidades de valores discretos que no tienen un significado claro en la distribución continua, como en el caso de la probabilidad de un valor concreto en una distribución continua. La corrección de continuidad se aplica especialmente en la aproximación normal de distribuciones discretas binomial y de Poisson
resultado_prop_95 <- prop.test(tabla_contingencia,
conf.level = 0.95,
correct = TRUE)
cat("INTERVALO DE CONFIANZA 95% (USANDO prop.test)\n")
INTERVALO DE CONFIANZA 95% (USANDO prop.test)
cat("Diferencia estimada (pH - pM):",
round(resultado_prop_95$estimate[1] - resultado_prop_95$estimate[2], 4), "\n")
Diferencia estimada (pH - pM): -0.0967
cat("Intervalo de confianza 95%: [",
round(resultado_prop_95$conf.int[1], 4), ", ",
round(resultado_prop_95$conf.int[2], 4), "]\n")
Intervalo de confianza 95%: [ -0.3354 , 0.142 ]
cat("p-valor asociado:", round(resultado_prop_95$p.value, 4), "\n")
p-valor asociado: 0.5128
cat("\nINTERVALO DE CONFIANZA 95% (CÁLCULO MANUAL)\n")
INTERVALO DE CONFIANZA 95% (CÁLCULO MANUAL)
diferencia <- p_hombres - p_mujeres
SE_diferencia <- sqrt((p_hombres * (1 - p_hombres) / n_hombres) +
(p_mujeres * (1 - p_mujeres) / n_mujeres))
z_critico <- qnorm(0.975)
lim_inf <- diferencia - z_critico * SE_diferencia
lim_sup <- diferencia + z_critico * SE_diferencia
cat("Diferencia estimada (pH - pM):", round(diferencia, 4), "\n")
Diferencia estimada (pH - pM): -0.0967
cat("Error estándar:", round(SE_diferencia, 4), "\n")
Error estándar: 0.1091
cat("Valor crítico z (95%):", round(z_critico, 4), "\n")
Valor crítico z (95%): 1.96
cat("Intervalo de confianza 95%: [",
round(lim_inf, 4), ", ", round(lim_sup, 4), "]\n")
Intervalo de confianza 95%: [ -0.3106 , 0.1172 ] ### Visualizacion grafica
datos_grafico <- data.frame(
Genero = c("Hombres", "Mujeres"),
Proporcion = c(p_hombres, p_mujeres),
n = c(n_hombres, n_mujeres),
Exitosa = c(exitos_hombres, exitos_mujeres)
)
datos_grafico$lim_inf <- with(datos_grafico,
Proporcion - qnorm(0.975) * sqrt(Proporcion * (1 - Proporcion) / n))
datos_grafico$lim_sup <- with(datos_grafico,
Proporcion + qnorm(0.975) * sqrt(Proporcion * (1 - Proporcion) / n))
library(ggplot2)
p <- ggplot(datos_grafico, aes(x = Genero, y = Proporcion, fill = Genero)) +
geom_bar(stat = "identity", alpha = 0.7, width = 0.6) +
geom_errorbar(aes(ymin = lim_inf, ymax = lim_sup),
width = 0.2, color = "black", linewidth = 0.8) +
geom_text(aes(label = paste0(round(Proporcion * 100, 1), "%\n(n=", Exitosa, "/", n, ")")),
vjust = -0.5, linewidth = 4) +
labs(title = "Proporción de personas que dedican más de 3 horas diarias a internet",
subtitle = "Con intervalos de confianza del 95%",
x = "Género",
y = "Proporción",
caption = paste("Diferencia:", round(diferencia, 4),
" | IC 95%: [", round(lim_inf, 4), ", ", round(lim_sup, 4), "]")) +
ylim(0, max(datos_grafico$lim_sup) * 1.2) +
theme_minimal() +
theme(plot.title = element_text(hjust = 0.5, face = "bold"),
plot.subtitle = element_text(hjust = 0.5),
legend.position = "none")
## Warning in geom_text(aes(label = paste0(round(Proporcion * 100, 1), "%\n(n=", :
## Ignoring unknown parameters: `linewidth`
print(p)
A partir de ahora se hara la comparacion con la conclusion del punto 6
p_valor_ej6 <- 0.5128
cat("Resultados del ejercicio 6:\n")
Resultados del ejercicio 6:
cat(" • Prueba de hipótesis con α = 0.01\n")
• Prueba de hipótesis con α = 0.01
cat(" • p-valor =", p_valor_ej6, "\n")
• p-valor = 0.5128
cat(" • Conclusión: No se rechaza H0 (no hay diferencia significativa)\n\n")
• Conclusión: No se rechaza H0 (no hay diferencia significativa)
cat("Resultados del ejercicio 7:\n")
Resultados del ejercicio 7:
cat(" • Intervalo de confianza 95% para la diferencia de proporciones\n")
• Intervalo de confianza 95% para la diferencia de proporciones
cat(" • Intervalo: [", round(lim_inf, 4), ", ", round(lim_sup, 4), "]\n")
• Intervalo: [ -0.3106 , 0.1172 ]
cat(" • El intervalo INCLUYE el valor 0:", ifelse(lim_inf <= 0 & lim_sup >= 0, "SÍ", "NO"), "\n\n")
• El intervalo INCLUYE el valor 0: SÍ
if(p_valor_ej6 > 0.05 & (lim_inf <= 0 & lim_sup >= 0)) {
cat("✓ Los resultados son CONSISTENTES.\n")
cat("• En la prueba de hipótesis (α = 0.01): p-valor > 0.01 → No se rechaza H0.\n")
cat("• En el intervalo de confianza (95%): El intervalo incluye el 0.\n")
cat("• Ambas metodologías llevan a la misma conclusión: no hay evidencia de diferencia.\n")
} else if(p_valor_ej6 <= 0.05 & (lim_inf > 0 | lim_sup < 0)) {
cat("✓ Los resultados son CONSISTENTES.\n")
cat("• En la prueba de hipótesis: p-valor ≤ 0.05 → Se rechaza H0.\n")
cat("• En el intervalo de confianza: El intervalo NO incluye el 0.\n")
cat("• Ambas metodologías llevan a la misma conclusión: hay diferencia significativa.\n")
} else {
cat("✗ Los resultados NO son consistentes.\n")
cat("• Esto puede deberse a diferencias en los métodos o aproximaciones usadas.\n")
}
✓ Los resultados son CONSISTENTES. • En la prueba de hipótesis (α = 0.01): p-valor > 0.01 → No se rechaza H0. • En el intervalo de confianza (95%): El intervalo incluye el 0. • Ambas metodologías llevan a la misma conclusión: no hay evidencia de diferencia.
cat("1. INTERVALO DE CONFIANZA:\n")
cat(" Con un 95% de confianza, la verdadera diferencia entre la proporción de\n")
Con un 95% de confianza, la verdadera diferencia entre la proporción de
cat(" hombres y mujeres que dedican más de 3 horas diarias a internet se encuentra\n")
hombres y mujeres que dedican más de 3 horas diarias a internet se encuentra
cat(" entre ", round(lim_inf, 4), " y ", round(lim_sup, 4), ".\n\n")
entre -0.3106 y 0.1172 .
cat("2. INTERPRETACIÓN PRÁCTICA:\n")
if(lim_inf <= 0 & lim_sup >= 0) {
cat(" • Como el intervalo incluye el cero, no podemos afirmar con confianza que\n")
cat(" exista una diferencia real entre hombres y mujeres.\n")
cat(" • La diferencia observada (", round(diferencia, 4), ") podría deberse al azar\n")
cat(" del muestreo.\n")
} else if(lim_sup < 0) {
cat(" • El intervalo está completamente por debajo de cero, lo que sugiere que\n")
cat(" las mujeres tienen una proporción MAYOR que los hombres.\n")
cat(" • La diferencia es estadísticamente significativa.\n")
} else if(lim_inf > 0) {
cat(" • El intervalo está completamente por encima de cero, lo que sugiere que\n")
cat(" los hombres tienen una proporción MAYOR que las mujeres.\n")
cat(" • La diferencia es estadísticamente significativa.\n")
}
• Como el intervalo incluye el cero, no podemos afirmar con confianza que exista una diferencia real entre hombres y mujeres. • La diferencia observada ( -0.0967 ) podría deberse al azar del muestreo.
cat("\n3. CONSISTENCIA CON EL EJERCICIO 6:\n")
if(p_valor_ej6 > 0.01 & (lim_inf <= 0 & lim_sup >= 0)) {
cat(" ✓ Hay consistencia completa entre ambos análisis.\n")
cat(" • La prueba de hipótesis (α = 0.01) no encontró diferencia significativa.\n")
cat(" • El intervalo de confianza (95%) incluye el cero.\n")
cat(" • Ambos métodos confirman que no hay evidencia suficiente para afirmar\n")
cat(" que las proporciones difieren entre géneros.\n")
} else {
cat(" ⚠ Hay alguna discrepancia que merece atención.\n")
cat(" • Esto puede ocurrir cuando el p-valor está cerca del nivel de significancia\n")
cat(" o cuando se usan métodos de cálculo diferentes.\n")
}
✓ Hay consistencia completa entre ambos análisis. • La prueba de hipótesis (α = 0.01) no encontró diferencia significativa. • El intervalo de confianza (95%) incluye el cero. • Ambos métodos confirman que no hay evidencia suficiente para afirmar que las proporciones difieren entre géneros.
cat("\n4. RECOMENDACIONES:\n")
cat(" • El tamaño de muestra (n = 81) proporciona un intervalo de confianza de\n")
• El tamaño de muestra (n = 81) proporciona un intervalo de confianza de
cat(" amplitud moderada. Para estimaciones más precisas, se requeriría una\n")
amplitud moderada. Para estimaciones más precisas, se requeriría una
cat(" muestra más grande.\n")
muestra más grande.
cat(" • Los resultados sugieren que, en términos de superar el umbral de 3 horas\n")
• Los resultados sugieren que, en términos de superar el umbral de 3 horas
cat(" diarias de internet, hombres y mujeres tienen comportamientos similares\n")
diarias de internet, hombres y mujeres tienen comportamientos similares
cat(" en la población estudiada.\n")
en la población estudiada.
# Crear tabla resumen
tabla_resumen <- data.frame(
Método = c("Prueba de hipótesis (Ej. 6)", "Intervalo de confianza (Ej. 7)"),
Nivel_confianza = c("99% (α = 0.01)", "95%"),
Estadístico = c(paste("X² =", round(0.4283, 4)), "Diferencia de proporciones"),
Valor_estimado = c(paste("p =", round(p_valor_ej6, 4)),
paste(round(diferencia, 4))),
Intervalo = c("No aplica",
paste("[", round(lim_inf, 4), ", ", round(lim_sup, 4), "]")),
Incluye_cero = c("No aplica", ifelse(lim_inf <= 0 & lim_sup >= 0, "Sí", "No")),
Conclusión = c("No rechazar H0: proporciones iguales",
ifelse(lim_inf <= 0 & lim_sup >= 0,
"No evidencia de diferencia",
"Evidencia de diferencia"))
)
flextable(tabla_resumen) %>%
bg(j = "Incluye_cero", bg = ifelse(tabla_resumen$Incluye_cero == "Sí", "#90EE90", "#FFB6C1")) %>%
bg(j = "Conclusión", bg = ifelse(grepl("No", tabla_resumen$Conclusión), "#90EE90", "#FFB6C1")) %>%
set_table_properties(width = 1, layout = "autofit")
Método | Nivel_confianza | Estadístico | Valor_estimado | Intervalo | Incluye_cero | Conclusión |
|---|---|---|---|---|---|---|
Prueba de hipótesis (Ej. 6) | 99% (α = 0.01) | X² = 0.4283 | p = 0.5128 | No aplica | No aplica | No rechazar H0: proporciones iguales |
Intervalo de confianza (Ej. 7) | 95% | Diferencia de proporciones | -0.0967 | [ -0.3106 , 0.1172 ] | Sí | No evidencia de diferencia |
Planteamiento del problema
Se desea determinar si el tiempo promedio dedicado a la lectura es diferente entre los estratos 1 y 6. Para ello se comparan las medias poblacionales del tiempo de lectura en ambos grupos, a partir de los datos de la encuesta.
En este problema interesa probar si las medias poblacionales del tiempo dedicado a la lectura en el estrato 1 y el estrato 6 son iguales o diferentes.
Hipótesis
\[ H_0: \mu_1 = \mu_6 \]
\[ H_1: \mu_1 \neq \mu_6 \]
Es decir:
\[ H_0: \text{El tiempo promedio dedicado a la lectura es igual en el estrato 1 y el estrato 6.} \]
\[ H_1: \text{El tiempo promedio dedicado a la lectura es diferente entre el estrato 1 y el estrato 6.} \]
Nivel de significancia:
\[ \alpha = 0.05 \]
Preparación de los datos
lectura_estrato1 <- Encuesta_habitos$tiempo_lectura[Encuesta_habitos$estrato == 1]
lectura_estrato6 <- Encuesta_habitos$tiempo_lectura[Encuesta_habitos$estrato == 6]
datos_filtrados <- Encuesta_habitos[Encuesta_habitos$estrato %in% c(1, 6), ]
Verificación del supuesto de normalidad
Antes de aplicar la prueba para la diferencia de medias, es necesario verificar el supuesto de normalidad en cada grupo. Para ello se emplea la prueba de Lilliefors.
cat("Tamaño de la muestra - Estrato 1:", length(lectura_estrato1), "\n")
Tamaño de la muestra - Estrato 1: 92
cat("Tamaño de la muestra - Estrato 6:", length(lectura_estrato6), "\n\n")
Tamaño de la muestra - Estrato 6: 7
cat("Valor p (Lilliefors) - Estrato 1:", lillie.test(lectura_estrato1)$p.value, "\n")
Valor p (Lilliefors) - Estrato 1: 2.163711e-05
cat("Valor p (Lilliefors) - Estrato 6:", lillie.test(lectura_estrato6)$p.value, "\n")
Valor p (Lilliefors) - Estrato 6: 0.546357
Si ambos valores p son mayores a 0.05, se puede asumir normalidad y aplicar la prueba t para medias.
En caso contrario, se debe usar una prueba no paramétrica.
De acuerdo con los resultados de la prueba de Lilliefors, el valor p obtenido para el estrato 1 es 0.0000216, el cual es menor que el nivel de significancia \(α=0.05\), por lo que se rechaza la hipótesis de normalidad para este grupo. En cambio, el estrato 6 tiene un valor p de 0.5464 (>0.05), por lo que sí cumple normalidad. Dado que al menos un grupo no es normal, se debe utilizar una prueba no paramétrica.
Verificación de homogeneidad de varianzas
Para determinar qué tipo de prueba t utilizar (con varianzas iguales o diferentes), se verifica la homogeneidad de varianzas.
var_test <- var.test(tiempo_lectura ~ estrato, data = datos_filtrados)
cat("Prueba F para igualdad de varianzas:\n")
Prueba F para igualdad de varianzas:
cat("Estadístico F =", round(var_test$statistic, 4), "\n")
Estadístico F = 0.5604
cat("Valor p =", round(var_test$p.value, 4), "\n")
Valor p = 0.222
Si el valor p es mayor a \(0.05\), se asume homogeneidad de varianzas y se usa prueba t con varianzas iguales. Si es menor, se usa prueba t de Welch con varianzas diferentes.
Prueba de hipótesis no paramétrica (Wilcoxon-Mann-Whitney)
Dado que al menos un grupo no cumple el supuesto de normalidad, se utiliza la prueba de Wilcoxon-Mann-Whitney para comparar las distribuciones.
resultado_wilcox <- wilcox.test(tiempo_lectura ~ estrato,
data = datos_filtrados,
alternative = "two.sided",
exact = FALSE,
conf.int = TRUE,
conf.level = 0.95)
tabla_resultados <- data.frame(
Estadistico_W = as.numeric(resultado_wilcox$statistic),
p_valor = resultado_wilcox$p.value,
Diferencia_estimada = resultado_wilcox$estimate,
IC_inferior = resultado_wilcox$conf.int[1],
IC_superior = resultado_wilcox$conf.int[2]
)
flextable(tabla_resultados)
Estadistico_W | p_valor | Diferencia_estimada | IC_inferior | IC_superior |
|---|---|---|---|---|
126.5 | 0.007276697 | -1.200015 | -1.800063 | -0.4000504 |
Esta prueba contrasta si las distribuciones del tiempo de lectura son iguales entre los dos estratos.
Valor p y región de rechazo
Región de rechazo: Al tratarse de una prueba bilateral, la región de rechazo se encuentra en ambas colas de la distribución.
Criterio de decisión:
\[ \text{Si valor } p < 0.05\text{, se rechaza } H_0. \]
\[ \text{Si valor } p \geq 0.05\text{, no se rechaza } H_0. \]
Conclusión
Con un nivel de significancia del \(5%\), el valor \(p\) obtenido \((0.0073)\) es menor que \(α = 0.05\), por lo que se rechaza la hipótesis nula \(H₀\). Existe evidencia estadística suficiente para afirmar que hay una diferencia significativa en el tiempo promedio dedicado a la lectura entre los estratos 1 y 6.
La diferencia estimada es de 1.20 horas, indicando que el estrato 1 dedica menos tiempo a la lectura que el estrato 6. El intervalo de confianza del \(95%\) \([-1.80, -0.40]\) no incluye el cero, lo cual respalda estadísticamente esta conclusión. Por lo tanto, no se acepta H₀ y se concluye que los hábitos de lectura difieren significativamente entre ambos estratos socioeconómicos.