3. Problema 3 - Teorema del límite central

El Teorema del Limite Central es uno de los mas 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.

  1. Realice una simulación en la cual genere una población de N=1000 (Lote) y además que el porcentaje de individuos (plantas) enfermas es del 50%. Le daremos valores a la variables de plantas donde 1 significa que la planta esta enferma y 0 que no lo esta.
lote= c(rep(1,500), rep(0,500))
table(lote)/1000
## lote
##   0   1 
## 0.5 0.5
  1. Genere una función que permita obtener una muestra aleatoria de la población y calcule el estimador de la proporción muestral para un tamaño de muestra dado n.
muestras_inicial=function(n){
  muestra=sample(lote,size = n)
  return(sum(muestra)/n)
}

estimadores_inicial=function(x, time){
  estimadores=sapply(rep(x,time),muestras_inicial)
  return(estimadores)
}
  1. Repita el escenario anterior (b) 500 veces y analice los resultados en cuanto al comportamiento de los 500 estimadores. ¿Qué tan simétricos son los datos?, ¿Son sesgados y que pasa en cuanto a variabilidad?.
estimadores= estimadores_inicial(20,500)
hist(estimadores)

summary(estimadores)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.2500  0.4500  0.5000  0.5082  0.6000  0.8500
sd(estimadores)
## [1] 0.1094839

Al ejecutar la función de estimadores y replicarla 500 veces, se logra detectar que los datos son más simétricos y tienen un comportamiento normal, no están sesgados hacía sus extremos y la variabilidad en relación a la media no influye en su dispersión con una desciación estándar de +- el 10%, obteniendo datos más compactos y con una mediana del 50% que comprueba una simetria total de la muestra.

  1. Realice los ejercicios completos b y c para tamaños de muestra n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500. Y compare los resultados de los estimadores en cuanto a la normalidad. Investigue y utilice pruebas de bondad y ajuste (shapiro wilks) y métodos gráficos (grafico qq de normalidad).
estimadores5 = estimadores_inicial(5,500)
par(mfrow = c(1, 2))
qqnorm(estimadores5, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=5")
qqline(estimadores5, col = "steelblue", lwd = 2)
hist(estimadores5, main = "Histograma  muestra n=5")
abline(v = mean(estimadores5), col="purple", lwd=3, lty=2)

shapiro.test(estimadores5)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores5
## W = 0.9265, p-value = 6.233e-15
estimadores10 = estimadores_inicial(10,500)
par(mfrow = c(1, 2))
qqnorm(estimadores10, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=10")
qqline(estimadores10, col = "steelblue", lwd = 2)
hist(estimadores10, main = "Histograma  muestra n=10")
abline(v = mean(estimadores10), col="red", lwd=3, lty=2)

shapiro.test(estimadores10)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores10
## W = 0.96688, p-value = 3.415e-09
estimadores15 = estimadores_inicial(15,500)
par(mfrow = c(1, 2))
qqnorm(estimadores15, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=15")
qqline(estimadores15, col = "steelblue", lwd = 2)
hist(estimadores15, main = "Histograma  muestra n=15")
abline(v = mean(estimadores15), col="blue", lwd=3, lty=2)

shapiro.test(estimadores15)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores15
## W = 0.97255, p-value = 4.563e-08
estimadores20 = estimadores_inicial(20,500)
par(mfrow = c(1, 2))
qqnorm(estimadores20, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=20")
qqline(estimadores20, col = "steelblue", lwd = 2)
hist(estimadores20, main = "Histograma  muestra n=20")
abline(v = mean(estimadores20), col="green", lwd=3, lty=2)

shapiro.test(estimadores20)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores20
## W = 0.98273, p-value = 1.174e-05
estimadores25 = estimadores_inicial(25,500)
par(mfrow = c(1, 2))
qqnorm(estimadores25, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=25")
qqline(estimadores25, col = "steelblue", lwd = 2)
hist(estimadores25, main = "Histograma  muestra n=25")
abline(v = mean(estimadores25), col="pink", lwd=3, lty=2)

shapiro.test(estimadores25)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores25
## W = 0.98243, p-value = 9.738e-06
estimadores30 = estimadores_inicial(30,500)
par(mfrow = c(1, 2))
qqnorm(estimadores30, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=30")
qqline(estimadores30, col = "steelblue", lwd = 2)
hist(estimadores30, main = "Histograma  muestra n=30")
abline(v = mean(estimadores30), col="orange", lwd=3, lty=2)

shapiro.test(estimadores30)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores30
## W = 0.98558, p-value = 7.332e-05
estimadores50 = estimadores_inicial(50,500)
par(mfrow = c(1, 2))
qqnorm(estimadores50, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=50")
qqline(estimadores50, col = "steelblue", lwd = 2)
hist(estimadores50, main = "Histograma  muestra n=50")
abline(v = mean(estimadores50), col="black", lwd=3, lty=2)

shapiro.test(estimadores50)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores50
## W = 0.98116, p-value = 4.517e-06
estimadores60 = estimadores_inicial(60,500)
par(mfrow = c(1, 2))
qqnorm(estimadores60, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=60")
qqline(estimadores60, col = "steelblue", lwd = 2)
hist(estimadores60, main = "Histograma  muestra n=60")
abline(v = mean(estimadores60), col="yellow", lwd=3, lty=2)

shapiro.test(estimadores60)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores60
## W = 0.99193, p-value = 0.008163
estimadores100 = estimadores_inicial(100,500)
par(mfrow = c(1, 2))
qqnorm(estimadores100, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=100")
qqline(estimadores100, col = "steelblue", lwd = 2)
hist(estimadores100, main = "Histograma  muestra n=100")
abline(v = mean(estimadores100), col="blue", lwd=3, lty=2)

shapiro.test(estimadores100)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores100
## W = 0.99451, p-value = 0.06993
estimadores200 = estimadores_inicial(200,500)
par(mfrow = c(1, 2))
qqnorm(estimadores200, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=200")
qqline(estimadores200, col = "steelblue", lwd = 2)
hist(estimadores200, main = "Histograma  muestra n=200")
abline(v = mean(estimadores200), col="brown", lwd=3, lty=2)

shapiro.test(estimadores200)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores200
## W = 0.99242, p-value = 0.01224
estimadores500 = estimadores_inicial(500,500)
par(mfrow = c(1, 2))
qqnorm(estimadores500, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=500")
qqline(estimadores500, col = "steelblue", lwd = 2)
hist(estimadores500, main = "Histograma  muestra n=500")
abline(v = mean(estimadores500), col="purple", lwd=3, lty=2)

shapiro.test(estimadores500)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimadores500
## W = 0.99603, p-value = 0.243
resultados=data.frame(mean(estimadores5), mean(estimadores10), mean(estimadores15), mean(estimadores20), mean(estimadores25), mean(estimadores30), mean(estimadores50), mean(estimadores60), mean(estimadores100), mean(estimadores200), mean(estimadores500))
head(resultados)
##   mean.estimadores5. mean.estimadores10. mean.estimadores15.
## 1             0.5072              0.4924           0.5082667
##   mean.estimadores20. mean.estimadores25. mean.estimadores30.
## 1              0.4986             0.49976           0.5157333
##   mean.estimadores50. mean.estimadores60. mean.estimadores100.
## 1             0.49736              0.4965              0.49988
##   mean.estimadores200. mean.estimadores500.
## 1              0.49995             0.499584

Como se logra observar en la construcción de cada uno de las muestras para una población de plantas enfermas al 50%, se deduce que entre mayor sea la población existe una menor dispersión y una mayor normalidad, es decir, entra más datos se tengan en la muestra estos se ajustan a una dsitrbución normal como se aprecia en los histogramas.

Además con la implementación del gráfico qqnormal, en muestras de tamaño 5, 10, 20, 25, 30, 50 los puntos se alejan de la línea que define la normalidad y el histograma presenta asimetría hacía sus extremos; en cambio, con muestras superiores a 60 hasta 500 se observa como los puntos del gráfico qqnormal se acercan más a la línea de normalidad.

  1. Repita toda la simulación (puntos a – d) pero ahora con lotes con 10% y 90% de plantas enfermas. Concluya todo el ejercicio.
## lote
##   0   1 
## 0.1 0.9
estimador5 = estimadores_inicial(5,900)
par(mfrow = c(1, 2))
qqnorm(estimador5, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=5")
qqline(estimador5, col = "steelblue", lwd = 2)
hist(estimador5, main = "Histograma  muestra n=5")
abline(v = mean(estimador5), col="purple", lwd=3, lty=2)

shapiro.test(estimador5)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador5
## W = 0.68961, p-value < 2.2e-16
estimador10 = estimadores_inicial(10,900)
par(mfrow = c(1, 2))
qqnorm(estimador10, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=10")
qqline(estimador10, col = "steelblue", lwd = 2)
hist(estimador10, main = "Histograma  muestra n=10")
abline(v = mean(estimador10), col="pink", lwd=3, lty=2)

shapiro.test(estimador10)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador10
## W = 0.84314, p-value < 2.2e-16
estimador15 = estimadores_inicial(15,900)
par(mfrow = c(1, 2))
qqnorm(estimador15, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=15")
qqline(estimador15, col = "steelblue", lwd = 2)
hist(estimador15, main = "Histograma  muestra n=15")
abline(v = mean(estimador15), col="orange", lwd=3, lty=2)

shapiro.test(estimador15)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador15
## W = 0.89913, p-value < 2.2e-16
estimador20 = estimadores_inicial(20,900)
par(mfrow = c(1, 2))
qqnorm(estimador20, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=20")
qqline(estimador20, col = "steelblue", lwd = 2)
hist(estimador20, main = "Histograma  muestra n=20")
abline(v = mean(estimador20), col="green", lwd=3, lty=2)

shapiro.test(estimador20)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador20
## W = 0.92598, p-value < 2.2e-16
estimador25 = estimadores_inicial(25,900)
par(mfrow = c(1, 2))
qqnorm(estimador25, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=25")
qqline(estimador25, col = "steelblue", lwd = 2)
hist(estimador25, main = "Histograma  muestra n=25")
abline(v = mean(estimador25), col="gold", lwd=3, lty=2)

shapiro.test(estimador25)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador25
## W = 0.93989, p-value < 2.2e-16
estimador30 = estimadores_inicial(30,900)
par(mfrow = c(1, 2))
qqnorm(estimador30, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=30")
qqline(estimador30, col = "steelblue", lwd = 2)
hist(estimador30, main = "Histograma  muestra n=30")
abline(v = mean(estimador30), col="brown", lwd=3, lty=2)

shapiro.test(estimador30)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador30
## W = 0.94614, p-value < 2.2e-16
estimador50 = estimadores_inicial(50,900)
par(mfrow = c(1, 2))
qqnorm(estimador50, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=50")
qqline(estimador50, col = "steelblue", lwd = 2)
hist(estimador50, main = "Histograma  muestra n=50")
abline(v = mean(estimador50), col="blue", lwd=3, lty=2)

shapiro.test(estimador50)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador50
## W = 0.96931, p-value = 7.766e-13
estimador60 = estimadores_inicial(60,900)
par(mfrow = c(1, 2))
qqnorm(estimador60, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=60")
qqline(estimador60, col = "steelblue", lwd = 2)
hist(estimador60, main = "Histograma  muestra n=60")
abline(v = mean(estimador60), col="red", lwd=3, lty=2)

shapiro.test(estimador60)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador60
## W = 0.97466, p-value = 2.091e-11
estimador100 = estimadores_inicial(100,900)
par(mfrow = c(1, 2))
qqnorm(estimador100, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=100")
qqline(estimador100, col = "steelblue", lwd = 2)
hist(estimador100, main = "Histograma  muestra n=100")
abline(v = mean(estimador100), col="yellow", lwd=3, lty=2)

shapiro.test(estimador100)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador100
## W = 0.98475, p-value = 4.51e-08
estimador200 = estimadores_inicial(200,900)
par(mfrow = c(1, 2))
qqnorm(estimador200, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=200")
qqline(estimador200, col = "steelblue", lwd = 2)
hist(estimador200, main = "Histograma  muestra n=200")
abline(v = mean(estimador200), col="black", lwd=3, lty=2)

shapiro.test(estimador200)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador200
## W = 0.99041, p-value = 1.328e-05
estimador500 = estimadores_inicial(500,900)
par(mfrow = c(1, 2))
qqnorm(estimador500, pch = 1, frame = FALSE, main = "Grafica QQ normal muestra n=500")
qqline(estimador500, col = "steelblue", lwd = 2)
hist(estimador500, main = "Histograma  muestra n=500")
abline(v = mean(estimador500), col="purple", lwd=3, lty=2)

shapiro.test(estimador500)
## 
##  Shapiro-Wilk normality test
## 
## data:  estimador500
## W = 0.99487, p-value = 0.00393
resultados=data.frame(mean(estimador5), mean(estimador10), mean(estimador15), mean(estimador20), mean(estimador25), mean(estimador30), mean(estimador50), mean(estimador60), mean(estimador100), mean(estimador200), mean(estimador500))
head(resultados)
##   mean.estimador5. mean.estimador10. mean.estimador15. mean.estimador20.
## 1        0.9042222         0.8984444         0.9006667         0.9017222
##   mean.estimador25. mean.estimador30. mean.estimador50. mean.estimador60.
## 1         0.9003111         0.9007037         0.8977333         0.8994259
##   mean.estimador100. mean.estimador200. mean.estimador500.
## 1          0.9000111          0.9010278          0.8994178

En el estudio para comprobar el teorema del límite central, se concluye que a medida que aumenta el tamaño de la muestra independientemente de las variables de enfermedad y no enfermedad, su comportamiento tiende a tener una distribución normal y evita sesgos hacía los extremos.

Para muestras muy pequeñas menor a 50 datos, la hipótesis se tiende a rechazar y se acepta la hipótesis alterna, caso contrario que sucede con las muestras que sobrepasan los 50 datos en dónde se acepta la hipótesis porque la distribución de los datos se tiende a normalizar con un comportamiento simétrico y se evitan los sesgos hacía los extremos.