Codigo en R

# Función global para el proceso
ejecutar_proceso <- function(p_enferma) {
  
  # Generar población
  poblacion <- rbinom(1000, 1, p_enferma)

  # Función para obtener muestras aleatorias y estimador pˆ (media)
  obtener_muestra <- function(poblacion, n_muestra) {
    muestra <- sample(poblacion, n_muestra, replace=TRUE)
    media <- mean(muestra)
    return(media) 
  }

  n_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
  resultados <- data.frame()

  for (n in n_muestra) {
    p_muestras <- replicate(500, obtener_muestra(poblacion, n))
    media_n <- mean(p_muestras)
    sesgo <- media_n - p_enferma
    varianza <- var(p_muestras)
    p_value <- shapiro.test(p_muestras)$p.value
    resultados <- rbind(resultados, data.frame(Muestra=n, Media=media_n, Sesgo=sesgo, Varianza=varianza, PValueShapiro=p_value))
  }

  print(resultados)


  n_interes <- c(5, 15, 30, 50, 100, 500)
  for (n in n_interes) {
    p_muestras <- replicate(500, obtener_muestra(poblacion, n))
    qqnorm(p_muestras, main=paste("QQ-plot para n =", n))
    qqline(p_muestras)
  }

  for (n in n_interes) {
    p_muestras <- replicate(500, obtener_muestra(poblacion, n))
    hist(p_muestras, main=paste("Histograma para n =", n), xlab="Proporción Muestral", xlim=c(0,1), breaks=30)
  }
}

Resultados

Poblacion enferma = 50%

set.seed(123)
ejecutar_proceso(0.50)
##    Muestra     Media        Sesgo     Varianza PValueShapiro
## 1        5 0.5076000  0.007600000 0.0502026453  1.195804e-14
## 2       10 0.4862000 -0.013800000 0.0235566733  4.193845e-10
## 3       15 0.4864000 -0.013600000 0.0172985259  2.761410e-07
## 4       20 0.5051000  0.005100000 0.0122434770  1.497441e-06
## 5       30 0.4941333 -0.005866667 0.0081017858  2.570845e-05
## 6       50 0.5001600  0.000160000 0.0053081908  1.042764e-02
## 7       60 0.4961000 -0.003900000 0.0039454587  2.876043e-03
## 8      100 0.4962000 -0.003800000 0.0023278156  6.609927e-02
## 9      200 0.4918500 -0.008150000 0.0011769815  2.170338e-02
## 10     500 0.4949240 -0.005076000 0.0004253169  5.683287e-01

Poblacion enferma = 10%

set.seed(123)
ejecutar_proceso(0.10)
##    Muestra      Media        Sesgo     Varianza PValueShapiro
## 1        5 0.09200000 -0.008000000 0.0173306613  1.750181e-29
## 2       10 0.08360000 -0.016400000 0.0068647695  1.198722e-23
## 3       15 0.09240000 -0.007600000 0.0053484925  1.408444e-18
## 4       20 0.09580000 -0.004200000 0.0042709018  2.938466e-16
## 5       30 0.09566667 -0.004333333 0.0027979292  4.284825e-11
## 6       50 0.09448000 -0.005520000 0.0018083463  4.702427e-08
## 7       60 0.09236667 -0.007633333 0.0014551982  8.863121e-08
## 8      100 0.09390000 -0.006100000 0.0008186273  1.987376e-05
## 9      200 0.09004000 -0.009960000 0.0004031046  1.458361e-03
## 10     500 0.09289200 -0.007108000 0.0001569342  1.050598e-01

Poblacion enferma = 90%

set.seed(123)
ejecutar_proceso(0.90)
##    Muestra     Media       Sesgo     Varianza PValueShapiro
## 1        5 0.9080000 0.008000000 0.0173306613  1.750181e-29
## 2       10 0.9164000 0.016400000 0.0068647695  1.198722e-23
## 3       15 0.9076000 0.007600000 0.0053484925  1.408444e-18
## 4       20 0.9042000 0.004200000 0.0042709018  2.938466e-16
## 5       30 0.9043333 0.004333333 0.0027979292  4.284825e-11
## 6       50 0.9055200 0.005520000 0.0018083463  4.702427e-08
## 7       60 0.9076333 0.007633333 0.0014551982  8.863121e-08
## 8      100 0.9061000 0.006100000 0.0008186273  1.987376e-05
## 9      200 0.9099600 0.009960000 0.0004031046  1.458361e-03
## 10     500 0.9071080 0.007108000 0.0001569342  1.050598e-01