En este informe se presenta la soluciĂłn del problema 3, correspondiente a la actividad 2 de la asignatura de MĂ©todos y SimulaciĂłn estadĂstica.
Se realiza una simulaciĂłn para generar una poblaciĂłn de n=1000, donde el porcentaje de individuos o plantas enfermas sea del 50%.Se utiliza 1 para plantas enfermas y 0 para plantas sanas.
pob <- rbinom(1000, 1, 0.5)
Para obtener una muestra aleatoria de la población y calcular el estimador de la proporción muestral pˆ para un tamaño de muestra dado n, se genera una función que se compone en primera instancia de otra función de generación de muestras.
FunciĂłn para generar muestras:
genera_muestra <- function(data, n) {
muestra <- sample(data, n)
return(muestra)
}
FunciĂłn para estimar la proporciĂłn de las muestras aleatorias:
P <- data.frame()
estimar_Prop_muestra <- function(data, n, num_muestras) {
muestras <- lapply(1:num_muestras, function(x) genera_muestra(data, n))
for (i in 1:length(muestras)) {
P <- rbind(P, sum(muestras[[i]]==1)/n)
}
return(P)
}
Se aplica la función para diferentes tamaños de muestra, 500 veces para cada una
Pn = estimar_Prop_muestra(pob, 5, 500)
Pn['n10'] = estimar_Prop_muestra(pob, 10, 500)
Pn['n15'] = estimar_Prop_muestra(pob, 15, 500)
Pn['n20'] = estimar_Prop_muestra(pob, 20, 500)
Pn['n30'] = estimar_Prop_muestra(pob, 30, 500)
Pn['n50'] = estimar_Prop_muestra(pob, 50, 500)
Pn['n60'] = estimar_Prop_muestra(pob, 60, 500)
Pn['n100'] = estimar_Prop_muestra(pob, 100, 500)
Pn['n200'] = estimar_Prop_muestra(pob, 200, 500)
Pn['n500'] = estimar_Prop_muestra(pob, 500, 500)
Se cambia nombre de primera columna
colnames(Pn)[1] <- "n5"
Para esto se calculan primero las Medias de cada tamaño de muestra
Medias <- colMeans(Pn)
Se calcula el Insesgo
Insesgo <- abs(Medias - 0.5)
Insesgo
## n5 n10 n15 n20 n30 n50 n60
## 0.02200000 0.03340000 0.01893333 0.01930000 0.02440000 0.02316000 0.02580000
## n100 n200 n500
## 0.02638000 0.02691000 0.02626400
hist(Pn$n5, main = 'n5', xlab = 'Probability')
hist(Pn$n10, main = 'n10', xlab = 'Probability')
hist(Pn$n15, main = 'n15', xlab = 'Probability')
hist(Pn$n20, main = 'n20', xlab = 'Probability')
hist(Pn$n30, main = 'n30', xlab = 'Probability')
hist(Pn$n50, main = 'n50', xlab = 'Probability')
hist(Pn$n100, main = 'n100', xlab = 'Probability')
hist(Pn$n200, main = 'n200', xlab = 'Probability')
hist(Pn$n500, main = 'n500', xlab = 'Probability')
tShapiro_n5 <- shapiro.test(Pn$n5)
tShapiro_n10 <- shapiro.test(Pn$n10)
tShapiro_n15 <- shapiro.test(Pn$n15)
tShapiro_n20 <- shapiro.test(Pn$n20)
tShapiro_n30 <- shapiro.test(Pn$n30)
tShapiro_n50 <- shapiro.test(Pn$n50)
tShapiro_n100 <- shapiro.test(Pn$n100)
tShapiro_n200 <- shapiro.test(Pn$n200)
tShapiro_n500 <- shapiro.test(Pn$n500)
Resultados de p-value
tShapiro_n5$p.value
## [1] 1.373491e-15
tShapiro_n10$p.value
## [1] 1.456327e-09
tShapiro_n15$p.value
## [1] 2.613829e-07
tShapiro_n20$p.value
## [1] 1.895241e-07
tShapiro_n30$p.value
## [1] 2.867883e-05
tShapiro_n50$p.value
## [1] 0.002168708
tShapiro_n100$p.value
## [1] 0.009680234
tShapiro_n200$p.value
## [1] 0.01737406
tShapiro_n500$p.value
## [1] 0.1500595
Valores de p-value > a 0.05 se obtienen para los tamaños de muestra n = 100, 200 y 500, por lo tanto, estos escenarios se consideran con distribución normal.
qqnorm(Pn$n5) ; qqline(Pn$n5, col="red")
qqnorm(Pn$n10) ; qqline(Pn$n10, col="red")
qqnorm(Pn$n15) ; qqline(Pn$n15, col="red")
qqnorm(Pn$n20) ; qqline(Pn$n20, col="red")
qqnorm(Pn$n30) ; qqline(Pn$n30, col="red")
qqnorm(Pn$n50) ; qqline(Pn$n50, col="red")
qqnorm(Pn$n100) ; qqline(Pn$n100, col="red")
qqnorm(Pn$n200) ; qqline(Pn$n200, col="red")
qqnorm(Pn$n500) ; qqline(Pn$n500, col="red")