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:
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.
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
## 484 516
# 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)
}
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
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
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
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.
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 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)
}
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
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
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 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)
}
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
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
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.