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.

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

  2. Genere una función que permita:

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

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

Desarrollo

a. Simulación Población de Lote de plantas, N=1000 con el 50% enfermas

N=1000
p=0.5

LotePlantas = sample(c(0,1),N,replace=TRUE,prob = c(1-p,p))

# Tabla Frecuencias
tabla_frecuencias <- table(LotePlantas)

# Asigna nombres a las columnas
names(tabla_frecuencias) <- c("Plantas sanas", "Plantas enfermas")

# Imprime la tabla
print(tabla_frecuencias)
##    Plantas sanas Plantas enfermas 
##              507              493

b. Función muestra aleatoria y estimador

# Función para obtener una muestra y calcular p^
calcular_proporcion_muestral <- function(N, porcentaje_penfermas, tamano_muestra) {
  # Crear la población: 0 representa plantas sanas, 1 representa plantas enfermas
  poblacion <- sample(c(0, 1), N, replace = TRUE, prob = c(1 - porcentaje_penfermas, porcentaje_penfermas))
  
  # Extraer una muestra aleatoria de la población
  muestra <- sample(poblacion, tamano_muestra)
  
  # Calcular el estimador de la proporción muestral (p^)
  p_hat <- sum(muestra) / length(muestra)
  
  # Devolver el estimador de la proporción muestral
  return(p_hat)
}

c. Escenario con n=500

set.seed(123)  # Semilla para reproducibilidad

# Parámetros
N <- 1000  # Tamaño de la población
porcentaje_penfermas <- 0.5  # 50% de las plantas están enfermas
tamano_muestra <- 100  # Tamaño de la muestra
repeticiones <- 500  # Número de repeticiones

# Realizar la simulación
resultados <- replicate(repeticiones, {
  muestra <- calcular_proporcion_muestral(N, porcentaje_penfermas, tamano_muestra)
  mean(muestra)  # Calcula el estimador pˆ para la muestra
})

# Análisis de los resultados
mean_p_hat <- mean(resultados)
sd_p_hat <- sd(resultados)
hist(resultados, breaks = 30, main = "Distribución de los estimadores pˆ", xlab = "pˆ")

# Comentarios sobre los resultados
cat("El estimador pˆ promedio es:", mean_p_hat, "\n")
## El estimador pˆ promedio es: 0.50158
cat("La desviación estándar de pˆ es:", sd_p_hat, "\n")
## La desviación estándar de pˆ es: 0.04864191

Análisis n=500

El promeido obtenido del estimador p^ es 0.50158, lo cual es muy cercano al verdadero valor de la proporción de plantas enfermas en la población, que es 0.5. Esto indica que el estimador p^ es prácticamente insesgado para la proporción poblacional.

La desviación estándar de p^ es 0.04864191, indica que la mayoría de los estimadores p^ calculados a partir de las muestras están relativamente agrupados cerca del promedio p^ de 0.50158. Sin embargo, también indica que hay una dispersión que debe considerarse al interpretar estimaciones individuales de p^, a partir de muestras únicas. La variabilidad es una medida de cuánto esperamos que varíe el resultado de nuestro estimador de una muestra a otra, y en este caso, sugiere una precisión razonablemente buena pero no perfecta del estimador

d. Escenario con tamaños de muestra n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500

set.seed(123)  # Para reproducibilidad

# Parámetros de la población
N <- 1000  # Tamaño de la población
porcentaje_penfermas <- 0.5  # Proporción de plantas enfermas
tamanos_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)  # Tamaños de muestra a evaluar
repeticiones <- 500  # Número de repeticiones para cada tamaño de muestra

# Función para calcular proporciones muestrales
calcular_proporciones <- function(N, porcentaje_penfermas, tamano_muestra, repeticiones) {
  replicate(repeticiones, {
    poblacion <- sample(c(0, 1), N, replace = TRUE, prob = c(1 - porcentaje_penfermas, porcentaje_penfermas))
    muestra <- sample(poblacion, tamano_muestra)
    p_hat <- sum(muestra) / length(muestra)
    return(p_hat)
  })
}

# Proporciones muestrales para cada tamaño de muestra
resultados <- lapply(tamanos_muestra, function(n) calcular_proporciones(N, porcentaje_penfermas, n, repeticiones))

# Prueba de Shapiro-Wilk y Gráficos Q-Q para cada tamaño de muestra
par(mfrow=c(2,2))  # Ajusta el layout para ver varios gráficos a la vez
for(i in seq_along(tamanos_muestra)) {
  # Prueba de Shapiro-Wilk
  shapiro_test <- shapiro.test(resultados[[i]])
  cat("Tamaño de muestra:", tamanos_muestra[i], "P-valor:", shapiro_test$p.value, "\n")
  
  # Gráfico Q-Q
  qqnorm(resultados[[i]], main = paste("Q-Q Plot - n =", tamanos_muestra[i]))
  qqline(resultados[[i]], col = "red")
}
## Tamaño de muestra: 5 P-valor: 2.034929e-14
## Tamaño de muestra: 10 P-valor: 2.902218e-09
## Tamaño de muestra: 15 P-valor: 4.179857e-07
## Tamaño de muestra: 20 P-valor: 5.970094e-06

## Tamaño de muestra: 30 P-valor: 0.0001145039
## Tamaño de muestra: 50 P-valor: 0.00116089
## Tamaño de muestra: 60 P-valor: 0.004118524
## Tamaño de muestra: 100 P-valor: 0.04889173

## Tamaño de muestra: 200 P-valor: 0.06619049
## Tamaño de muestra: 500 P-valor: 0.09011165

Análisis tamaños de muestra n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500

Al analizar los resultados, se observa cómo cambian tanto los p-valores de la prueba de Shapiro-Wilk como la apariencia de los gráficos Q-Q a medida que aumenta el tamaño de la muestra. Se observa una tendencia hacia la normalidad con tamaños de muestra más grandes, lo cual es consistente con el Teorema del Límite Central.

e-1. Escenario Lotes con 10% de plantas enfermas

Simulación Población de Lote de plantas, N=1000 con el 10% enfermas

N=1000
p=0.1

LotePlantas = sample(c(0,1),N,replace=TRUE,prob = c(1-p,p))

# Tabla Frecuencias
tabla_frecuencias <- table(LotePlantas)

# Asigna nombres a las columnas
names(tabla_frecuencias) <- c("Plantas sanas", "Plantas enfermas")

# Imprime la tabla
print(tabla_frecuencias)
##    Plantas sanas Plantas enfermas 
##              907               93

Función muestra aleatoria y estimador

# Función para obtener una muestra y calcular p^
calcular_proporcion_muestral <- function(N, porcentaje_penfermas, tamano_muestra) {
  # Crear la población: 0 representa plantas sanas, 1 representa plantas enfermas
  poblacion <- sample(c(0, 1), N, replace = TRUE, prob = c(1 - porcentaje_penfermas, porcentaje_penfermas))
  
  # Extraer una muestra aleatoria de la población
  muestra <- sample(poblacion, tamano_muestra)
  
  # Calcular el estimador de la proporción muestral (p^)
  p_hat <- sum(muestra) / length(muestra)
  
  # Devolver el estimador de la proporción muestral
  return(p_hat)
}

Escenario con n=500

set.seed(123)  # Semilla para reproducibilidad

# Parámetros
N <- 1000  # Tamaño de la población
porcentaje_penfermas <- 0.1  # 10% de las plantas están enfermas
tamano_muestra <- 100  # Tamaño de la muestra
repeticiones <- 500  # Número de repeticiones

# Realizar la simulación
resultados <- replicate(repeticiones, {
  muestra <- calcular_proporcion_muestral(N, porcentaje_penfermas, tamano_muestra)
  mean(muestra)  # Calcula el estimador pˆ para la muestra
})

# Análisis de los resultados
mean_p_hat <- mean(resultados)
sd_p_hat <- sd(resultados)
hist(resultados, breaks = 30, main = "Distribución de los estimadores pˆ", xlab = "pˆ")

# Comentarios sobre los resultados
cat("El estimador pˆ promedio es:", mean_p_hat, "\n")
## El estimador pˆ promedio es: 0.10286
cat("La desviación estándar de pˆ es:", sd_p_hat, "\n")
## La desviación estándar de pˆ es: 0.03107977

Escenario con tamaños de muestra n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500

set.seed(123)  # Para reproducibilidad

# Parámetros de la población
N <- 1000  # Tamaño de la población
porcentaje_penfermas <- 0.1  # Proporción de plantas enfermas
tamanos_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)  # Tamaños de muestra a evaluar
repeticiones <- 500  # Número de repeticiones para cada tamaño de muestra

# Función para calcular proporciones muestrales
calcular_proporciones <- function(N, porcentaje_penfermas, tamano_muestra, repeticiones) {
  replicate(repeticiones, {
    poblacion <- sample(c(0, 1), N, replace = TRUE, prob = c(1 - porcentaje_penfermas, porcentaje_penfermas))
    muestra <- sample(poblacion, tamano_muestra)
    p_hat <- sum(muestra) / length(muestra)
    return(p_hat)
  })
}

# Proporciones muestrales para cada tamaño de muestra
resultados <- lapply(tamanos_muestra, function(n) calcular_proporciones(N, porcentaje_penfermas, n, repeticiones))

# Prueba de Shapiro-Wilk y Gráficos Q-Q para cada tamaño de muestra
par(mfrow=c(2,2))  # Ajusta el layout para ver varios gráficos a la vez
for(i in seq_along(tamanos_muestra)) {
  # Prueba de Shapiro-Wilk
  shapiro_test <- shapiro.test(resultados[[i]])
  cat("Tamaño de muestra:", tamanos_muestra[i], "P-valor:", shapiro_test$p.value, "\n")
  
  # Gráfico Q-Q
  qqnorm(resultados[[i]], main = paste("Q-Q Plot - n =", tamanos_muestra[i]))
  qqline(resultados[[i]], col = "red")
}
## Tamaño de muestra: 5 P-valor: 7.355663e-29
## Tamaño de muestra: 10 P-valor: 1.569293e-22
## Tamaño de muestra: 15 P-valor: 2.120485e-18
## Tamaño de muestra: 20 P-valor: 3.976943e-15

## Tamaño de muestra: 30 P-valor: 6.61465e-11
## Tamaño de muestra: 50 P-valor: 7.214001e-10
## Tamaño de muestra: 60 P-valor: 2.086169e-06
## Tamaño de muestra: 100 P-valor: 1.22309e-05

## Tamaño de muestra: 200 P-valor: 0.004021028
## Tamaño de muestra: 500 P-valor: 0.0330831

e-2. Escenario Lotes con 90% de plantas enfermas

Simulación Población de Lote de plantas, N=1000 con el 90% enfermas

N=1000
p=0.9

LotePlantas = sample(c(0,1),N,replace=TRUE,prob = c(1-p,p))

# Tabla Frecuencias
tabla_frecuencias <- table(LotePlantas)

# Asigna nombres a las columnas
names(tabla_frecuencias) <- c("Plantas sanas", "Plantas enfermas")

# Imprime la tabla
print(tabla_frecuencias)
##    Plantas sanas Plantas enfermas 
##               93              907

Función muestra aleatoria y estimador

# Función para obtener una muestra y calcular p^
calcular_proporcion_muestral <- function(N, porcentaje_penfermas, tamano_muestra) {
  # Crear la población: 0 representa plantas sanas, 1 representa plantas enfermas
  poblacion <- sample(c(0, 1), N, replace = TRUE, prob = c(1 - porcentaje_penfermas, porcentaje_penfermas))
  
  # Extraer una muestra aleatoria de la población
  muestra <- sample(poblacion, tamano_muestra)
  
  # Calcular el estimador de la proporción muestral (p^)
  p_hat <- sum(muestra) / length(muestra)
  
  # Devolver el estimador de la proporción muestral
  return(p_hat)
}

Escenario con n=500

set.seed(123)  # Semilla para reproducibilidad

# Parámetros
N <- 1000  # Tamaño de la población
porcentaje_penfermas <- 0.9  # 90% de las plantas están enfermas
tamano_muestra <- 100  # Tamaño de la muestra
repeticiones <- 500  # Número de repeticiones

# Realizar la simulación
resultados <- replicate(repeticiones, {
  muestra <- calcular_proporcion_muestral(N, porcentaje_penfermas, tamano_muestra)
  mean(muestra)  # Calcula el estimador pˆ para la muestra
})

# Análisis de los resultados
mean_p_hat <- mean(resultados)
sd_p_hat <- sd(resultados)
hist(resultados, breaks = 30, main = "Distribución de los estimadores pˆ", xlab = "pˆ")

# Comentarios sobre los resultados
cat("El estimador pˆ promedio es:", mean_p_hat, "\n")
## El estimador pˆ promedio es: 0.89714
cat("La desviación estándar de pˆ es:", sd_p_hat, "\n")
## La desviación estándar de pˆ es: 0.03107977

Escenario con tamaños de muestra n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500

set.seed(123)  # Para reproducibilidad

# Parámetros de la población
N <- 1000  # Tamaño de la población
porcentaje_penfermas <- 0.9  # Proporción de plantas enfermas
tamanos_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)  # Tamaños de muestra a evaluar
repeticiones <- 500  # Número de repeticiones para cada tamaño de muestra

# Función para calcular proporciones muestrales
calcular_proporciones <- function(N, porcentaje_penfermas, tamano_muestra, repeticiones) {
  replicate(repeticiones, {
    poblacion <- sample(c(0, 1), N, replace = TRUE, prob = c(1 - porcentaje_penfermas, porcentaje_penfermas))
    muestra <- sample(poblacion, tamano_muestra)
    p_hat <- sum(muestra) / length(muestra)
    return(p_hat)
  })
}

# Proporciones muestrales para cada tamaño de muestra
resultados <- lapply(tamanos_muestra, function(n) calcular_proporciones(N, porcentaje_penfermas, n, repeticiones))

# Prueba de Shapiro-Wilk y Gráficos Q-Q para cada tamaño de muestra
par(mfrow=c(2,2))  # Ajusta el layout para ver varios gráficos a la vez
for(i in seq_along(tamanos_muestra)) {
  # Prueba de Shapiro-Wilk
  shapiro_test <- shapiro.test(resultados[[i]])
  cat("Tamaño de muestra:", tamanos_muestra[i], "P-valor:", shapiro_test$p.value, "\n")
  
  # Gráfico Q-Q
  qqnorm(resultados[[i]], main = paste("Q-Q Plot - n =", tamanos_muestra[i]))
  qqline(resultados[[i]], col = "red")
}
## Tamaño de muestra: 5 P-valor: 7.355663e-29
## Tamaño de muestra: 10 P-valor: 1.569293e-22
## Tamaño de muestra: 15 P-valor: 2.120485e-18
## Tamaño de muestra: 20 P-valor: 3.976943e-15

## Tamaño de muestra: 30 P-valor: 6.61465e-11
## Tamaño de muestra: 50 P-valor: 7.214001e-10
## Tamaño de muestra: 60 P-valor: 2.086169e-06
## Tamaño de muestra: 100 P-valor: 1.22309e-05

## Tamaño de muestra: 200 P-valor: 0.004021028
## Tamaño de muestra: 500 P-valor: 0.0330831

Análisis cuandolos en lotes plantas hay un con 10% de plantas enfermas y de un 90% de plantas enfermas

De acuerdo con los resultados del Shapiro Text sugieren que la variabilidad en la población (proporción de plantas enfermas) tiene un impacto significativo en la normalidad de la distribución del estimador de la proporción muestral. Tanto una alta como una baja proporción de plantas enfermas tienden a alejar la distribución de la normalidad, mientras que una proporción más equitativa (50%) se acerca más a una distribución normal.