Ejercicio 3

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:

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

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 .

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.

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

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.

Solución:

# Generar una población de tamaño n=1000 (Lote) con un 50% de individuos enfermos (plantas)
set.seed(123)
poblacion_plantas <- rbinom(1000, 1, 0.5)

# Definir una función para obtener una muestra aleatoria de la población y calcular el estimador de la proporción muestral p para un tamaño de muestra dado n
obtener_muestra_aleatoria <- function(poblacion, n) {
  if (n >= length(poblacion)) {
    return(-1)
  } 
  else {
    muestra = sample(poblacion, n, replace = FALSE)
    mean_m = mean(muestra)
    return(mean_m)
  }
}

# Realizar 500 replicaciones del escenario de obtener una muestra de tamaño 500 y analizar los resultados
escenarios <- replicate(500, obtener_muestra_aleatoria(poblacion_plantas, 500))

# Calcular estadísticas descriptivas de los resultados de las 500 replicaciones
media_escenarios <- mean(escenarios)
desviacion_escenarios <- sd(escenarios)
minimo_escenarios <- min(escenarios)
maximo_escenarios <- max(escenarios)
q1_escenarios <- quantile(escenarios, probs=0.25)
q3_escenarios <- quantile(escenarios, probs=0.75)
varianza_escenarios <- var(escenarios)

# Crear una tabla con las estadísticas descriptivas
contenido <- round(as.numeric(c(media_escenarios, desviacion_escenarios, minimo_escenarios, maximo_escenarios, q1_escenarios, q3_escenarios, varianza_escenarios)), 4)
titulos <- c("Media", "Desviacion", "Minimo", "Maximo", "Q1", "Q3", "Varianza")
tabla_estadisticas <- as.data.frame(rbind(titulos, contenido))

# Mostrar la tabla con las estadísticas descriptivas
tabla_estadisticas
##               V1         V2     V3     V4    V5    V6       V7
## titulos    Media Desviacion Minimo Maximo    Q1    Q3 Varianza
## contenido 0.4939     0.0164  0.448   0.54 0.482 0.504    3e-04
# Crear un histograma de los resultados de las 500 replicaciones
hist(escenarios, main = "Histograma de 500 iteraciones", xlab = "Probabilidad de las muestras", breaks=30, ylab = "Frecuencia", las=1,
     font.axis=4)

# Realizar la simulación para diferentes tamaños de muestra y analizar la normalidad
tamanio_muestras <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
resultados_muestras <- list()

for (tamano_muestra in tamanio_muestras) {
  resultados_muestras[[as.character(tamano_muestra)]] <- replicate(500, obtener_muestra_aleatoria(poblacion_plantas, tamano_muestra))
}

# Mostrar los resultados de las pruebas de normalidad Shapiro-Wilk y gráficos QQ para cada tamaño de muestra
for (tamano_muestra in tamanio_muestras){
  cat("Muestra n = ", tamano_muestra, "\n")
  print(shapiro.test(resultados_muestras[[as.character(tamano_muestra)]]))
  qqnorm(resultados_muestras[[as.character(tamano_muestra)]])
  qqline(resultados_muestras[[as.character(tamano_muestra)]])
}
## Muestra n =  5 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.9225, p-value = 2.281e-15

## Muestra n =  10 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.96565, p-value = 2.017e-09

## Muestra n =  15 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.97214, p-value = 3.749e-08

## Muestra n =  20 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.97838, p-value = 9.212e-07

## Muestra n =  30 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.98452, p-value = 3.642e-05

## Muestra n =  50 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.98949, p-value = 0.001197

## Muestra n =  60 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.99039, p-value = 0.002399

## Muestra n =  100 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.99368, p-value = 0.03499

## Muestra n =  200 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.99268, p-value = 0.01519

## Muestra n =  500 
## 
##  Shapiro-Wilk normality test
## 
## data:  resultados_muestras[[as.character(tamano_muestra)]]
## W = 0.99617, p-value = 0.2711

Conclusiones:

Los resultados obtenidos muestran una coherencia con el valor real de la población, siendo este 0.5, con una desviación de 0.0152 que indica la cercanía de la mayoría de los datos a la media. Sin embargo, se observa asimetría en el histograma, sugiriendo un coeficiente de asimetría diferente de cero. Estos hallazgos respaldan el Teorema del Límite Central, mostrando que, a pesar de la variabilidad en el muestreo, la media de los estimadores se aproxima significativamente al valor real de la población, y la desviación estándar refleja la variabilidad presente en los resultados. Las pruebas, como la Prueba de Shapiro-Wilk, indican que los datos tienden a seguir una distribución normal, aunque con un valor p inicialmente bajo, lo que sugiere una persistente falta de normalidad en todas las simulaciones.