Informe 3

# Paso a: Crear la población
set.seed(123) # Para reproducibilidad
n_lote <- 1000
proporcion_enfermos <- 0.5
poblacion <- rbinom(n_lote, size = 1, prob = proporcion_enfermos)

# Paso b: Función para obtener una muestra aleatoria y calcular pˆ
obtener_p_hat <- function(n, poblacion) {
  muestra <- sample(poblacion, n)
  p_hat <- mean(muestra)
  return(p_hat)
}

# Paso c: Simulación para n=500 repeticiones
n_simulaciones <- 500
simulaciones_p_hat <- replicate(n_simulaciones, obtener_p_hat(n=500, poblacion))

# Analizar simetrĆ­a y sesgo
media_p_hat <- mean(simulaciones_p_hat)
sesgo <- media_p_hat - proporcion_enfermos
varianza_p_hat <- var(simulaciones_p_hat)

# Paso d: Repetir para diferentes tamaƱos de muestra
tamanos_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
resultados_normalidad <- data.frame()

for (n in tamanos_muestra) {
  p_hats <- replicate(n_simulaciones, obtener_p_hat(n, poblacion))
  
  # Realizar prueba de Shapiro-Wilks
  shapiro_test <- shapiro.test(p_hats)
  
  # QQ plot para la normalidad
  qqnorm(p_hats)
  qqline(p_hats)
  
  # Agregar resultados al dataframe
  resultados_normalidad <- rbind(resultados_normalidad, 
                                 data.frame(TamanoMuestra = n, 
                                            W = shapiro_test$statistic, 
                                            p_valor = shapiro_test$p.value))
}

# Mostrar los resultados
print(resultados_normalidad)
##    TamanoMuestra         W      p_valor
## W              5 0.9225013 2.281457e-15
## W1            10 0.9656453 2.016526e-09
## W2            15 0.9721437 3.749451e-08
## W3            20 0.9783762 9.212015e-07
## W4            30 0.9845180 3.641971e-05
## W5            50 0.9894872 1.197385e-03
## W6            60 0.9903906 2.398620e-03
## W7           100 0.9936826 3.498757e-02
## W8           200 0.9926833 1.518970e-02
## W9           500 0.9961692 2.710524e-01
# Paso e: Repetir la simulación para 10% y 90% de plantas enfermas
porcentajes <- c(0.1, 0.9)
resultados_conclusiones <- data.frame()

for (prop in porcentajes) {
  poblacion <- rbinom(n_lote, size = 1, prob = prop)
  for (n in tamanos_muestra) {
    p_hats <- replicate(n_simulaciones, obtener_p_hat(n, poblacion))
    shapiro_test <- shapiro.test(p_hats)
    
    resultados_conclusiones <- rbind(resultados_conclusiones, 
                                     data.frame(ProporcionEnfermos = prop, 
                                                TamanoMuestra = n, 
                                                W = shapiro_test$statistic, 
                                                p_valor = shapiro_test$p.value))
  }
}

# Mostrar las conclusiones finales
print(resultados_conclusiones)
##     ProporcionEnfermos TamanoMuestra         W      p_valor
## W                  0.1             5 0.7101828 1.728124e-28
## W1                 0.1            10 0.8553815 4.907762e-21
## W2                 0.1            15 0.9034452 2.957901e-17
## W3                 0.1            20 0.9304766 1.763349e-14
## W4                 0.1            30 0.9462117 1.695189e-12
## W5                 0.1            50 0.9715438 2.817553e-08
## W6                 0.1            60 0.9797045 1.941056e-06
## W7                 0.1           100 0.9861711 1.097801e-04
## W8                 0.1           200 0.9895094 1.217756e-03
## W9                 0.1           500 0.9939281 4.300683e-02
## W10                0.9             5 0.6888686 2.564893e-29
## W11                0.9            10 0.8191545 2.661509e-23
## W12                0.9            15 0.8850612 7.758906e-19
## W13                0.9            20 0.9107077 1.431963e-16
## W14                0.9            30 0.9405683 3.002970e-13
## W15                0.9            50 0.9728961 5.392731e-08
## W16                0.9            60 0.9764939 3.337016e-07
## W17                0.9           100 0.9851983 5.697336e-05
## W18                0.9           200 0.9920530 9.045486e-03
## W19                0.9           500 0.9938599 4.060956e-02