Teorema del Límite Central

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. 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%

Generación de la población

Se genera una población de mil plantas las cuales 500 son enfermas y 500 sanas

Pob_Planta <- c(rep("P.Sana", 500), rep("P.Enferma", 500))

table(Pob_Planta)
P.Enferma P.Sana
500 500

Función muestra y estimador

  1. Se genera una función para obtener una muestra de la población y que calcule el estimador de la proporción muestral.
#Función donde:
  #Pob = Población
  #N_Muestras= N° de muestras a generar
  # Enf_Sa = Escoger entre P.Enferma o P.Sana


F_Muestra <- function(Pob, N_Muestras, Enf_San)
    {
        muestra = sample(x = Pob, size= N_Muestras)
        Est_Muestra = sum(muestra == Enf_San)/ N_Muestras
        return(Est_Muestra)
    }

F_Muestra(Pob = Pob_Planta, N_Muestras = 60, Enf_San = "P.Sana")
## [1] 0.5333333

Función muestra y estimador varias iteraciones

  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.

Se genera una función para obtener una muestra de la población y calcular el estimador de la proporción muestral T veces

#Función donde:
  # Pob = Población
  # N_Muestras = Número de muestras a generar en cada iteración
  # Enf_Sa = Escoger entre P.Enferma o P.Sana
  # T = Número de iteraciones a realizar

# Establecer una semilla
set.seed(4812)

F_Varias_Muestras <- function(Pob, N_Muestras, Enf_Sa, T)
{
    resultados <- numeric(T)  # Vector almacena los resultados
  
      for (i in 1:T)
        {
          muestra = sample(x = Pob, size = N_Muestras)
          Est_Muestra = sum(muestra == Enf_Sa) / N_Muestras
          resultados[i] <- Est_Muestra
        }
  return(resultados)
  }

Ahora se realiza un análisis descriptivo de los datos

resultados <- F_Varias_Muestras(Pob = Pob_Planta, N_Muestras = 60, Enf_Sa = "P.Sana", T = 500)

summarytools::descr(resultados)
resultados
Mean 0.5014667
Std.Dev 0.0608159
Min 0.3000000
Q1 0.4666667
Median 0.5000000
Q3 0.5500000
Max 0.6666667
MAD 0.0741300
IQR 0.0833333
CV 0.1212762
Skewness -0.1027629
SE.Skewness 0.1092178
Kurtosis -0.2139285
N.Valid 500.0000000
Pct.Valid 100.0000000
# Estimar la media y la desviación estándar de tus resultados
media_resultados <- mean(resultados)
desviacion_resultados <- sd(resultados)

# Crear un histograma de los resultados
hist(resultados, prob = TRUE, 
     col = "steelblue", 
     border = "darkgreen", 
     main = "Histograma Resultados", 
     ylim = c(0, 7.5))

# Superponer una curva de densidad normal ajustada a tus resultados
curve(dnorm(x, mean = media_resultados, sd = desviacion_resultados), add = TRUE, lwd = 2, col = "red" )

#Superponer la media
abline(v=media_resultados, col="green", lwd=3)

Los resultados de las simulaciones muestran que los estimadores de proporción muestral son en su mayoría precisos y tienden a centrarse alrededor del valor real de la proporción poblacional (0.50 en este caso). La simetría cercana a cero sugiere una distribución aproximadamente simétrica de los estimadores, y la baja variabilidad implica que los estimadores son coherentes y no varían ampliamente de una simulación a otra

Varias muestras y comparación entre ellas

  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
#install.packages("car", dependencies = TRUE)
#install.packages("carData", dependencies = TRUE)

library(car)

Vector_Est <- c(5,10,15,20,30,50,60,100,200,500)

# Dividir la ventana gráfica en dos columnas
par(mfrow = c(1, 2))

for(i in 1:length(Vector_Est)) 
  {
    resultados_D <- F_Varias_Muestras(Pob = Pob_Planta, N_Muestras = Vector_Est[i], Enf_Sa = "P.Sana", T = 500)
    
    #Realizar pruebas de Shapiro-Wilk
    print(paste('Shapiro Test para una muestra de tamaño: ', Vector_Est[i])) 
    print(shapiro.test(resultados_D))

    # Estimar la media y la desviación estándar de tus resultados
    media_resultados <- mean(resultados_D)
    desviacion_resultados <- sd(resultados_D)

    # Crear un histograma de los resultados
      hist(resultados_D, prob = TRUE, col = "steelblue", border = "darkgreen", main = paste("Histograma - Muestra:", Vector_Est[i]))

    # Superponer una curva de densidad normal ajustada a tus resultados
    curve(dnorm(x, mean = media_resultados, sd = desviacion_resultados), add = TRUE, lwd = 2, col = "red" )

    #Superponer la media
    abline(v=media_resultados, col="green", lwd=3)
    
    #Crear QQ Plot
    qqnorm(resultados_D, pch = 1, frame = FALSE , main = paste("QQ plot - Muestra:", Vector_Est[i]))
    #Linea horizontal
    qqline(resultados_D, col = "green", lwd = 2)
    
 
}
## [1] "Shapiro Test para una muestra de tamaño:  5"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.92071, p-value = 1.47e-15

## [1] "Shapiro Test para una muestra de tamaño:  10"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.95964, p-value = 1.807e-10

## [1] "Shapiro Test para una muestra de tamaño:  15"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.97384, p-value = 8.594e-08

## [1] "Shapiro Test para una muestra de tamaño:  20"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.98188, p-value = 6.968e-06

## [1] "Shapiro Test para una muestra de tamaño:  30"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.9848, p-value = 4.371e-05

## [1] "Shapiro Test para una muestra de tamaño:  50"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.99016, p-value = 0.001998

## [1] "Shapiro Test para una muestra de tamaño:  60"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.98834, p-value = 0.0005107

## [1] "Shapiro Test para una muestra de tamaño:  100"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.99108, p-value = 0.004128

## [1] "Shapiro Test para una muestra de tamaño:  200"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.99425, p-value = 0.05636

## [1] "Shapiro Test para una muestra de tamaño:  500"
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_D
## W = 0.99432, p-value = 0.05981

# Restaurar la configuración de la ventana gráfica
par(mfrow = c(1, 1))

En los histogramas, se observa que a medida que aumenta el número de iteraciones, la distribución de los estimadores tiende a asemejarse cada vez más a una distribución normal. Este fenómeno se refleja claramente en los QQ plots, donde a medida que aumentamos las iteraciones, los puntos tienden a alinearse más estrechamente con la línea diagonal, lo que sugiere una mayor conformidad con la normalidad.

Cuando aplicamos las pruebas de Shapiro-Wilk a muestras con tamaños más pequeños, obtenemos valores de p muy bajos, lo que implica un rechazo significativo de la hipótesis de normalidad. Esto se debe a que el nivel de significancia comúnmente utilizado es 0.05. Sin embargo, a medida que aumentamos el número de iteraciones, observamos que las pruebas arrojan resultados más favorables. En estos casos, los valores de p son más altos, lo que indica que no existe evidencia suficiente para rechazar la hipótesis nula de normalidad. En resumen, los datos en la muestra de mayor tamaño (500) se ajustan razonablemente bien a una distribución normal, lo que sugiere una mejor normalidad en comparación con las muestras más pequeñas.