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. 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%.
b. 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.
c. 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.
d. 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.
e. 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.
Inicialmente, se crea un vector que agrupará los datos de la simulación, bajo una distribución binomial, dado que es la distribución de probabilidad que mejor se ajuste al experimiento, por ser discreta y permitir dos resultados; éxito o fracaso, en este caso plantas efermas o no enfermas:
set.seed(123)
n <- 1000
plantasenfermas <- 0.5
poblacion <- rbinom(n, 1, plantasenfermas)
loteinicial <- sample(poblacion)
Posteriormente, se verifica la cantidad de plantas enfermas generadas con la muestra aleatoria:
sum(loteinicial)
## [1] 493
Ahora, se generan la función para la muestra aleatoria y el estimador de la proporción muestral:
muestraaleatoria <- function(poblacion, n){
muestra <- sample(poblacion, size = n)
estimadorpm <- sum(muestra==1)/ n
return(estimadorpm)
}
tamañomuestral <- 1000
proporcion <- muestraaleatoria(loteinicial, tamañomuestral)
Adicional, se verifica la estimación de la proporción muestral para el tamaño n = 1.000:
cat("Proporción muestral estimada (p^):", proporcion, "\n")
## Proporción muestral estimada (p^): 0.493
Ahora, se repite el escenario anterior 500 veces:
set.seed(123)
tamano <- 100
repeticiones <- 500
estimadorpm1 <- numeric(repeticiones)
for (i in 1:repeticiones) {
estimadorpm1[i] <- muestraaleatoria(loteinicial, tamano)
}
Se calculan lan los indicadores:
asimetria <- skewness(estimadorpm1)
coeficientevariacion <-(sd(estimadorpm1)/mean(estimadorpm1))*100
summary(estimadorpm1)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.3300 0.4600 0.4900 0.4939 0.5200 0.6400
asimetria
## [1] 0.052402
coeficientevariacion
## [1] 9.755685
par(mfrow = c(1, 2))
hist(estimadorpm1, breaks = 15, main = "Histograma de estimacion", xlab = "Estimacion de p^", col = "#EEC900")
qqnorm(estimadorpm1, main = "n = 500"); qqline(estimadorpm1, col = "#EE6363")
La estimación de 500 repeticiones presenta media de 0.4939 y mediana de 0.4900, es decir, similares, por lo que la distribución de datos tiende a ser simétrica. Esto se corrobora con el indicador de asimetría que se ubicó cerca a cero, fue de 0.0524, lo que indica que los datos se concentran cerca a su media. Por su parte, el coeficiente de variación en 9,75 establece una variación de los datos respecto a la media en aproximadamente un 10%.
Finalmente, el histrograma y gráfico de normalidad, indican que la estimación presenta una distribución similar a la normal.
A continuación, se repiten los pasos anteriores para diferentes tamaños de muestra:
set.seed(123)
repeticiones <- 500
tamano <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
shapiro <- data.frame(
tamano = numeric(0),
Valorp = numeric(0),
asimetria = numeric(0),
coeficientevariacion = numeric(0)
)
normalidad <- function(n) {
estimadorpm <- numeric(repeticiones)
for (i in 1:repeticiones) {
estimadorpm [i] <- muestraaleatoria(loteinicial, n)
}
shapirotest <- shapiro.test(estimadorpm)$p.value
asimetria <- skewness(estimadorpm)
coeficientevariacion <-(sd(estimadorpm)/mean(estimadorpm))*100
media <- mean(estimadorpm)
shapirotestajustado <- sprintf("%.5f", shapirotest)
shapiro <<- rbind(shapiro, data.frame(tamano = n,
valorp = shapirotestajustado,
asimetria = asimetria,
coeficientevariacion = coeficientevariacion))
qqnorm (estimadorpm, main=paste("normalidad para n =", n))
qqline(estimadorpm, col="#EE6363")
hist(estimadorpm, main=paste("Histograma para n =", n), xlab = "Proporcion", breaks = 15, col = "#EEC900")
}
par(mfrow = c(1, 2))
for (n in tamano) {
normalidad(n)
}
print(shapiro)
## tamano valorp asimetria coeficientevariacion
## 1 5 0.00000 -0.008643636 46.307890
## 2 10 0.00000 -0.085644435 32.825910
## 3 15 0.00000 -0.125434595 24.781718
## 4 20 0.00000 0.085660731 22.729790
## 5 30 0.00003 0.088428636 17.292274
## 6 50 0.00065 0.158344985 14.123500
## 7 60 0.00175 -0.067394846 13.202120
## 8 100 0.00759 0.211095015 9.719273
## 9 200 0.04394 0.205677088 6.555540
## 10 500 0.13859 -0.066498978 3.169137
Al verificar los gráficos y tabla del test de shapiro, se observa que, a medida que aumenta el tamaño muestral, la distribución tiende a ser más simétrica, es decir, parecer más a una distribución normal, lo que soporte el teorema del límite central.
Ahora, como regla de decisión se tiene que si el valor P es mayor al 0.05 como nivel de significancia, se considera que los datos se distribuyen normal. Esto se refleja más en el tamaño de muestra el 500, en donde P > α, por tanto para el tamaño de muestra 500 la distribución de los datos es normal, en cambio, para tamaños de muestra menores, como los ubicados entre 5 y 200, no se cumplió con la regla de decisión, por lo que no había evidencia estadística significativa para determinar que la distribución de estos datos eran normales.
En lo referente a la asimetría, en términos generales, para todos los tamaños de muestra se ubicó cerca de cero, representando una concentración de datos alrededor de la media, es decir, menos dispersión.
En cuanto al coeficiente de variación, se observa que a medida que aumenta el tamaño de muestra, tiende a disminuir, por tanto, cuando aumenta n disminuye la variación, lo cual es un sinónimo de la consistencia como propiedad del estimador de proporción muestral.
Finalmente, se replicarán los pasos anteriores, cambiando la proporción de plantas emfermas al 10% y 90%
Con el 10% de plantas enfermas:
set.seed(123)
n <- 1000
plantasenfermas1 <- 0.1
poblacion1 <- rbinom(n, 1, plantasenfermas1)
loteinicial10 <- sample(poblacion1)
Se verifica la cantidad de plantas enfermas generadas con la muestra aleatoria:
sum(loteinicial10)
## [1] 92
se generan la función para la muestra aleatoria y el estimador de la proporción muestral:
muestraaleatoria1 <- function(poblacion1, n){
muestra1 <- sample(poblacion1, size = n)
estimadorpm10 <- sum(muestra1==1)/ n
return(estimadorpm10)
}
tamanomuestral1 <- 1000
proporcion1 <- muestraaleatoria1(loteinicial10, tamanomuestral1)
se verifica la estimación de la proporción muestral para el tamaño de muestra:
cat("Proporción muestral estimada (p^):", proporcion1, "\n")
## Proporción muestral estimada (p^): 0.092
se repite el escenario anterior 500 veces:
set.seed(123)
tamano <- 100
repeticiones <- 500
estimadorpm10 <- numeric(repeticiones)
for (i in 1:repeticiones) {
estimadorpm10[i] <- muestraaleatoria1(loteinicial10, tamano)
}
Se calculan lan los indicadores:
asimetria10 <- skewness(estimadorpm10)
coeficientevariacion10 <-(sd(estimadorpm10)/mean(estimadorpm10))*100
summary(estimadorpm10)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.02000 0.07000 0.09000 0.09084 0.11000 0.16000
asimetria10
## [1] 0.08802062
coeficientevariacion10
## [1] 28.46534
par(mfrow = c(1, 2))
hist(estimadorpm10, breaks = 15, main = "Histograma de estimacion 10%", xlab = "Estimacion de p^", col = "#00B2EE")
qqnorm(estimadorpm10, main = "n = 500"); qqline(estimadorpm10, col = "#EE6363")
En esta estimación de 500 repeticiones se presenta una media de 0.0908 y mediana de 0.0900, es decir, de nuevo similares, por lo que la distribución de datos tiende a ser simétrica. Esto se corrobora con el indicador de asimetría que se ubicó cerca a cero, fue de 0.088, lo que indica que los datos se concentran cerca a su media. Por su parte, el coeficiente de variación fue mayor, se ubicó en 28,46, lo que establece una variación de los datos respecto a la media en aproximadamente un 28%.
Finalmente, el histrograma y gráfico de normalidad, empieza a mostrar separación de los datos de una tendencia normal, es decir, para con los mismos parámetros de repeticiones del experimento, pero cambiando la proporción de observaciones, que en este caso son las plantas enfermas, no se establece con claridad que haya normalidad en los datos.
se repiten los pasos anteriores para diferentes tamaños de muestra con un lote del 10% de plantas enfermas:
set.seed(123)
repeticiones10 <- 500
tamano10 <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
shapiro10 <- data.frame(
tamano10 = numeric(0),
Valorp10 = numeric(0),
asimetria10 = numeric(0),
coeficientevariacion10 = numeric(0)
)
normalidad10 <- function(n) {
estimadorpm10 <- numeric(repeticiones)
for (i in 1:repeticiones10) {
estimadorpm10 [i] <- muestraaleatoria1(loteinicial10, n)
}
shapirotest10 <- shapiro.test(estimadorpm10)$p.value
asimetria10 <- skewness(estimadorpm10)
coeficientevariacion10 <-(sd(estimadorpm10)/mean(estimadorpm10))*100
media10 <- mean(estimadorpm10)
shapirotestajustado10 <- sprintf("%.5f", shapirotest10)
shapiro10 <<- rbind(shapiro10, data.frame(tamano10 = n,
valorp10 = shapirotestajustado10,
asimetria10 = asimetria10,
coeficientevariacion10 = coeficientevariacion10))
qqnorm(estimadorpm10, main=paste("normalidad para n =", n))
qqline(estimadorpm10, col="#EE6363")
hist(estimadorpm10, main=paste("Histograma para n =", n), xlab = "Proporcion", breaks = 15, col = "#00B2EE")
}
par(mfrow = c(1, 2))
for (n in tamano10) {
normalidad10(n)
}
print(shapiro10)
## tamano10 valorp10 asimetria10 coeficientevariacion10
## 1 5 0.00000 1.4228739340 158.09935
## 2 10 0.00000 0.7583424611 97.82714
## 3 15 0.00000 0.5709232877 80.15666
## 4 20 0.00000 0.7490472036 71.02774
## 5 30 0.00000 0.5321072591 57.41038
## 6 50 0.00000 0.4139560178 44.54480
## 7 60 0.00000 -0.0007514034 39.97690
## 8 100 0.00001 0.1313573784 30.35612
## 9 200 0.00197 0.0555082324 19.99774
## 10 500 0.01544 0.0392254999 10.32720
Al verificar los gráficos y tabla del test de shapiro con el 10% de plantas enfermas, se observa que a medida que aumenta el tamaño muestral, las distribuciones de datos tienden a ser más dispersas y el valor P no supera al valor del alpha, por lo que no se cumple con la normalidad. Así, el teorema del límite central aplica más para la media de los datos, es decir, buscar normalidad en la media y así generalizar a toda la distribución. Por tanto, para proporciones diferentes al 50% o que se ubiquen en extremidades como el 10% y también aplicaría para el 90%, se debe aumentar el tamaño de muestra, para que se obtenga una aproximación de los datos a la normalidad.
En lo referente a la asimetría, se presenta dispersión para algunos de tamaños de muestra, es decir, el indicador ya no es cercano a cero.
En cuanto al coeficiente de variación, si bien continúa disminuyendo a medida que se aumenta el tamaño de muestra, ahora lo hace en menor proporción, por lo que hay mayor variación. Así, para un lote del 10% de plantas enfermas, se necesitaría más tamaño de muestra, para disminuir la variabilidad.
Con el 90% de plantas enfermas:
set.seed(123)
n <- 1000
plantasenfermas2 <- 0.9
poblacion2 <- rbinom(n, 1, plantasenfermas2)
loteinicial90 <- sample(poblacion2)
Se verifica la cantidad de plantas enfermas generadas con la muestra aleatoria:
sum(loteinicial90)
## [1] 908
se generan la función para la muestra aleatoria y el estimador de la proporción muestral:
muestraaleatoria2 <- function(poblacion2, n){
muestra2 <- sample(poblacion2, size = n)
estimadorpm90 <- sum(muestra2==1)/ n
return(estimadorpm90)
}
tamanomuestral2 <- 1000
proporcion2 <- muestraaleatoria2(loteinicial90, tamanomuestral2)
se verifica la estimación de la proporción muestral para el tamaño de muestra:
cat("Proporción muestral estimada (p^):", proporcion2, "\n")
## Proporción muestral estimada (p^): 0.908
se repite el escenario anterior 500 veces:
set.seed(123)
tamano <- 100
repeticiones <- 500
estimadorpm90 <- numeric(repeticiones)
for (i in 1:repeticiones) {
estimadorpm90[i] <- muestraaleatoria2(loteinicial90, tamano)
}
Se calculan lan los indicadores:
asimetria90 <- skewness(estimadorpm90)
coeficientevariacion90 <-(sd(estimadorpm90)/mean(estimadorpm90))*100
summary(estimadorpm90)
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.8400 0.8900 0.9100 0.9092 0.9300 0.9800
asimetria90
## [1] -0.08802062
coeficientevariacion90
## [1] 2.844154
par(mfrow = c(1, 2))
hist(estimadorpm90, breaks = 15, main = "Histograma de estimacion 90%", xlab = "Estimacion de p^", col = "#7FFF00")
qqnorm(estimadorpm90, main = "n = 500"); qqline(estimadorpm90, col = "#EE6363")
En esta estimación de 500 repeticiones se presenta una media de 0.9092 y mediana de 0.9100, es decir, de nuevo similares, por lo que la distribución de datos tiende a ser simétrica. Esto se corrobora con el indicador de asimetría que se ubicó cerca a cero, fue de -0.088, lo que indica que los datos se concentran cerca a su media. Por su parte, el coeficiente de variación fue menor, se ubicó en 2,84, lo que establece una variación de los datos respecto a la media en aproximadamente un 3%.
Finalmente, el histrograma y gráfico de normalidad, empieza a mostrar separación de los datos de una tendencia normal, es decir, para con los mismos parámetros de repeticiones del experimento, pero cambiando la proporción de observaciones, que en este caso son las plantas enfermas, no se establece con claridad que haya normalidad en los datos.
se repiten los pasos anteriores para diferentes tamaños de muestra con un lote del 90% de plantas enfermas:
set.seed(123)
repeticiones90 <- 500
tamano90 <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
shapiro90 <- data.frame(
tamano90 = numeric(0),
Valorp90 = numeric(0),
asimetria90 = numeric(0),
coeficientevariacion90 = numeric(0)
)
normalidad90 <- function(n) {
estimadorpm90 <- numeric(repeticiones)
for (i in 1:repeticiones90) {
estimadorpm90 [i] <- muestraaleatoria2(loteinicial90, n)
}
shapirotest90 <- shapiro.test(estimadorpm90)$p.value
asimetria90 <- skewness(estimadorpm90)
coeficientevariacion90 <-(sd(estimadorpm90)/mean(estimadorpm90))*100
media90 <- mean(estimadorpm90)
shapirotestajustado90 <- sprintf("%.5f", shapirotest90)
shapiro90 <<- rbind(shapiro90, data.frame(tamano90 = n,
valorp90 = shapirotestajustado90,
asimetria90 = asimetria90,
coeficientevariacion90 = coeficientevariacion90))
qqnorm(estimadorpm90, main=paste("normalidad para n =", n))
qqline(estimadorpm90, col="#EE6363")
hist(estimadorpm90, main=paste("Histograma para n =", n), xlab = "Proporcion", breaks = 15, col = "#7FFF00")
}
par(mfrow = c(1, 2))
for (n in tamano90) {
normalidad90(n)
}
print(shapiro90)
## tamano90 valorp90 asimetria90 coeficientevariacion90
## 1 5 0.00000 -1.4228739340 13.598467
## 2 10 0.00000 -0.7583424611 9.935737
## 3 15 0.00000 -0.5709232877 7.940490
## 4 20 0.00000 -0.7490472036 7.551461
## 5 30 0.00000 -0.5321072591 5.724202
## 6 50 0.00000 -0.4139560178 4.345357
## 7 60 0.00000 0.0007514034 3.981133
## 8 100 0.00001 -0.1313573784 3.061745
## 9 200 0.00197 -0.0555082324 1.986496
## 10 500 0.01544 -0.0392254999 1.054892
Al verificar los gráficos y tabla del test de shapiro con el 90% de plantas enfermas, también se observa que a medida que aumenta el tamaño muestral, las distribuciones de datos tienden a ser más dispersas y el valor P tampoco supera al valor del alpha, por lo que tampoco no se cumple con la normalidad, tal como ocurrió con la proporción de plantas enfermas al 10%, por lo que se comprueba que para proporciones diferentes al 50% o que se ubiquen en extremidades, se debe aumentar el tamaño de muestra, para que se obtenga una aproximación de los datos a la normalidad.
En lo referente a la asimetría, se presenta dispersión para algunos de tamaños de muestra, es decir, el indicador ya no es cercano a cero.
En cuanto al coeficiente de variación, si bien continúa disminuyendo a medida que se aumenta el tamaño de muestra, ahora lo hace en mayor proporción, por lo que hay menor variación. Esto se soporta en que la proporción de datos estimadas es superior, por lo que la muestra tiende a representar mejor a la población.
El teorema del límite central establece que para una variable aleatoria, a medida que aumenta su tamaño de muestra, se presenta una convergencia de su media hacia la distribución normal. Se dice que una muestra con n igual a 30 ya puede presentar normalidad a través de este teorema, no obstante, como se evidenció en las simulaciones para diferentes proporciones (10%, 50% y 90%), el tamaño de muestra debe ser mayor cuando se trata de proporciones extremas, por ejemplo, para las proporciones del 10% y 90% sólo un tamaño de muestra de n = 500 fue el que presentó normalidad.
Cuando la muestra aumenta, la varianza disminuye, lo que es concordante con la consistencia, dado que es más precisa la estimación. En este ejercicio, independiente de las proporciones, la varianza era menor a medida que se incrementaba el tamaño de muestra.
A medida que varía la proporción (diferente del 50%), se presenta sesgo, dado que se genera asimetría, bien sea positiva o negativa, mientras que cuando la proporción era del 50%, la asimetría prácrticamente era cero, por lo que los datos estaban concentrados alrededor de la media, es decir, sin sesgo.
A medida que aumenta el tamaño de muestra, la media tiende a aproximarse a la proporción muestral, esto en concordancia con la Ley de los grandes números, que establece que, en promedio, para muestras grandes, las estimaciones se acercan más a los parámetros de la población.
El test de Shapiro-Wilks plantea como hipótesis nula que una muestra proviene de una distribución normal. Cuando el tamaño de muestra era menor, el valor P fue menor que el alpha del 0,05 lo que indicaba que se debía rechazar la hipotesis nula, por tanto no había evidencia para establecer normalidad en los datos. Por su parte, cuando la muestra era mayor, el valor P fue mayor que el alpha del 0,05 lo que indicaba que no se debía rechazar la hipotesis nula, demostrando evidencia significativas para determinara que existe normalidad en los datos.
A partir del ejercicio realizado con cierto número de plantas enfermas, se evidencia uno de los principios del teorema del límite central y su aplicación y similitud en diferentes escenarios de la realidad, que permiten interpretar y modelar los datos.
Al cumplir con las características de una distribución normal, nos permite generalizar conclusiones de la muestra, y por tanto de la población, para poder realizar la respectiva toma de decisiones con los datos obtenidos.