Informe Actividad 2, Problema 3: Teorema del LĂ­mite Central

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.

SimnulaciĂłn de la PoblaciĂłn

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)

Generación de función para obtención de muestra aleatoria y cálculo de proporción muestral pˆ

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

Generación de 500 escenarios con diferente tamaño de muestra

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"

EvaluaciĂłn de la Sesgadez de los datos

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

Gráficas de Histogramas para comparación entre tamaños de muestra

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')

EvaluaciĂłn de la Normalidad mediante test de Shapiro wilks

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.

Evaluación Gráfica de la Normalidad

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")