# 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)
}
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
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