El Teorema del Límite Central es uno de los más importantes en la inferencia estadística y habla sobre la convergencia de los estimadores como la proporción muestral a la distribución normal.

Para ponerlo a prueba, construiremos una simulación con una población de 1000 plantas, de las cuales el 50% de esta población estará enferma.

Posteriormente, se obtiene una muestra aleatoria de la población y se obtiene el estimador de la proporción muestral. La muestra escogida fue de tamaño de 50 individuos.

## Tamaño de muestra: 50
## Estimador de proporción muestral: 0.48

Ahora repetimos este mismo escenario 500 veces

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2400  0.4400  0.5000  0.4959  0.5400  0.7000
## Varianza: 0.0049

Según lo obtenido en el boxplot del estimador, está muy cerca de una símetría perfecta, su media está muy cerca del valor esperado (0.5). Por otro lado, su variabilidad es relativamente baja, teniendo en cuenta los datos usados.

Ahora se repetirá el mismo procedimiento, pero ahora se realizarán 10 versiones, es decir, con 10 diferentes tamaños de muestra (n = 5, 10, 15, 20, 30, 50, 60, 100, 200, 500), respectivamente.

Ahora, teniendo las distribuciones de acuerdo con cada uno de los tamaños de muestra, se ve cómo, por ejemplo, la versión 1 que corresponde con la selección de muestra tamaño 5, es la de mayor varianza y más sesgo. Y a medida que aumenta el tamaño de muestra, el estimador se vuelve más insesgado y más eficiente. Sin embargo, es necesario realizar un análisis de normalidad para identificar las diferencias entre los tamaños de muestra.

El test de normalidad se realiza por medio de la prueba de Shapiro Wilks, al interpretar su estadistico, como sigue:

  1. Valor p menor que el nivel de significancia (alfa): Si el valor p es menor que el nivel de significancia (alfa) que elegido de antemano, en este caso 0.05, entonces tienes evidencia para rechazar la hipótesis nula (H0). La hipótesis nula en este caso es que los datos siguen una distribución normal. En otras palabras, si p < alfa, puedes concluir que los datos no se distribuyen normalmente.

  2. Valor p mayor o igual al nivel de significancia (alfa): Si el valor p es igual o mayor que el nivel de significancia (alfa), entonces no tienes suficiente evidencia para rechazar la hipótesis nula (H0). En este caso, no puedes concluir que los datos no siguen una distribución normal; es decir, no puedes afirmar que los datos son significativamente diferentes de una distribución normal.

Entonces, en las siguientes pruebas lo que buscamos es que el p-valor sea mayor a 0.05 para afirmar que son distribuciones normales.

## 
## Tamaño de muestra: 5 
## p-valor de Shapiro-Wilk: 1.368731e-14 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 10 
## p-valor de Shapiro-Wilk: 3.857281e-10 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 15 
## p-valor de Shapiro-Wilk: 1.208992e-08 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 20 
## p-valor de Shapiro-Wilk: 1.797398e-06 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 30 
## p-valor de Shapiro-Wilk: 1.667029e-05 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 50 
## p-valor de Shapiro-Wilk: 0.001197113 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 60 
## p-valor de Shapiro-Wilk: 0.003603013 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 100 
## p-valor de Shapiro-Wilk: 0.005347654 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 200 
## p-valor de Shapiro-Wilk: 0.06584638 , es decir,  la distribución es normal

## 
## Tamaño de muestra: 500 
## p-valor de Shapiro-Wilk: 0.1047423 , es decir,  la distribución es normal

Como se observa en los gráficos anteriores, la distribución gráfica de los cuantiles observados de la muestra no corresponde con los cuantiles teóricos en la mayoría de los casos, sólo cuando la muestra es lo suficientemente grande esto ocurre.

10% de plantas enfermas

Ahora, qué sucedería si el porcentaje de plantas enfermas sería del 10%? Volvemos a realizar el mismo análisis.

Aquí se presenta la distribución con la probabilidad del 10% de plantas enfermas. Ahora, realizamos los análisis de distribución con las diferentes muestras y repitiendo el ensayo 500 veces para posteriormente obtener los análisis de normalidad.

En este caso nuestro indicador de referencia se ubica en 0.9, al hacer referencia al 90% de casos de plantas no enfermas, así mismo se observa como los estimadores de cada muestra son insesgados a excepción de la muestra más pequeña. Ahora, al analizar la normalidad de los datos se tiene que:

## 
## Tamaño de muestra: 5 
## p-valor de Shapiro-Wilk: 3.848301e-28 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 10 
## p-valor de Shapiro-Wilk: 4.623955e-21 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 15 
## p-valor de Shapiro-Wilk: 5.660142e-18 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 20 
## p-valor de Shapiro-Wilk: 4.309139e-15 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 30 
## p-valor de Shapiro-Wilk: 3.832937e-12 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 50 
## p-valor de Shapiro-Wilk: 7.133549e-09 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 60 
## p-valor de Shapiro-Wilk: 6.423756e-08 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 100 
## p-valor de Shapiro-Wilk: 0.0001029624 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 200 
## p-valor de Shapiro-Wilk: 0.0002471464 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 500 
## p-valor de Shapiro-Wilk: 0.01660643 , es decir,  la distribución no es normal

90% de plantas enfermas

Ahora, se realizará el mismo ejercicio, pero con la población de plantas con una probabilidad de enfermar del 90%. Por lo que:

Esta es la distribución de plantas con una probabilidad de enfermar del 90%. A continuación se presenta la distribución de los estimadores de muestra según cada versión realizada, por tamaño de muestra.

En este caso nuestro indicador de referencia se ubica en 0.1, al hacer referencia al 10% de casos de plantas no enfermas. Ahora, al analizar la normalidad de los datos se tiene que:

## 
## Tamaño de muestra: 5 
## p-valor de Shapiro-Wilk: 1.061195e-28 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 10 
## p-valor de Shapiro-Wilk: 3.460112e-22 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 15 
## p-valor de Shapiro-Wilk: 3.425173e-18 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 20 
## p-valor de Shapiro-Wilk: 2.81702e-16 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 30 
## p-valor de Shapiro-Wilk: 2.396563e-11 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 50 
## p-valor de Shapiro-Wilk: 1.635749e-08 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 60 
## p-valor de Shapiro-Wilk: 7.25854e-08 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 100 
## p-valor de Shapiro-Wilk: 8.520755e-05 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 200 
## p-valor de Shapiro-Wilk: 0.006064563 , es decir,  la distribución no es normal

## 
## Tamaño de muestra: 500 
## p-valor de Shapiro-Wilk: 0.1655829 , es decir,  la distribución es normal

Anexo

# Generar una población de 1000 individuos con un 50% de enfermos
set.seed(123)  # Establecer una semilla para reproducibilidad
poblacion <- rbinom(1000, size = 1, prob = 0.5)
# Graficar la población usando un gráfico de barras
barplot(table(poblacion), col = c("red", "green"), 
        names.arg = c("Enfermos", "No Enfermos"),
        xlab = "Estado de Salud", ylab = "Frecuencia", 
        main = "Distribución de la Población")

cal_prop_muestral <- function(poblacion, n) {
  muestra <- sample(poblacion, size = n)
  prop_muestral <- mean(muestra)
  resultado <- list(muestra,prop_muestral)
  return(resultado)
}

# Función para obtener una muestra aleatoria y calcular p^
tam_muestra <- 50

resultado <- cal_prop_muestral(poblacion, tam_muestra)
muestra <- resultado[[1]]
prop_muestral <- resultado[[2]]

barplot(table(muestra), col = c("red", "green"), 
        names.arg = c("Enfermos", "No Enfermos"),
        xlab = "Estado de Salud", ylab = "Frecuencia", 
        main = "Distribución de la Población")

#Imprimir resultado
cat("Tamaño de muestra:", tam_muestra, "\n")
cat("Estimador de proporción muestral:", prop_muestral, "\n")

# Número de repeticiones
repeticiones <- 500

# Vector para almacenar los resultados
resultados <- numeric(repeticiones)

for (i in 1:repeticiones) {
  resultados[i] <- cal_prop_muestral(poblacion, tam_muestra)[[2]]
}

# Análisis de los resultados
library(ggplot2)
summary(resultados)
cat("Varianza:", round(var(resultados),4), "\n")
boxplot(resultados, main="Distribución del estimador")
abline(h=0.5,  col="red")

# Tamaños de muestra a evaluar
muestras <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)

# Data frame para almacenar los resultados
resultados_df <- as.data.frame(matrix(ncol = length(muestras), nrow=repeticiones))

for (n in 1:length(muestras)) {
  resultados <- numeric(repeticiones)
  
  for (i in 1:repeticiones) {
    resultados[i] <- cal_prop_muestral(poblacion, muestras[n])[[2]]
  }
  # Almacenar resultados
  resultados_df[n] <- resultados
}

boxplot(resultados_df, las=1, main="Distribución de estimador muestral, según versión.")
abline(h=0.5,  col="red")

# Análisis de normalidad usando pruebas y gráficos
for (n in 1:length(muestras)) {
  shapiro_test <- shapiro.test(resultados_df[,n])
 
  # Gráfico QQ para verificar normalidad
  titulo <- sprintf("Comparación cuantiles teóricos y observados, muestra de tamaño n=%d", muestras[n])
  qqnorm(resultados_df[,n], main = titulo)
  qqline(resultados_df[,n])
  cat("\n")
  
  mensaje <- ifelse(shapiro_test$p.value > 0.05, "la distribución es normal", "la distribución no es normal")
  # Imprimir resultados de la prueba de Shapiro-Wilk
  cat("Tamaño de muestra:", muestras[n], "\n")
  cat("p-valor de Shapiro-Wilk:", shapiro_test$p.value, ", es decir, ", mensaje ,"\n")
}