Problema 3 - Teorema del Límite Central
Introducción.
El presente análisis busca verificar empíricamente el Teorema del Límite Central, que establece que, a medida que el tamaño de una muestra aumenta, la distribución de las medias muestrales se aproxima a una distribución normal, independientemente de la distribución original de los datos. Para este estudio, se realizaron simulaciones con una distribución exponencial, variando el tamaño de las muestras, con el objetivo de analizar el comportamiento de las medias muestrales y evaluar la convergencia hacia la normalidad.
Definición del problema.
El problema que estamos abordando está relacionado con la verificación empírica del Teorema del Límite Central. Este teorema indica que, para una muestra suficientemente grande de una variable aleatoria, la distribución de las medias muestrales se aproxima a una distribución normal, independientemente de la distribución original de los datos. Queremos comprobar este principio utilizando una distribución exponencial para diferentes tamaños de muestra.
Definición de los objetivos
El objetivo principal es verificar si, a medida que aumentamos el tamaño de la muestra, las medias muestrales de una distribución exponencial convergen hacia una distribución normal. Para lo que analizara lo siguiente: Se evaluaran cómo varían las distribuciones de las medias muestrales para diferentes tamaños de muestra. Se Analizaran si, a medida que el tamaño de la muestra aumenta, la forma de la distribución de las medias muestrales se asemeja más a una distribución normal. Se aplican técnicas gráficas y pruebas estadísticas para evaluar la normalidad de las medias muestrales.
Definición de las variables de interés.
Las variables clave en este análisis son: Tamaño de la muestra: Es el número de observaciones en cada muestra, variando entre 𝑛=1 n=1, 𝑛= 2 n=2,𝑛= 30 n=30,𝑛= 50 n=50,𝑛= 100 n=100, y 𝑛= 1000 n=1000. Medias muestrales: Son los promedios calculados de cada muestra de tamañon. Distribución de origen: En este caso, la variable original sigue una distribución exponencial.
Diseño del experimento.
Distribución original: Los datos provienen de una distribución exponencial con parámetro de tasa 𝜆=1λ=1, lo que significa que el tiempo entre eventos tiene una distribución exponencial.
Tamaño de muestra: Se tomarán muestras de diferentes tamaños:𝑛=1n=1,𝑛=2 n=2,𝑛=30n=30, 𝑛=50n=50, 𝑛=100n=100, y 𝑛=1000n=1000.
Número de simulaciones: Para cada tamaño de muestra, se generarán 1000 simulaciones para obtener una distribución muestral de las medias. Análisis: Se evaluará la densidad de las medias muestrales y se comparará con la distribución normal mediante gráficos de densidad.
Recolección de la información.
La información fue recolectada simulando valores de una distribución exponencial utilizando la función rexp() en R. Para cada tamaño de muestra (n), se generaron 1000 muestras independientes. Se calcularon las medias de cada una de estas muestras y se almacenaron para su posterior análisis.
Procesamiento de los datos.
Los datos se procesaron utilizando las funciones apply() y density() en R: apply(): Para calcular la media de cada muestra. density(): Para estimar la densidad de las medias muestrales, que nos permite visualizar cómo se distribuyen estas medias. Se configuraron gráficos con plot() para representar visualmente la forma de la distribución de las medias para cada tamaño de muestra.
Análisis descriptivo o exploratorio de dato.
Probabilidad: Utilizamos una distribución exponencial con parámetro 𝜆=1 λ=1. La media de la distribución exponencial es 1/𝜆=1 1/λ=1, por lo que esperamos que, en muestras suficientemente grandes, las medias muestrales converjan hacia este valor.
Variable aleatoria: La variable aleatoria que estamos analizando es el valor promedio de una muestra de tamaño n tomada de una distribución exponencial. Según el Teorema del Límite Central, la distribución de estas medias muestrales debería aproximarse a una distribución normal a medida que aumenta el tamaño de la muestra.Para tamaños de muestra pequeños (por ejemplo, 𝑛=1n=1, 𝑛=2n=2), la distribución de las medias está sesgada hacia la derecha, como es característico de la distribución exponencial. A medida que el tamaño de muestra aumenta (por ejemplo, 𝑛=100n=100, 𝑛=1000 n=1000), la distribución de las medias se vuelve más simétrica y se asemeja más a una distribución normal.
set.seed(123)
n_poblacion <- 1000
p_enfermos <- 0.5
# Generar población con 50% de Plantas enfermas
poblacion <- rbinom(n_poblacion, 1, p_enfermos)
# Función que toma una muestra aleatoria de la población y calcula pˆ
calcular_p_hat <- function(n_muestra, poblacion) {
muestra <- sample(poblacion, n_muestra, replace = TRUE)
return(mean(muestra)) # Proporción muestral pˆ
}
n_simulaciones <- 500
n_muestra <- 500
# Repetir simulación para calcular 500 proporciones muestrales pˆ
proporciones <- replicate(n_simulaciones, calcular_p_hat(n_muestra, poblacion))
# Analizar resultados (simetría, sesgo, variabilidad)
summary(proporciones)## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.4260 0.4780 0.4950 0.4947 0.5120 0.5540
hist(proporciones, main = paste("Distribución de proporciones para n =", n_muestra),
xlab = "Proporción", col = "#D2EFB2")par(mfrow = c(3, 4), mar = c(2, 2, 2, 2)) # Ajustar Márgenes
tamaños_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
# Almacenar los resultados de las proporciones para cada tamaño de muestra
resultados <- lapply(tamaños_muestra, function(n) replicate(n_simulaciones, calcular_p_hat(n, poblacion)))
# Graficar histogramas para cada tamaño de muestra
par(mfrow = c(3, 4)) # Configurar múltiples gráficos en la misma ventana
for (i in 1:length(tamaños_muestra)) {
hist(resultados[[i]], main = paste("n =", tamaños_muestra[i]),
xlab = "Proporción", col = ("#B2DFDB"), xlim = c(0, 1))
}
# Aplicar shapiro.test y qqnorm para evaluar normalidad
for (i in 1:length(tamaños_muestra)) {
cat("Tamaño de muestra:", tamaños_muestra[i], "\n")
print(shapiro.test(resultados[[i]])) # Prueba de normalidad
qqnorm(resultados[[i]], main = paste("QQ-plot para n =", tamaños_muestra[i]))
qqline(resultados[[i]], col = "#2196F3")
}## Tamaño de muestra: 5
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.92902, p-value = 1.2e-14
## Tamaño de muestra: 10
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.96664, p-value = 3.077e-09
## Tamaño de muestra: 15
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.972, p-value = 3.508e-08
## Tamaño de muestra: 20
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.97396, p-value = 9.122e-08
## Tamaño de muestra: 30
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.98246, p-value = 9.888e-06
## Tamaño de muestra: 50
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.99071, p-value = 0.003089
## Tamaño de muestra: 60
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.99283, p-value = 0.01718
## Tamaño de muestra: 100
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.99497, p-value = 0.1032
## Tamaño de muestra: 200
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.99474, p-value = 0.08538
## Tamaño de muestra: 500
##
## Shapiro-Wilk normality test
##
## data: resultados[[i]]
## W = 0.9965, p-value = 0.3475
# Supongamos que m es el número de simulaciones
m <- 1000
# Generar las muestras con distribución exponencial
X <- matrix(rexp(m * 1000, 1), ncol = 1000)
# Calcular las medias de cada tamaño de muestra
Mx2 <- apply(X[, 1:2], 1, mean)
Mx20 <- apply(X[, 1:20], 1, mean)
Mx30 <- apply(X[, 1:30], 1, mean)
Mx50 <- apply(X[, 1:50], 1, mean)
Mx100 <- apply(X[, 1:100], 1, mean)
Mx1000 <- apply(X[, 1:1000], 1, mean)
# Crear un dataframe con las medias
df <- data.frame(
n1 = X[, 1], # Muestra individual para n=1
n2 = Mx2,
n20 = apply(X[, 1:20], 1, mean), # Aquí puedes agregar los n=20
n30 = Mx30,
n50 = Mx50,
n100 = Mx100,
n1000 = Mx1000
)
# Visualizar la estructura del dataframe
head(df)## n1 n2 n20 n30 n50 n100 n1000
## 1 0.49436517 1.7968112 1.4909317 1.3526049 1.1958497 1.0802865 0.9722394
## 2 0.09039703 0.6145661 1.0808203 1.1037650 1.1406376 1.1627323 0.9804961
## 3 0.29993680 0.7918288 0.7854530 0.8976864 0.8902819 1.0401380 1.0218655
## 4 0.74171027 0.4921034 0.6495057 0.8105514 0.8021086 0.9512342 1.0535041
## 5 0.06884855 0.1396063 0.7314887 0.8810106 0.9863065 1.0602953 0.9676752
## 6 0.01810420 0.3354753 0.7875279 0.8295349 1.1395454 1.0578309 1.0429424
# Población con 10% de enfermos
poblacion_10 <- rbinom(n_poblacion, 1, 0.1)
# Población con 90% de enfermos
poblacion_90 <- rbinom(n_poblacion, 1, 0.9)
# Repetir simulación para las nuevas poblaciones
resultados_10 <- lapply(tamaños_muestra, function(n) replicate(n_simulaciones, calcular_p_hat(n, poblacion_10)))
resultados_90 <- lapply(tamaños_muestra, function(n) replicate(n_simulaciones, calcular_p_hat(n, poblacion_90)))
# graficos de densidad
# Configuración del área gráfica
par(cex=0.5, cex.axis=.5, cex.lab=.5, cex.main=.5, cex.sub=.5, mfrow=c(2,3), mai = c(.5, .5, .5, .5))# Generar las densidades para diferentes tamaños de muestra
d1 <- density(X[,1]) # n=1
d2 <- density(Mx2) # n=2
d30 <- density(Mx30) # n=30
d50 <- density(Mx50) # n=50
d100 <- density(Mx100) # n=100
d1000 <- density(Mx1000) # n=1000
# Graficar las densidades
plot(d1, main=" ", xlab = "n=1")
plot(d2, main=" ", xlab = "n=2")
plot(d30, main=" ", xlab = "n=30")
plot(d50, main=" ", xlab = "n=50")
plot(d100, main=" ", xlab = "n=100")
plot(d1000, main=" ", xlab = "n=1000")Inferencia estadística.
El Teorema del Límite Central sugiere que, para muestras suficientemente grandes, la distribución de las medias muestrales se aproximará a una distribución normal, independientemente de la distribución original de los datos. Al observar los gráficos generados para los diferentes tamaños de muestra:
Para muestras pequeñas (por ejemplo, 𝑛=2 n=2), la distribución de las medias muestrales no es normal, mostrando un sesgo considerable.Para muestras más grandes (por ejemplo, 𝑛=30n=30 y 𝑛=50 n=50), la distribución de las medias comienza a parecerse más a una distribución normal.Para muestras grandes (por ejemplo, 𝑛=100n=100 y𝑛 = 1000 n=1000), la distribución de las medias se aproxima claramente a la distribución normal.
Conclusiones.
A medida que el tamaño de la muestra aumenta, la distribución de las medias muestrales converge hacia una distribución normal.
Para tamaños de muestra superiores a𝑛= 30 n=30, la aproximación a la normalidad es bastante buena, lo que coincide con las predicciones teóricas del Teorema del Límite Central.
Los tamaños de muestra más pequeños resultan en distribuciones de medias que siguen teniendo sesgo, lo que refleja la naturaleza de la distribución exponencial original.
Recomendaciones.
En análisis estadísticos que involucren promedios muestrales, se recomienda utilizar tamaños de muestra superiores a𝑛= 30 n=30 para que la distribución de las medias sea aproximadamente normal.
Para muestras pequeñas, es importante tener en cuenta el sesgo y la falta de simetría de las distribuciones, lo que puede afectar las inferencias estadísticas.
Continuar evaluando la normalidad a través de pruebas estadísticas como el Shapiro-Wilk y gráficos QQ para otros escenarios o distribuciones originales diferentes.