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:
getPoblacion <- function(porcentaje){
set.seed(123)
#poblacion <- rep(c(0, 1), each = 1000) # 0 para no enfermos, 1 para enfermos
poblacion <- rbinom(n = 1000, size = 1, prob = porcentaje)
return(poblacion)
}
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 .
obtener_muestra_y_estimar_proporcion <- function(n, poblacion) {
muestra <- sample(poblacion, size = n, replace = TRUE)
proporcion_estimada <- mean(muestra)
return(proporcion_estimada)
}
iterar <- function(n_simulaciones, poblacion){
resultados <- replicate(n_simulaciones, obtener_muestra_y_estimar_proporcion(n = n_simulaciones, poblacion))
media_estimadores <- mean(resultados)
desviacion_estandar_estimadores <- sd(resultados)
cat("Media",media_estimadores)
cat(" Desviación estándar", desviacion_estandar_estimadores)
hist(resultados, main = paste0("Histograma de Estimadores de Proporción n= ",n_simulaciones), xlab = "Proporción Estimada", ylab = "Frecuencia")
# Agregar una línea roja en el valor 0.5
abline(v = 0.5, col = "red")
boxplot(resultados)
d=density(resultados)
textoX <- paste0("n=",n_simulaciones)
plot(d, main=" ", xlab = textoX)
qqnorm(resultados) ; qqline(resultados, col="red")
shpiro_v <- shapiro.test(resultados)
print(shpiro_v)
}
Para una n=500 se puede observar que la media se acerca al 0.5 o 50%, además podemos observar que la convergencia de la distribución de la media muestral tiende a una distribución normal. En cuanto a la variabilidad podemos observar una desviación estándar con un valor bajo, lo cual nos indica una baja disperción por tanto el conjunto de datos tienden a estar muy cerca de la media. los datos son relativamente homogeneos o consistentes en conclusión obtenemos una distribución aproximadamente normal
poblacionCincuenta <- getPoblacion(0.5)
iterar(500,poblacionCincuenta)
## Media 0.494668 Desviación estándar 0.02325208
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.99595, p-value = 0.2292
Podemos observar que para tamaños de muestra pequeños n<30 convergencia de la distribución de la media muestral no tiende a una distribución normal, confirmando que para n>30 se empieza a ver de forma más clara la distribución normal.
muestras <- c(5,10,20,30,50,60,100,200,500)
for(index in muestras){
iterar(index, poblacionCincuenta)
}
## Media 0.6 Desviación estándar 0.244949
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.83274, p-value = 0.1458
##
## Media 0.52 Desviación estándar 0.2043961
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.97226, p-value = 0.911
##
## Media 0.4875 Desviación estándar 0.1122439
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.87328, p-value = 0.01343
##
## Media 0.4822222 Desviación estándar 0.07962235
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.95327, p-value = 0.2067
##
## Media 0.5008 Desviación estándar 0.06844751
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.97858, p-value = 0.4936
##
## Media 0.495 Desviación estándar 0.06504381
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.94916, p-value = 0.01422
##
## Media 0.4911 Desviación estándar 0.04741595
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.97963, p-value = 0.1245
##
## Media 0.49295 Desviación estándar 0.03524213
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.98956, p-value = 0.1542
##
## Media 0.494416 Desviación estándar 0.02220191
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.99618, p-value = 0.274
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.
Para una muestra que contiienen el 10% de plantas enfermas se puede ver que no existe una distribucion normal, todos los valores tienden hacia abajo lo cual indica que hay baja prevalencia de la enfermedad, a medida que aumenta el número de la muestra la gráfica denota más la distribución normal hacia 0.1
poblacionDiez <- getPoblacion(0.1)
muestras <- c(5,10,20,30,50,60,100,200,500)
for(index in muestras){
iterar(index, poblacionDiez)
}
## Media 0.16 Desviación estándar 0.167332
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.88104, p-value = 0.314
##
## Media 0.06 Desviación estándar 0.06992059
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.78089, p-value = 0.008489
##
## Media 0.085 Desviación estándar 0.07089651
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.90055, p-value = 0.04223
##
## Media 0.1044444 Desviación estándar 0.05305483
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.94969, p-value = 0.1659
##
## Media 0.0844 Desviación estándar 0.03214508
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.92055, p-value = 0.002469
##
## Media 0.08388889 Desviación estándar 0.03484789
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.93899, p-value = 0.004882
##
## Media 0.0973 Desviación estándar 0.02960532
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.97149, p-value = 0.02876
##
## Media 0.093 Desviación estándar 0.02176854
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.98424, p-value = 0.02456
##
## Media 0.091988 Desviación estándar 0.01315088
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.99394, p-value = 0.04338
Para una muestra que contiienen el 90% de plantas enfermas se puede ver que no existe una distribucion normal, todos los valores tienden hacia arriba lo cual indica que hay alta prevalencia de la enfermedad, a medida que aumenta el número de la muestra la gráfica denota más la distribución normal hacia 0.9
poblacionDiez <- getPoblacion(0.9)
muestras <- c(5,10,20,30,50,60,100,200,500)
for(index in muestras){
iterar(index, poblacionDiez)
}
## Media 0.84 Desviación estándar 0.167332
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.88104, p-value = 0.314
##
## Media 0.94 Desviación estándar 0.06992059
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.78089, p-value = 0.008489
##
## Media 0.915 Desviación estándar 0.07089651
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.90055, p-value = 0.04223
##
## Media 0.8955556 Desviación estándar 0.05305483
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.94969, p-value = 0.1659
##
## Media 0.9156 Desviación estándar 0.03214508
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.92055, p-value = 0.002469
##
## Media 0.9161111 Desviación estándar 0.03484789
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.93899, p-value = 0.004882
##
## Media 0.9027 Desviación estándar 0.02960532
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.97149, p-value = 0.02876
##
## Media 0.907 Desviación estándar 0.02176854
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.98424, p-value = 0.02456
##
## Media 0.908012 Desviación estándar 0.01315088
##
## Shapiro-Wilk normality test
##
## data: resultados
## W = 0.99394, p-value = 0.04338