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.
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%.
# Generamos 50% de plantas enfermas y 50% sanas.
sanos <- rep(0, 500)
enfermos <- rep(1, 500)
# Población de plantas n = 1.000
poblacion <- c(sanos, enfermos)
Genere una función:
# Funcion aletatoria de la poblacion
muestra_estimarP <- function(n, poblacion) {
muestra <- sample(poblacion, n, replace = TRUE)
estimadorP <- sum(muestra) / n
return(estimadorP)
}
# n = 500
muestra_estimarP(500, poblacion)
## [1] 0.49
# n = 700
muestra_estimarP(700, poblacion)
## [1] 0.4885714
Repita el escenario anterior (b) 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.
# Se generan la simulación 500 veces en base a la función del punto b
simulaciones_n <- 500
resultadosP <- replicate(simulaciones_n, muestra_estimarP(200, poblacion))
# Análisis de resultados mediante histograma
hist(resultadosP, main = "Histograma de estimaciones de p^ (n=200)", xlab = "p^", ylab = "Frecuencia")
library(e1071)
media <- mean(resultadosP)
mediana <- median(resultadosP)
desviacion <- sd(resultadosP)
simetria <- skewness(resultadosP)
data.frame(media, mediana, desviacion, simetria)
## media mediana desviacion simetria
## 1 0.50131 0.505 0.03552264 -0.09878927
Teniendo como parámetro P=0.5 para los individuos que son enfermos, realizamos el proceso del paso b unas 500 veces obteniendo 500 valores estimados para una muestra de tamaño n=200. Como resultado la media = 0.50131 y la mediana = 0.505 son relativamente iguales y, el coeficiente de simetría -0.09878927 cercano a cero que indica que la distribución es cercana ser simétrica, sin embargo, la distribución tiende a sesgar de forma mínima hacia la izquierda, es decir, la mayoría de valores se agrupan hacia la derecha de la media. La desviación estándar 0.03552264 relativamente baja sugiere que los datos no están muy dispersos alrededor de la media, lo que indica una variabilidad moderada, valores agrupados cerca de la media y bastantes consistentes.
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.
tamaño_muestra <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
for (i in seq_along(tamaño_muestra)) {
n <- tamaño_muestra[i]
resultados_p_n <- replicate(simulaciones_n, muestra_estimarP(n, poblacion))
par(mfrow=c(1,3))
hist(resultados_p_n, ylab = "Frecuencia",
main = paste("Muestra de tamaño:", tamaño_muestra[i]), col = "yellow")
abline(v=mean(resultados_p_n), col = "red", lwd = 4)
plot(density(resultados_p_n), ylab= "Densidad", main = "")
qqnorm(resultados_p_n, main = "qq-normalidad")
print(paste("Para una muestra de tamaño: ", tamaño_muestra[i]))
print(shapiro.test(resultados_p_n))
}
## [1] "Para una muestra de tamaño: 5"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.928, p-value = 9.201e-15
## [1] "Para una muestra de tamaño: 10"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.96462, p-value = 1.313e-09
## [1] "Para una muestra de tamaño: 15"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.97565, p-value = 2.149e-07
## [1] "Para una muestra de tamaño: 20"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.977, p-value = 4.354e-07
## [1] "Para una muestra de tamaño: 30"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.98545, p-value = 6.735e-05
## [1] "Para una muestra de tamaño: 50"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.98939, p-value = 0.001115
## [1] "Para una muestra de tamaño: 60"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99138, p-value = 0.005235
## [1] "Para una muestra de tamaño: 100"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99317, p-value = 0.02286
## [1] "Para una muestra de tamaño: 200"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99393, p-value = 0.04308
## [1] "Para una muestra de tamaño: 500"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99398, p-value = 0.04477
Realizando los pasos b y c, es decir, calcular el estimador de la proporción muestral unas 500 veces para los dintintos tamaños de muestra, se analizó lo siguiente:
De acuerdo con el Test de Shapiro Wilk, para determinar si los datos muestrales provienen de una población con distribución normal, identificamos que a medida que aumenta el tamaño de la muestra, el valor p obtenido aumenta. Sin embargo, para n=500 el valor p 0.04477 es menor al nivel de significancia de 0.05 por lo que, no se comporta como una normal.
Considerando la representación gráfica de un gráfico de cuantiles-cuantiles (qqplot) para evaluar la normalidad, se puede observar que a medida que incrementamos el tamaño de la muestra, los datos tienden a aproximarse más a la línea de referencia que sigue una pendiente de 45 grados. Sin embargo, en el caso específico de una muestra de tamaño n=500, la distribución de los datos no sigue una distribución normal de manera evidente, ya que se pueden identificar valores extremos que se encuentran claramente fuera de la línea de referencia.
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.
# Generamos 10% de plantas enfermas y 90% sanas
sanos_2 <- rep(0, 900)
enfermos_2 <- rep(1, 100)
poblacion_2 <- c(sanos_2, enfermos_2)
Usando la función aleatoria de la población, realizamos el cálculo de la proporción muestral para un tamaño de muestra n = 200.
# Proporción muestral pˆ para una muestra de n = 200
muestra_estimarP(200, poblacion_2)
## [1] 0.115
Realizamos el paso anterior unas 500 veces y analizamos el comportamiento de los 500 resultados para el estimador pˆ.
# Se generan la simulación 500 veces en base a la función
resultadosP_2 <- replicate(simulaciones_n, muestra_estimarP(200, poblacion_2))
# Análisis de resultados mediante histograma
hist(resultadosP_2, main = "Histograma de estimaciones de p^ (n=200)",
xlab = "p^", ylab = "Frecuencia")
# Media, mediana, desviación estandar y coeficiente de simetría
media2 <- mean(resultadosP_2)
mediana2 <- median(resultadosP_2)
desviación2 <- sd(resultadosP_2)
simetría2 <- skewness(resultadosP_2)
data.frame(media2, mediana2, desviación2, simetría2)
## media2 mediana2 desviación2 simetría2
## 1 0.09963 0.1 0.02080333 0.1223698
Se realiza la simulación 500 veces para calcular los resultados del estimador pˆ para tamaños de muestra n = 5, 10, 15, 20, 30, 50, 60, 100, 200, 500.
for (i in seq_along(tamaño_muestra)) {
n <- tamaño_muestra[i]
resultados_p_n <- replicate(simulaciones_n, muestra_estimarP(n, poblacion_2))
par(mfrow=c(1,3))
hist(resultados_p_n, ylab = "Frecuencia",
main = paste("Muestra de tamaño:", tamaño_muestra[i]), col = "yellow")
abline(v=mean(resultados_p_n), col = "red", lwd = 4)
plot(density(resultados_p_n), ylab= "Densidad", main = "")
qqnorm(resultados_p_n, main = "qq-normalidad")
print(paste("Para una muestra de tamaño: ", tamaño_muestra[i]))
print(shapiro.test(resultados_p_n))
}
## [1] "Para una muestra de tamaño: 5"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.72207, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 10"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.84854, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 15"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.89642, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 20"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.90067, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 30"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.95633, p-value = 5.252e-11
## [1] "Para una muestra de tamaño: 50"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.97248, p-value = 4.41e-08
## [1] "Para una muestra de tamaño: 60"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.97165, p-value = 2.966e-08
## [1] "Para una muestra de tamaño: 100"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.98595, p-value = 9.44e-05
## [1] "Para una muestra de tamaño: 200"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99264, p-value = 0.01466
## [1] "Para una muestra de tamaño: 500"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99073, p-value = 0.003133
# Generamos 90% de plantas enfermas y 10% sanas
sanos_3 <- rep(0, 100)
enfermos_3 <- rep(1, 900)
poblacion_3 <- c(sanos_3, enfermos_3)
Usando la función aleatoria de la población, realizamos el cálculo de la proporción muestral para un tamaño de muestra n = 200.
# Proporción muestral pˆ para una muestra de n = 200
muestra_estimarP(200, poblacion_3)
## [1] 0.915
Realizamos el paso anterior unas 500 veces y analizamos el comportamiento de los 500 resultados para el estimador pˆ.
# Se generan la simulación 500 veces en base a la función
resultadosP_3 <- replicate(simulaciones_n, muestra_estimarP(200, poblacion_3))
# Análisis de resultados mediante histograma
hist(resultadosP_3, main = "Histograma de estimaciones de p^ (n=200)",
xlab = "p^", ylab = "Frecuencia")
# Media, mediana, desviación estandar y coeficiente de simetría
media3 <- mean(resultadosP_3)
mediana3 <- median(resultadosP_3)
desviación3 <- sd(resultadosP_3)
simetría3 <- skewness(resultadosP_3)
data.frame(media3, mediana3, desviación3, simetría3)
## media3 mediana3 desviación3 simetría3
## 1 0.898 0.9 0.02158778 -0.1974933
Se realiza la simulación 500 veces para calcular los resultados del estimador pˆ para tamaños de muestra n = 5, 10, 15, 20, 30, 50, 60, 100, 200, 500.
for (i in seq_along(tamaño_muestra)) {
n <- tamaño_muestra[i]
resultados_p_n <- replicate(simulaciones_n, muestra_estimarP(n, poblacion_3))
par(mfrow=c(1,3))
hist(resultados_p_n, ylab = "Frecuencia",
main = paste("Muestra de tamaño:", tamaño_muestra[i]), col = "yellow")
abline(v=mean(resultados_p_n), col = "red", lwd = 4)
plot(density(resultados_p_n), ylab= "Densidad", main = "")
qqnorm(resultados_p_n, main = "qq-normalidad")
print(paste("Para una muestra de tamaño: ", tamaño_muestra[i]))
print(shapiro.test(resultados_p_n))
}
## [1] "Para una muestra de tamaño: 5"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.7005, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 10"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.84973, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 15"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.89508, p-value < 2.2e-16
## [1] "Para una muestra de tamaño: 20"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.91974, p-value = 1.164e-15
## [1] "Para una muestra de tamaño: 30"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.95205, p-value = 1.158e-11
## [1] "Para una muestra de tamaño: 50"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.9672, p-value = 3.925e-09
## [1] "Para una muestra de tamaño: 60"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.97654, p-value = 3.419e-07
## [1] "Para una muestra de tamaño: 100"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.9865, p-value = 0.0001373
## [1] "Para una muestra de tamaño: 200"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99131, p-value = 0.004974
## [1] "Para una muestra de tamaño: 500"
##
## Shapiro-Wilk normality test
##
## data: resultados_p_n
## W = 0.99632, p-value = 0.3047
Utilizando un parámetro P=0.1 para representar la probabilidad de que los individuos estén enfermos, llevamos a cabo el proceso denominado paso b en un total de 500 repeticiones, obteniendo así 500 estimaciones para una muestra de tamaño n=200. Los resultados arrojaron una media de 0.09963 y una mediana de 0.1, las cuales son bastante similares. Además, el coeficiente de simetría de 0.1223698, aunque cercano a cero, indica que la distribución tiende a ser simétrica, pero con una inclinación hacia la derecha, lo que sugiere que la mayoría de los valores se agrupan en el lado izquierdo de la media. La desviación estándar de 0.02080333, que es relativamente baja, indica que los datos muestran poca dispersión alrededor de la media. Esto apunta a una variabilidad moderada, con valores que se concentran cerca de la media y una consistencia notable en los resultados.
Al realizar la simulación unas 500 veces para las muestras n = 5, 10, 15, 20, 30, 50, 60, 100, 200, 500. De acuerdo con el Test de Shapiro Wilk, para determinar si los datos muestrales provienen de una población con distribución normal, identificamos que a medida que aumenta el tamaño de la muestra, el valor p obtenido aumenta con excepción de n=200 a n=500. Para el caso de 10% de plantas enfermas, con un tamaño de muestra n=500 se tiene p-value 0.003133 menor al nivel de significancia 0.05, por lo que se no comporta como una distribución normal.
Considerando la representación gráfica de un gráfico de cuantiles-cuantiles (qqplot) para evaluar la normalidad, se puede observar que a medida que incrementamos el tamaño de la muestra, los datos tienden a aproximarse más a la línea de referencia que sigue una pendiente de 45 grados. Sin embargo, en el caso específico de una muestra de tamaño n=500, la distribución de los datos no siguen una distribución normal de manera evidente, ya que se pueden identificar valores extremos y a lo largo de la diagonal que se encuentran claramente fuera de la línea de referencia.
Teniendo como parámetro P=0.9 para los individuos que son enfermos, realizamos el proceso unas 500 veces obteniendo 500 valores estimados para una muestra de tamaño n=200. Como resultado la media = 0.898 y la mediana = 0.9 son relativamente iguales y, el coeficiente de simetría -0.1974933 cercano a cero que indica que la distribución es cercana ser simétrica, sin embargo, la distribución tiende a sesgar hacia la izquierda, es decir, la mayoría de valores se agrupan hacia la derecha de la media. La desviación estándar 0.02158778 relativamente baja que sugiere que los datos no están muy dispersos alrededor de la media, lo que indica una variabilidad moderada, valores agrupados cerca de la media y bastantes consistentes.
Al realizar la simulación unas 500 veces para las muestras n = 5, 10, 15, 20, 30, 50, 60, 100, 200, 500. De acuerdo con el Test de Shapiro Wilk, para determinar si los datos muestrales provienen de una población con distribución normal, identificamos que a medida que aumenta el tamaño de la muestra, el valor p aumenta. A partir de n=500 la muestra se comporta como una distribución normal con valor p 0.3047 mayor al nivel de significancia 0.05.
Considerando la representación gráfica de un gráfico de cuantiles-cuantiles (qqplot) para evaluar la normalidad, se puede observar que a medida que incrementamos el tamaño de la muestra, los datos tienden a aproximarse más a la línea de referencia que sigue una pendiente de 45 grados. Sin embargo, en el caso específico de una muestra de tamaño n=500, la distribución de los datos sigue una distribución, ya que se pueden identificar valores que se ajustan a la línea de referencia con algunos valores extremos perdidos.
En cada uno de los casos evaluados en el presente informe, observamos que a partir que aumenta el tamaño de la muestra, se va acercando a una distribución normal. Evidencia que refleja el valor p cuando aumenta al incrementar el tamaño de la muestra.