Teorema de Limite Central

Simulacion de poblacion

  • 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:
    1. Obtener una muestra aleatoria de la población y
    2. Calcule el estimador de la proporción muestral pˆ para un tamaño de muestra dado n.
# Poblacion de plantas
lote = rbinom(1000, 1, 0.5)

# Funcion de muestreo
funcion_muestreo = function(poblacion, n) {
muestra = sample(poblacion, size = n,replace = FALSE)

# Calculo estimador
p_estimador = mean(muestra)
return(p_estimador)
}

Analisis n=500

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.

n_500 = 500                             # Definir muestra
estimaciones_p = numeric(n_500)         # Vector para iterar

#Iterador
for (i in 1:n_500) {
  estimaciones_p[i] <- funcion_muestreo(lote, n_500)
}
skewness(estimaciones_p)                # Calcular coeficiente de asimetria
## [1] -0.04162196
hist(estimaciones_p, main = "Estimaciones de p^ con n=500") #Histograma con distribucion de estimadores

mean(estimaciones_p)                    # Calcular sesgo
## [1] 0.493944
mean(estimaciones_p)-0.5                # Calcular sesgo vs parametro
## [1] -0.006056
sd(estimaciones_p)                      # Calcular desviacion estandar      
## [1] 0.01639238

Como podemos observar, con n=500, tenemos una simetria bastante cercana a cero y una distribucion normal. Se puede decir que el estimador es INSESGADO porque el promedio esta muy cerca al parametro (0.5) y es EFICIENTE porque tiene una variabilidad baja

Multiples tamanos n

Repita el ejercicio anterior 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

valores_n = c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500) 
repeticiones = 500

matriz_estimaciones_p <- matrix(nrow = repeticiones, ncol = length(valores_n))

for (j in 1:length(valores_n)) {
  for (i in 1:repeticiones) {
    muestra_actual <- sample(lote, size = valores_n[j], replace = FALSE)
    matriz_estimaciones_p[i, j] <- mean(muestra_actual)
  }
}

shapiro <- sapply(1:length(valores_n), function(j) {
  shapiro.test(matriz_estimaciones_p[, j])$p.value
})
shapiro                             # Resultados pruebas Shapiro
##  [1] 2.281457e-15 2.016526e-09 3.749451e-08 9.212015e-07 3.641971e-05
##  [6] 1.197385e-03 2.398620e-03 3.498757e-02 1.518970e-02 2.710524e-01
par(mfrow = c(3, 4))
for (j in 1:length(valores_n)) {
  qqnorm(matriz_estimaciones_p[, j], main = paste("Plot normalidad n=", valores_n[j]))
}

Como podemos ver a medida que aumenta n, el estimador se va a acercando a la normalidad, indicado por la forma en la que la linea se hace mas recta con cada incremento