Ejercicio 3

Teorema del Límite Central

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:

  1. 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%.
condicion=1                                  #  1=plantas enfermas   0=plantas sanas
n=1000

simulacion <- rbinom (n, condicion, 0.5)  #distribucion binomial aleatoria
df <- data.frame(simulacion)                #dataframe
sum(df == 1)                                #verifica 50% plantas enfermas en simulacion
## [1] 498
  1. 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.
condicion=1                                 #  1=plantas enfermas   0=plantas sanas
n=0                                         #tamaño muestral
set.seed (123)

funcion1 <- function(n)  {
  simulacion <- rbinom (n, condicion, 0.5)
  muestreo_n= sample (simulacion, n, replace = TRUE)
  data_muestreo <- data.frame(muestreo_n)                #dataframe
  prop_muestra= sum(data_muestreo== 1) /n
  return(prop_muestra*100)
  print(prop_muestra)
}
funcion1(1000)
## [1] 50.4
  1. 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.
condicion=1                                 #  1=plantas enfermas   0=plantas sanas
n=0                                         #tamaño muestral
set.seed (123)

funcion1 <- function(n)  {
  simulacion <- rbinom (1000, 1, 0.5)
  muestreo_n= sample (simulacion, n, replace = TRUE)
  data_muestreo <- data.frame (muestreo_n)                #dataframe
  prop_muestra= sum(data_muestreo== 1) /n
  as.data.frame (prop_muestra)
  return(prop_muestra*100)
  print(prop_muestra)
}

funcion1(1000)
## [1] 50.4
for (n in 1000) {
  repeticiones_sample= replicate (500, funcion1 (1000))
  medias_propor<- mean(repeticiones_sample)
  varianza_propor <-var (repeticiones_sample)
  sesgo_propor <- funcion1(1000)-medias_propor
  }

resultados<-data.frame(medias_propor, varianza_propor, sesgo_propor)
resultados
##   medias_propor varianza_propor sesgo_propor
## 1        49.922        5.659916        2.078

Repitiendo el escenario anterior (b) n=500 veces con igual n=1000, se encuentra que la proporcion de plantas enfermas es de 50.4 (resultado del punto b) y al realizar las repeticiones 500 veces se obtiene una media de las proporciones de 49.9, muy cercano a la proporcion real de plantas enfermas; con un sesgo de 2.08. Es decir, que al aumentar el número de simulaciones con el mismo n, los resultados son simétricos y cercanos al parámetro real (insesgados). En cuanto a la variabilidad, se observa que es mayor a cero, es decir que las simulaciones recrean datos variables pero cercanos al parámetro real.

Simulaciones para el 50% de plantas enfermas

  1. Repita los puntos b y c 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
condicion=1                                 #  1=plantas enfermas   0=plantas sanas
n=0                                         #tamaño muestral
p=0.5
set.seed (123)

funcion1 <- function(n)  {
  simulacion <- rbinom (1000, 1, p)
  muestreo_n= sample (simulacion, n, replace = TRUE)
  data_muestreo <- data.frame (muestreo_n)                #dataframe
  prop_muestra= sum(data_muestreo== 1) /n
  return(prop_muestra*100)
  }


cambio_n <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
funcion1(cambio_n[1])
## [1] 60
mx<-matrix(ncol=10, nrow=500)
    colnames(mx) <- c("n=5", "n=10", "n=15", "n=20", "n=30", "n=50", "n=60", "n=100", "n=200", "n=500")

matriz_medidas <- matrix(ncol=4, nrow=10)
    colnames(matriz_medidas ) <- c ("medias_propor", "varianzas_propor", "sesgo_propor", "p_value")
    row.names (matriz_medidas) <- c("n=5", "n=10", "n=15", "n=20", "n=30", "n=50", "n=60", "n=100", "n=200", "n=500")
    
    
for (n in 1:10) {
  repeticiones_sample= replicate (500, funcion1(cambio_n[n]))
  for (y in 1:500) {
    mx[y, n]<-repeticiones_sample [y]
     }

  matriz_medidas [n, 1] <- mean (repeticiones_sample)
  matriz_medidas [n, 2] <- var (repeticiones_sample)
  matriz_medidas [n, 3] <- funcion1(cambio_n[n])-matriz_medidas [n, 1] 
  matriz_medidas [n, 4] <- shapiro.test(repeticiones_sample)$p.value
  
  
  hist(repeticiones_sample,  main = (cambio_n[n]), freq=FALSE)
  qqnorm (repeticiones_sample, main= (cambio_n[n])) 
  qqline (repeticiones_sample, col="red")
  
}

print(matriz_medidas)
##       medias_propor varianzas_propor sesgo_propor      p_value
## n=5          51.920       530.975551   -31.920000 2.356377e-14
## n=10         50.080       245.284168   -20.080000 3.177932e-10
## n=15         49.800       165.891784    -9.800000 2.075234e-07
## n=20         50.380       135.326253     4.620000 6.841263e-07
## n=30         49.680        86.826809     3.653333 3.345759e-04
## n=50         50.740        53.423246     5.260000 9.609330e-03
## n=60         49.760        42.404988    -9.760000 4.821352e-03
## n=100        49.914        28.251106    -9.914000 2.636376e-02
## n=200        50.210        15.160220     3.290000 3.889323e-01
## n=500        50.024         7.385234    -4.424000 1.644904e-01

Conclusión 50% plantas enfermas

Acorde con la tabla, se evidencia que a medida que aumenta la población objeto (n), se conserva la proporcion de plantas enfermas cercana al 50%, sin embargo la varianza de las replicas es muy alta en datos pequeños (n menores de 30), tal como se menciona en el teorema del Límite central y a medida que aumenta el n de manera considerable, la varianza disminuye. En cuanto al sesgo, se observa que en poblaciones mayores a 30, este tiende a disminuir acercándose al parámetro real y a la media de la distribución muestral.

El test de Shapiro-Wilks, plantea la hipótesis nula que una muestra proviene de una distribución normal, cuando el p valor del test es superior al nivel de significancia (0,05), no se rechaza la hipótesis nula, es decir que los datos si provienen de una distribución normal este valor se obtiene para las simulaciones n=200 y n=500, en las demás se rechaza la hipotesis nula y se acepta la alterna, los datos no provienen de una distribución normal.

De acuerdo a los histogramas, se observa que a medida que se aumenta el total de población (n), los datos tienden a tener una distribución normal alrededor del parámetro (proporcion de plantas enfermas). Es decir, que a medida que se aumenta el tamaño de la muestra, decrece la diferencia entre el estadístico muestral (medias) y el parámetro poblacional (proporción de plantas enfermas del 50%).

En los gráficos Cuantil-Cuantil (QQ) se encuentra una línea roja que por defecto cruza los puntos del primer (0,25) y el tercer cuartil (0,75), por tanto si los puntos se encuentran cerca o sobre la linea roja (teorica de la distribución normal estándar), indica que se distribuyen de manera normal alrededor de ella. Esta situación se observa con el n mas grande n=500, mientras que en los n mas pequeños 5 o 10, se observa una distribución que no es normal.

  1. 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.

Simulaciones para el 10% de plantas enfermas

condicion=1                                 #  1=plantas enfermas   0=plantas sanas
n=0                                         #tamaño muestral
p=0.1
set.seed (123)

funcion1 <- function(n)  {
  simulacion <- rbinom (1000, 1, p)
  muestreo_n= sample (simulacion, n, replace = TRUE)
  data_muestreo <- data.frame (muestreo_n)                #dataframe
  prop_muestra= sum(data_muestreo== 1) /n
  return(prop_muestra*100)
  }

cambio_n <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
funcion1(cambio_n[1])
## [1] 0
mx<-matrix(ncol=10, nrow=500)
    colnames(mx) <- c("n=5", "n=10", "n=15", "n=20", "n=30", "n=50", "n=60", "n=100", "n=200", "n=500")

matriz_medidas <- matrix(ncol=4, nrow=10)
    colnames(matriz_medidas ) <- c ("medias_propor", "varianzas_propor", "sesgo_propor", "p_value")
    row.names (matriz_medidas) <- c("n=5", "n=10", "n=15", "n=20", "n=30", "n=50", "n=60", "n=100", "n=200", "n=500")
    
    
for (n in 1:10) {
  repeticiones_sample= replicate (500, funcion1(cambio_n[n]))
  for (y in 1:500) {
    mx[y, n]<-repeticiones_sample [y]
     }

  matriz_medidas [n, 1] <- mean (repeticiones_sample)
  matriz_medidas [n, 2] <- var (repeticiones_sample)
  matriz_medidas [n, 3] <- funcion1(cambio_n[n])-matriz_medidas [n, 1] 
  matriz_medidas [n, 4] <- shapiro.test(repeticiones_sample)$p.value
  
  hist(repeticiones_sample,  main = (cambio_n[n]), freq=FALSE)
  qqnorm (repeticiones_sample, main= (cambio_n[n])) 
  qqline (repeticiones_sample, col="red")
  }

print(matriz_medidas)
##       medias_propor varianzas_propor sesgo_propor      p_value
## n=5       10.560000       200.888176  -10.5600000 1.367403e-28
## n=10      10.060000        86.369138  -10.0600000 6.767478e-22
## n=15       9.920000        57.976219   -3.2533333 9.890663e-18
## n=20       9.800000        49.258517    0.2000000 1.811341e-15
## n=30       9.793333        30.039590    0.2066667 2.868093e-12
## n=50       9.996000        17.915816   14.0040000 2.822773e-08
## n=60       9.940000        16.451525   -1.6066667 1.842579e-08
## n=100     10.092000         9.634806   -1.0920000 2.560020e-06
## n=200     10.112000         5.363182   -2.6120000 2.193313e-02
## n=500     10.012800         2.963042   -0.4128000 6.482578e-02

Conclusión 10% plantas enfermas

Acorde con la tabla, se evidencia que a medida que aumenta la población objeto (n), se conserva la proporcion de plantas enfermas cercana al 10%, sin embargo la varianza de las replicas es muy alta en datos pequeños (n menores de 15), tal como se menciona en el teorema del Límite central y a medida que aumenta el n de manera considerable, la varianza disminuye. En cuanto al sesgo, se observa que en poblaciones mayores a 15, este tiende a disminuir acercándose al parámetro real y a la media de la distribución muestral.

El test de Shapiro-Wilks, plantea la hipótesis nula que una muestra proviene de una distribución normal, cuando el p valor del test es superior al nivel de significancia (0,05), no se rechaza la hipótesis nula, es decir que los datos si provienen de una distribución normal. En este caso, se obitne para la simulacion n=500, en las demás se obtienen valores menores al nivel de significancia, es decir que se rechaza la hipotesis nula y se acepta la alterna, los datos no provienen de una distribución normal.

De acuerdo a los histogramas, se observa que a medida que se aumenta el total de población (n), los datos tienden a tener una distribución normal alrededor del parámetro (proporcion de plantas enfermas). Es decir, que a medida que se aumenta el tamaño de la muestra, decrece la diferencia entre el estadístico muestral (medias) y el parámetro poblacional (proporción de plantas enfermas del 10%). No obstante, se observa asimetría hacia la izquierda, lo que iría en contra de una distribución normal de los datos.

En los gráficos Cuantil-Cuantil (QQ) se encuentra una línea roja que por defecto cruza los puntos del primer (0,25) y el tercer cuartil (0,75), por tanto si los puntos se encuentran cerca o sobre la linea roja (teorica de la distribución normal estándar), indica que se distribuyen de manera normal alrededor de ella. En las gráficas a medida que se aumenta n. tienden a confluir en la parte central no obstante en los extremos no confluyen, esto denota que no hay normalidad en los datos.

Simulaciones para el 90% de plantas enfermas

condicion=1                                 #  1=plantas enfermas   0=plantas sanas
n=0                                         #tamaño muestral
p=0.9
set.seed (123)

funcion1 <- function(n)  {
  simulacion <- rbinom (1000, 1, p)
  muestreo_n= sample (simulacion, n, replace = TRUE)
  data_muestreo <- data.frame (muestreo_n)                #dataframe
  prop_muestra= sum(data_muestreo== 1) /n
  as.data.frame (prop_muestra)
  return(prop_muestra*100)
  }


cambio_n <- c(5, 10, 15, 20, 30, 50, 60, 100, 200, 500)
funcion1(cambio_n[1])
## [1] 100
mx<-matrix(ncol=10, nrow=500)
    colnames(mx) <- c("n=5", "n=10", "n=15", "n=20", "n=30", "n=50", "n=60", "n=100", "n=200", "n=500")

matriz_medidas <- matrix(ncol=4, nrow=10)
    colnames(matriz_medidas ) <- c ("medias_propor", "varianzas_propor", "sesgo_propor", "p_value")
    row.names (matriz_medidas) <- c("n=5", "n=10", "n=15", "n=20", "n=30", "n=50", "n=60", "n=100", "n=200", "n=500")
    
    
for (n in 1:10) {
  repeticiones_sample= replicate (500, funcion1(cambio_n[n]))
  for (y in 1:500) {
    mx[y, n]<-repeticiones_sample [y]
     }

  matriz_medidas [n, 1] <- mean (repeticiones_sample)
  matriz_medidas [n, 2] <- var (repeticiones_sample)
  matriz_medidas [n, 3] <- funcion1(cambio_n[n])-matriz_medidas [n, 1] 
  matriz_medidas [n, 4] <- shapiro.test(repeticiones_sample)$p.value
  
  hist(repeticiones_sample,  main = (cambio_n[n]), freq=FALSE)
  qqnorm (repeticiones_sample, main= (cambio_n[n])) 
  qqline (repeticiones_sample, col="red")
  
}

print(matriz_medidas)
##       medias_propor varianzas_propor sesgo_propor      p_value
## n=5        89.44000       200.888176   10.5600000 1.367403e-28
## n=10       89.94000        86.369138   10.0600000 6.767478e-22
## n=15       90.08000        57.976219    3.2533333 9.890663e-18
## n=20       90.20000        49.258517   -0.2000000 1.811341e-15
## n=30       90.20667        30.039590   -0.2066667 2.868093e-12
## n=50       90.00400        17.915816  -14.0040000 2.822773e-08
## n=60       90.06000        16.451525    1.6066667 1.842579e-08
## n=100      89.90800         9.634806    1.0920000 2.560020e-06
## n=200      89.88800         5.363182    2.6120000 2.193313e-02
## n=500      89.98720         2.963042    0.4128000 6.482578e-02

Conclusión 90% plantas enfermas

Acorde con la tabla, se evidencia que a medida que aumenta la población objeto (n), se conserva la proporcion de plantas enfermas cercana al 90%, sin embargo la varianza de las replicas es muy alta en datos pequeños (n menores de 30), tal como se menciona en el teorema del Límite central y a medida que aumenta el n de manera considerable, la varianza disminuye. En cuanto al sesgo, se observa que en poblaciones mayores a 15, este tiende a disminuir acercándose al parámetro real y a la media de la distribución muestral.

El test de Shapiro-Wilks, plantea la hipótesis nula que una muestra proviene de una distribución normal, cuando el p valor del test es superior al nivel de significancia (0,05), no se rechaza la hipótesis nula, es decir que los datos si provienen de una distribución normal. En este caso se encuentra este resultado en la simulacion n=500, en las demás se obtienen valores menores al nivel de significancia, es decir que se rechaza la hipotesis nula y se acepta la alterna, los datos no provienen de una distribución normal.

De acuerdo a los histogramas, se observa que a medida que se aumenta el total de población (n), los datos tienden a tener una distribución normal alrededor del parámetro (proporcion de plantas enfermas). Es decir, que a medida que se aumenta el tamaño de la muestra, decrece la diferencia entre el estadístico muestral (medias) y el parámetro poblacional (proporción de plantas enfermas del 10%). No obstante, se observa asimetría hacia la derecha, lo que iría en contra de una distribución normal de los datos.

En los gráficos Cuantil-Cuantil (QQ) se encuentra una línea roja que por defecto cruza los puntos del primer (0,25) y el tercer cuartil (0,75), por tanto si los puntos se encuentran cerca o sobre la linea roja (teorica de la distribución normal estándar), indica que se distribuyen de manera normal alrededor de ella. En las gráficas a medida que se aumenta n. tienden a confluir en la parte central no obstante en los extremos no confluyen, esto denota que no hay normalidad en los datos.

CONCLUSIONES

El teorema del limite central es comprobable con variables aleatorias independientes, en donde al aumentar el número de muestras en una simulación (mayor a 30) la distribución de los datos tienden a tener una distribución normal y el estimador tiende a parecerse al parámetro real. Si la distribución de la población es considerablemente asimétrica, es necesario un tamaño de muestra más grande.