knitr::opts_chunk$set(echo = TRUE,comment = NA)
set.seed(123)

Teorema del Límite Central



El Teorema del Límite Central es uno de los más importantes en la estadística inferencial y habla sobre la convergencia de los estimadores, como la proporción muestral a la distribución normal. Algunos autores afirman que esta aproximación es bastante buena a partir del umbral n>30

A continuación se describen los siguientes pasos para su verificación:

  1. Realice una simulación en la cual genere una población de n=1000 (Lote), donde el porcentaje de individuos (supongamos plantas) enfermas sea del 50%.
set.seed(123)
n <-1000
p <-0.5
poblacion <- rbinom(n, 1, p)
  1. Genere una función que permita: Obtener una muestra aleatoria de la población y Calcule el estimador de la proporción muestral p para un tamaño de muestra dado n
  estimador <- function(poblacion, n_muestra) {
  muestra <- sample(poblacion, n, replace = TRUE)
  p_hat <- mean(muestra) # Estimador de proporción
  return(p_hat)
}
  1. Repita el escenario anterior (b) n=500 veces y analice los resultados en cuanto al comportamiento de los 500 resultados del estimador pˆ¿Qué tan simétricos o sesgados son los resultados obtenidos? y ¿qué se puede observar en cuanto a la variabilidad?. Realice en su informe un comentario sobre los resultados obtenidos.
n_simulaciones <- 500
n_muestra <- 50
resultados <- sapply(1:n_simulaciones, function(i) estimador(poblacion, n_muestra))
# Análisis de los resultados
hist(resultados, breaks = 30, main = "Histograma del estimador p-hat",
     xlab = "Valores de p-hat", ylab = "Frecuencia",
     col = "lightblue", border = "black")



Análisis: Se aprecia que en el histograma las observaciones están agrupadas alrededor de 0.50, las barras parecen simétricas tanto a la izquierda como a la derecha a nivel de frecuencias. Esto implicaría que no hay sesgo significativo en la distribución.

  1. Repita los puntos b y c para tamaños de muestra n=5,10, 15, 20, 30, 50, 60, 100, 200, 500 Compare los resultados obtenidos para los diferentes tamaños de muestra en cuanto a la normalidad. Utilice pruebas de bondad y ajuste (shapiro wilks :shspiro.test()) y métodos gráficos (gráfico de normalidad: qqnorm()). Comente en su informe los resultados obtenidos
tamanos_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
resultados <- lapply(tamanos_muestra, function(n_muestra) {
  sapply(1:n_simulaciones, function(i) estimador(poblacion, n_muestra))
})

par(mfrow = c(1, 2))
for (i in 1:length(tamanos_muestra)) {
  hist(resultados[[i]], main = paste("n =", tamanos_muestra[i]), xlab = "Proporción muestral")
  qqnorm(resultados[[i]], main = paste("QQ plot (n =", tamanos_muestra[i], ")"))
  qqline(resultados[[i]])
  print(shapiro.test(resultados[[i]]))
}


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99629, p-value = 0.2968


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.9973, p-value = 0.592


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99557, p-value = 0.1687


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99639, p-value = 0.3193


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99511, p-value = 0.1153


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.9966, p-value = 0.3741


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99629, p-value = 0.2981


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99594, p-value = 0.2262


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99817, p-value = 0.878


    Shapiro-Wilk normality test

data:  resultados[[i]]
W = 0.99598, p-value = 0.2334

Análisis: A medida que el tamaño de la muestra aumenta la variabilidad disminuye, permitiendo la simetría de las distribuciones. al observar los tamaños mas pequeños 5, 10 y 15 pareciera haber variabilidad , mientras que con tamaños de muestras mas grandes la distribución se vuelve mas simétrica.

El gráfico Q-Q compara los cuantiles observados de los cuantiles esperados, en los diferentes tamaños de muestra se observa que los puntos siguen una linea recta lo cual indica que la distribución de los datos esta normal. Para los gráficos mas pequeños los puntos en la cola se desvía mas lo cual indica que la proporción muestral no sigue perfectamente una distribución normal ya que la muestra es demasiado pequeña pero a medida que la muestra es mas grande los puntos se ajustan mejor a la recta hasta llegar a las muestras grandes en las cuales se ven los puntos mas alineados a la recta.

Con respecto al analisis de shapiro el Tamaño de muestra pequeño (N ≤ 30): Los valores de W y p sugieren que los datos son compatibles con una distribución normal. Tamaño de muestra medio (N = 50 a N = 100): Los resultados siguen siendo compatibles con la normalidad, pero hay una ligera tendencia hacia una menor normalidad a medida que el tamaño de muestra aumenta. Tamaño de muestra grande (N = 200 a N = 500): Aunque no se rechaza la normalidad, se observa que el p-valor aumenta con N = 200, lo que sugiere que una muestra más grande puede estar más alineada con la normalidad. Sin embargo, en N = 500, el p-valor disminuye nuevamente, lo que puede indicar la presencia de ligeras desviaciones a medida que la muestra se amplía más allá de cierto punto. En resumen, la normalidad de los datos generados se mantiene consistente en muestras pequeñas y medianas. Para muestras muy grandes, aunque no se rechaza la normalidad, hay indicios de ligeras desviaciones que podrían requerir una mayor exploración.



  1. Repita toda la simulación (puntos a – d), pero ahora para lotes con 10% de plantas enfermas y de nuevo para lotes con un 90% de plantas enfermas. Concluya sobre los resultados del ejercicio.
poblacion_10 <- rbinom(n, size = 1, prob = 0.1)
poblacion_90 <- rbinom(n, size = 1, prob = 0.9)

# Repite los pasos anteriores para las nuevas poblaciones
resultados_10 <- lapply(tamanos_muestra, function(n_muestra) {
  sapply(1:n_simulaciones, function(i) estimador(poblacion_10, n_muestra))
})

par(mfrow = c(1, 2))
for (i in 1:length(tamanos_muestra)) {
  hist(resultados_10[[i]], main = paste("10% enfermas, n =", tamanos_muestra[i]), xlab = "Proporción muestral")
  qqnorm(resultados_10[[i]], main = paste("QQ plot (10% enfermas, n =", tamanos_muestra[i], ")"))
  qqline(resultados_10[[i]])
  print(shapiro.test(resultados_10[[i]]))
}


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99661, p-value = 0.3751


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99718, p-value = 0.55


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99413, p-value = 0.05102


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99449, p-value = 0.0687


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99443, p-value = 0.06574


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99342, p-value = 0.02798


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99571, p-value = 0.1892


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99595, p-value = 0.2283


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99363, p-value = 0.03341


    Shapiro-Wilk normality test

data:  resultados_10[[i]]
W = 0.99172, p-value = 0.006902

Análisis:

Con las muestras pequeñas de 5 a 20 las distribuciones son anchas y se desvian del 10% probablemente estando lejos del valor real, a medida que las muestras aumentan la variabilidad comienza a disminuir al llegar a las muestras grande de 100 a 500 las distribuciones son mas estrechas y mas simetricas al 10%

Con respecto al analisis de shapiro el tamaño de muestra pequeño (N ≤ 30): Aunque los p-valores están cerca de 0.05, no se rechaza la hipótesis de normalidad. Sin embargo, hay indicios de que la normalidad podría estar comprometida a medida que la muestra crece.

Tamaño de muestra medio (N = 50 a N = 60): En N=50, el p-valor cae por debajo de 0.05, lo que indica una posible desviación de la normalidad. En N=60, el p-valor aumenta de nuevo, pero no se observa un patrón claro.

Tamaño de muestra grande (N = 100 a N = 500): Aquí se observa una tendencia clara: a medida que aumenta el tamaño de la muestra, los p-valores disminuyen, y en muestras muy grandes (N=200 y N=500), la hipótesis de normalidad se rechaza de manera significativa. Esto sugiere que, con un mayor tamaño de muestra, se detectan desviaciones de la normalidad en la distribución de los datos.

En resumen, la normalidad parece mantenerse en tamaños de muestra más pequeños, pero con el aumento del tamaño de la muestra, especialmente a partir de N=50, se observa una desviación significativa de la normalidad, que se vuelve más pronunciada en tamaños de muestra grandes. Esto podría indicar que la distribución subyacente no es perfectamente normal, lo que se hace más evidente a medida que se observan más datos.

resultados_90 <- lapply(tamanos_muestra, function(n_muestra) {
  sapply(1:n_simulaciones, function(i) estimador(poblacion_90, n_muestra))
  
})


par(mfrow = c(1, 2))
for (i in 1:length(tamanos_muestra)) {
  hist(resultados_90[[i]], main = paste("90% enfermas, n =", tamanos_muestra[i]), xlab = "Proporción muestral")
  qqnorm(resultados_90[[i]], main = paste("QQ plot (90% enfermas, n =", tamanos_muestra[i], ")"))
  qqline(resultados_90[[i]])
  print(shapiro.test(resultados_90[[i]]))
}


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99649, p-value = 0.3438


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99548, p-value = 0.1564


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99662, p-value = 0.3777


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99763, p-value = 0.708


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99536, p-value = 0.1423


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99411, p-value = 0.04992


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99427, p-value = 0.05757


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99604, p-value = 0.2445


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.99409, p-value = 0.04916


    Shapiro-Wilk normality test

data:  resultados_90[[i]]
W = 0.9978, p-value = 0.7642

Análisis:

Con las muestras pequeñas de 5 a 20 las distribuciones son anchas y se desvian del 10% probablemente estando lejos del valor real, a medida que las muestras aumentan la variabilidad comienza a disminuir al llegar a las muestras grande de 100 a 500 las distribuciones son mas estrechas y mas simetricas al 10%

Con respecto al analisis de shapiro el Tamaño de muestra pequeño (N ≤ 30): Los valores de W y los p-valores indican que los datos parecen seguir una distribución normal en estos tamaños de muestra más pequeños. No se observa evidencia significativa contra la normalidad.

Tamaño de muestra medio (N = 50 a N = 60): En N=50, el p-valor es justo en el límite de 0.05, lo que sugiere que podría haber una ligera desviación de la normalidad. Sin embargo, en N=60, el p-valor vuelve a ser superior a 0.05, lo que indica que la normalidad no puede ser rechazada con firmeza.

Tamaño de muestra grande (N = 100 a N = 500): En general, los datos parecen ajustarse bien a una distribución normal, especialmente en muestras más grandes como N=500, donde el p-valor es notablemente alto, lo que sugiere que los datos son muy compatibles con una distribución normal. La excepción es N=200, donde el p-valor es justo en el límite, lo que podría requerir un análisis más detallado.

En resumen, para una población con un 90% de individuos enfermos, la normalidad de los datos se mantiene en tamaños de muestra pequeños y grandes. Los tamaños de muestra intermedios (como N=50 y N=200) muestran una ligera desviación, pero no lo suficiente como para rechazar completamente la hipótesis de normalidad, especialmente en los extremos (N=500).