Ejercicio

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.

Nota

funciones recomendadas : rbinom() , data.frame(), apply()

A continuación se describen los siguientes pasos para su verificación:

Lote con 50% de plantas enfermas

  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%.
## Generar lote de 1000 con 50% de plantas enfermas 
n <- 1000
Lote <- rbinom(n, size = 1, prob = 0.5) ## 1->Plantas enfermas
print(Lote)
##    [1] 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 0 1 1 0 0 1 1 1 0 1 0 0 1 1 0 1 1 1 0
##   [38] 1 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 0 1 1 0 1
##   [75] 1 1 1 1 1 0 1 1 0 0 0 1 1 0 0 0 1 0 0 0 0 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0
##  [112] 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 0 1 1 0 0 0 1 0 0 1 1 0 0 1 1 0 1 1 0 1 1
##  [149] 1 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 1 1 0 0 0 0 1 1 0 1
##  [186] 0 0 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1
##  [223] 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 1
##  [260] 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 1 0 1 1 1 0 0 0 0 0 1 0 1 1 1 0 0 1
##  [297] 0 1 1 1 1 1 0 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 0 1 1 0
##  [334] 0 0 0 1 0 1 1 0 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 0 1 0 0 0 1 1 1 0 0 0 1 0 0
##  [371] 1 0 1 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 1 1 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0
##  [408] 0 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 1 1 0 0 1 0 1 0 0 1 1 0 1 0 0 0 0 0 0 0
##  [445] 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 1 1 0 0 1 1 1
##  [482] 1 1 0 0 1 1 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 1 1 1 1 0 1 1 0 0 0 0 1 1
##  [519] 0 1 1 0 0 0 1 0 1 1 0 1 1 0 1 1 1 1 1 0 0 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 0
##  [556] 1 1 1 0 1 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1
##  [593] 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 0 1
##  [630] 1 1 1 1 0 1 1 1 1 0 1 0 0 1 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 1 1 0 1 0 0
##  [667] 1 1 1 1 0 1 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 1 1
##  [704] 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 1 1 0 0 1 0 1 1 0 1 0
##  [741] 1 0 0 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 0 1 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0
##  [778] 1 0 0 1 1 1 0 1 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0 0 0 0 0 1 0 0 0 1 1 0 0 0
##  [815] 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 0 1 0 1
##  [852] 1 1 1 1 1 1 1 0 1 1 0 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 1 1 0 1 1 0 1 1 1
##  [889] 0 1 0 1 1 0 1 0 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 1 0 0 0 0 0 1 0 0
##  [926] 0 0 0 0 1 1 0 1 1 1 1 1 0 1 0 0 0 0 1 0 1 0 1 1 0 0 0 1 0 1 1 0 1 1 1 0 0
##  [963] 1 0 1 0 0 0 1 1 0 1 1 1 0 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 1 0 0 0 0 0 0 0
## [1000] 0
  1. 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.
## Función para obtener una muestra aleatoria y calcular el estimador de la proporción muestral
muestra_del_lote <- function(nmuestra, Lote) {    
  muestra <- sample(Lote, nmuestra)   
  estimador <- mean(muestra)  
  return(estimador)
}

## Generamos el estimador de la proporción muestral para un tamaño de muestra n=50
n_muestra <- 50
estimador_proporcion <- muestra_del_lote(n_muestra, Lote)
print(estimador_proporcion)
## [1] 0.56
  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.
n_repeticiones <- 500
n_muestra <- 50
estimadores_proporcion <- replicate(n_repeticiones, muestra_del_lote(n_muestra, Lote))

# Calcular la media y mediana de los estimadores
media_estimadores <- mean(estimadores_proporcion)
mediana_estimadores <- median(estimadores_proporcion)

# Crear un histograma
hist(estimadores_proporcion, main="Histograma de Estimadores de Proporción", xlab="Estimador de Proporción", ylab="Frecuencia")

# Crear un boxplot
boxplot(estimadores_proporcion, main="Boxplot de Estimadores de Proporción")

De acuerdo con el diagrama de cajas y bigotes el estimador es insesgado.El Histograma tiene forma de campana y es simétrica alrededor de la media que esta en 0.5 o 50%, evidenciando una distribución normal

  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
# Función para obtener una muestra aleatoria y calcular el estimador de la proporción muestral
muestra_del_lote <- function(nmuestra, Lote) {    
  muestra <- sample(Lote, nmuestra)
  estimador <- mean(muestra)  
  return(estimador)
}

# Crear un vector para almacenar los tamaños de muestra
n_muestras <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)

# Número de repeticiones
num_repeticiones <- 500

# Almacenar los resultados de las pruebas de normalidad
resultados_normalidad <- data.frame(N = numeric(0), p_value = numeric(0))

# Listas para almacenar los estimadores para cada tamaño de muestra
estimadores_list <- list()

# Bucle para diferentes tamaños de muestra
for (n_muestra in n_muestras) {
  # Generar estimadores y realizar pruebas de normalidad
  estimadores <- sapply(rep(n_muestra, num_repeticiones), muestra_del_lote, Lote = Lote)
  estimadores_list[[as.character(n_muestra)]] <- estimadores
  shapiro_test_result <- shapiro.test(estimadores)
  
  # Almacenar los resultados
  resultados_normalidad <- rbind(resultados_normalidad, data.frame(N = n_muestra, p_value = shapiro_test_result$p.value))
  
  # Crear gráfico QQ para visualizar la normalidad
  qqnorm(estimadores, main = paste("QQ Plot (n =", n_muestra, ")"))
  qqline(estimadores)
}

# Mostrar resultados de las pruebas de normalidad
print(resultados_normalidad)
##      N      p_value
## 1    5 8.464040e-15
## 2   10 5.910439e-10
## 3   15 3.742255e-08
## 4   20 2.165511e-06
## 5   30 1.307119e-04
## 6   50 6.107590e-03
## 7   60 2.793062e-03
## 8  100 1.189845e-02
## 9  200 1.473921e-01
## 10 500 8.639304e-02
# Crear un boxplot para comparar distribuciones
boxplot(estimadores_list, 
        names = n_muestras, 
        main = "Comparación de Distribuciones por Tamaño de Muestra",
        xlab = "Tamaño de Muestra",
        ylab = "Estimador de Proporción")

Con los gráficos Cuantil-Cuantil se pudo comparar la distribución de los datos a medida que se aumenta el numero de muestras. De acuerdo con el gráfico de Comparación de distribuciones por tamaño de muestra a medida que aumenta el tamaño de esta , se reduce la variacion y dispersión de los datos.

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

Lote con 10% de plantas enfermas

## Generar lote de 1000 con 10% de plantas enfermas 
n <- 1000
Lote <- rbinom(n, size = 1, prob = 0.1) ## 1->Plantas enfermas
print(Lote)
##    [1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
##   [38] 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 0 0 0 0 1
##   [75] 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0
##  [112] 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
##  [149] 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0
##  [186] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [223] 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0
##  [260] 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [297] 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0
##  [334] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0
##  [371] 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0
##  [408] 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0
##  [445] 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0
##  [482] 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0
##  [519] 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [556] 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0
##  [593] 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0
##  [630] 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [667] 1 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
##  [704] 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
##  [741] 0 0 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0
##  [778] 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0
##  [815] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
##  [852] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0
##  [889] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [926] 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
##  [963] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0
## [1000] 0
## Función para obtener una muestra aleatoria y calcular el estimador de la proporción muestral
muestra_del_lote <- function(nmuestra, Lote) {    
  muestra <- sample(Lote, nmuestra)   
  estimador <- mean(muestra)  
  return(estimador)
}

## Generamos el estimador de la proporción muestral para un tamaño de muestra n=50
n_muestra <- 50
estimador_proporcion <- muestra_del_lote(n_muestra, Lote)
print(estimador_proporcion)
## [1] 0.14
n_repeticiones <- 500
n_muestra <- 50
estimadores_proporcion <- replicate(n_repeticiones, muestra_del_lote(n_muestra, Lote))

# Calcular la media y mediana de los estimadores
media_estimadores <- mean(estimadores_proporcion)
mediana_estimadores <- median(estimadores_proporcion)

# Crear un histograma
hist(estimadores_proporcion, main="Histograma de Estimadores de Proporción", xlab="Estimador de Proporción", ylab="Frecuencia")

# Crear un boxplot
boxplot(estimadores_proporcion, main="Boxplot de Estimadores de Proporción")

# Función para obtener una muestra aleatoria y calcular el estimador de la proporción muestral
muestra_del_lote <- function(nmuestra, Lote) {    
  muestra <- sample(Lote, nmuestra)
  estimador <- mean(muestra)  
  return(estimador)
}

# Crear un vector para almacenar los tamaños de muestra
n_muestras <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)

# Número de repeticiones
num_repeticiones <- 500

# Almacenar los resultados de las pruebas de normalidad
resultados_normalidad <- data.frame(N = numeric(0), p_value = numeric(0))

# Listas para almacenar los estimadores para cada tamaño de muestra
estimadores_list <- list()

# Bucle para diferentes tamaños de muestra
for (n_muestra in n_muestras) {
  # Generar estimadores y realizar pruebas de normalidad
  estimadores <- sapply(rep(n_muestra, num_repeticiones), muestra_del_lote, Lote = Lote)
  estimadores_list[[as.character(n_muestra)]] <- estimadores
  shapiro_test_result <- shapiro.test(estimadores)
  
  # Almacenar los resultados
  resultados_normalidad <- rbind(resultados_normalidad, data.frame(N = n_muestra, p_value = shapiro_test_result$p.value))
  
  # Crear gráfico QQ para visualizar la normalidad
  qqnorm(estimadores, main = paste("QQ Plot (n =", n_muestra, ")"))
  qqline(estimadores)
}

# Mostrar resultados de las pruebas de normalidad
print(resultados_normalidad)
##      N      p_value
## 1    5 1.710198e-29
## 2   10 2.763251e-22
## 3   15 1.202095e-18
## 4   20 1.643353e-16
## 5   30 3.150491e-12
## 6   50 2.684457e-08
## 7   60 1.433004e-06
## 8  100 3.891318e-06
## 9  200 2.770752e-03
## 10 500 1.021374e-02
# Crear un boxplot para comparar distribuciones
boxplot(estimadores_list, 
        names = n_muestras, 
        main = "Comparación de Distribuciones por Tamaño de Muestra",
        xlab = "Tamaño de Muestra",
        ylab = "Estimador de Proporción")

Lote con 90% de plantas enfermas

## Generar lote de 1000 con 10% de plantas enfermas 
n <- 1000
Lote <- rbinom(n, size = 1, prob = 0.9) ## 1->Plantas enfermas
print(Lote)
##    [1] 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1
##   [38] 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1
##   [75] 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1
##  [112] 0 1 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1
##  [149] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
##  [186] 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
##  [223] 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1
##  [260] 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1
##  [297] 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1
##  [334] 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1
##  [371] 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [408] 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [445] 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [482] 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [519] 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1
##  [556] 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
##  [593] 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1
##  [630] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1
##  [667] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 0 1 1
##  [704] 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1
##  [741] 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 0 1 0 1 1 0 1 1
##  [778] 1 1 1 1 1 1 0 0 1 1 1 0 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
##  [815] 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1
##  [852] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1
##  [889] 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1
##  [926] 1 1 1 1 1 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1
##  [963] 0 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
## [1000] 0
## Función para obtener una muestra aleatoria y calcular el estimador de la proporción muestral
muestra_del_lote <- function(nmuestra, Lote) {    
  muestra <- sample(Lote, nmuestra)   
  estimador <- mean(muestra)  
  return(estimador)
}

## Generamos el estimador de la proporción muestral para un tamaño de muestra n=50
n_muestra <- 50
estimador_proporcion <- muestra_del_lote(n_muestra, Lote)
print(estimador_proporcion)
## [1] 0.94
n_repeticiones <- 500
n_muestra <- 50
estimadores_proporcion <- replicate(n_repeticiones, muestra_del_lote(n_muestra, Lote))

# Calcular la media y mediana de los estimadores
media_estimadores <- mean(estimadores_proporcion)
mediana_estimadores <- median(estimadores_proporcion)

# Crear un histograma
hist(estimadores_proporcion, main="Histograma de Estimadores de Proporción", xlab="Estimador de Proporción", ylab="Frecuencia")

# Crear un boxplot
boxplot(estimadores_proporcion, main="Boxplot de Estimadores de Proporción")

# Función para obtener una muestra aleatoria y calcular el estimador de la proporción muestral
muestra_del_lote <- function(nmuestra, Lote) {    
  muestra <- sample(Lote, nmuestra)
  estimador <- mean(muestra)  
  return(estimador)
}

# Crear un vector para almacenar los tamaños de muestra
n_muestras <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)

# Número de repeticiones
num_repeticiones <- 500

# Almacenar los resultados de las pruebas de normalidad
resultados_normalidad <- data.frame(N = numeric(0), p_value = numeric(0))

# Listas para almacenar los estimadores para cada tamaño de muestra
estimadores_list <- list()

# Bucle para diferentes tamaños de muestra
for (n_muestra in n_muestras) {
  # Generar estimadores y realizar pruebas de normalidad
  estimadores <- sapply(rep(n_muestra, num_repeticiones), muestra_del_lote, Lote = Lote)
  estimadores_list[[as.character(n_muestra)]] <- estimadores
  shapiro_test_result <- shapiro.test(estimadores)
  
  # Almacenar los resultados
  resultados_normalidad <- rbind(resultados_normalidad, data.frame(N = n_muestra, p_value = shapiro_test_result$p.value))
  
  # Crear gráfico QQ para visualizar la normalidad
  qqnorm(estimadores, main = paste("QQ Plot (n =", n_muestra, ")"))
  qqline(estimadores)
}

# Mostrar resultados de las pruebas de normalidad
print(resultados_normalidad)
##      N      p_value
## 1    5 6.082162e-28
## 2   10 7.645865e-23
## 3   15 1.494528e-16
## 4   20 1.932254e-14
## 5   30 9.743689e-12
## 6   50 1.548076e-08
## 7   60 3.919779e-07
## 8  100 3.723008e-05
## 9  200 2.481907e-05
## 10 500 2.073068e-02
# Crear un boxplot para comparar distribuciones
boxplot(estimadores_list, 
        names = n_muestras, 
        main = "Comparación de Distribuciones por Tamaño de Muestra",
        xlab = "Tamaño de Muestra",
        ylab = "Estimador de Proporción")

Conclusión

Lote 10% de plantas enfermas: Dados los resultados obtenidos se pudo evidenciar que a medida que incrementa la muestra, la distribución de las medias muestrales sigue una distribución normal. Lote 50% de plantas enfermas: la mayoría de los p^ se encuentran en la izquierda de la distribución debido a la desigualdad proporcional Lote 90% de plantas enfermas: la mayoría de los p^ se encuentran en la derecha de la distribución debido a la desigualdad proporcional