PROBLEMA 1

Estimación de π


1.1 Objetivo

Encontrar una aproximación para el valor de π a partir de la figura, la cual contiene un círculo con área igual a π/4, inscrito en un cuadrado con área igual a 1.


Dado que la probabilidad de que un punto esté dentro del círculo es igual a π/4, se puede estimar el valor de π/4 al contar el número de puntos dentro del círculo.

Al final del ejercicio se pretende responder:

  • ¿Cuántos de los puntos están dentro del círculo?

  • ¿Cuál es su estimación de π?

. .


1.2 Proceso

Pasos realizados:

  1. Se generaron n coordenadas X, con distribución uniforme de valor mínimo = 0 y máximo = 1, utilizando la función runif.

  2. Se generaron 1.000 coordenadas Y, con distribución uniforme de valor mínimo = 0 y máximo = 1, utilizando la función runif.

  3. Debido que cada punto (Xi,Yi) se encuentra dentro del círculo cuando la distancia desde el centro (0.5,0.5) es menor a 0.5, se identificó para cada par (Xi,Yi) si se cumplía dicha condición, a través de la ecuación (Xi−0.5)2+(Yi−0.5)2, determinando a su vez si el resultado es menor que 0.25.

  4. Este proceso se replicó para una muestra 10.000 y 100.000 puntos.

  5. Se compararon resultados y se extrajeron conclusiones. Ver numeral 1.3 del Problema 1.


* Prueba con 1.000 puntos:


set.seed(497491615)
n = 1000
x = runif(n,0,1)  #genera 1000 datos basados en  distribucción uniforme, con un min=0 y max=1
y = runif(n,0,1)  #genera 1000 datos basados en  distribucción uniforme, con un min=0 y max=1
distancia_cordenadas <- numeric ()   #frame vacío para almacenar los valores

for (i in 1:length(x)) {
                       distancia_cordenadas[i] = (x[i]-0.5)^2+(y[i]-0.5)^2 #calcula distancia
                       }
puntos = ifelse(distancia_cordenadas < 0.25, 1, 0)#si distancia<0.25, asigna valor de 1 a esas coordenadas, sino pone 0.

puntosdentro = sum(puntos) #suma los puntos cuya distancia desde el centro es menor a 0.25 

ptos_dentro1 <- data.frame(puntosdentro)
print(ptos_dentro1)
##   puntosdentro
## 1          771
result = puntosdentro/length(x) #divide el total de puntos dentro del círculo, en el total de puntos


pi_est1 = 4 * result #cálculo de pi estimado, despejando la ecuanción de pi/4
dif1 = pi_est1 - pi #diferencia entre pi estimado y el valor de pi real
Resultadosframe1 <- data.frame(pi_est1, pi, dif1)
print(Resultadosframe1)
##   pi_est1       pi        dif1
## 1   3.084 3.141593 -0.05759265
caso1 = c(pi_est1, pi, dif1, ptos_dentro1)

* Prueba con 10.000 puntos:


set.seed(497491615)
n = 10000
x = runif(n,0,1)  
y = runif(n,0,1)  
distancia_cordenadas <- numeric ()   
for (i in 1:length(x)) {
                       distancia_cordenadas[i] = (x[i]-0.5)^2+(y[i]-0.5)^2 
                       }
puntos = ifelse(distancia_cordenadas < 0.25, 1, 0)
puntosdentro = sum(puntos) 

ptos_dentro2 <- data.frame(puntosdentro)
print(ptos_dentro2)
##   puntosdentro
## 1         7848
result = puntosdentro/length(x) 
pi_est2 = 4 * result 
dif2 = pi_est2 - pi 
Resultadosframe2 <- data.frame(pi_est2, pi, dif2)
print(Resultadosframe2)
##   pi_est2       pi         dif2
## 1  3.1392 3.141593 -0.002392654
caso2 = c(pi_est2, pi, dif2, ptos_dentro2)

* Prueba con 100.000 puntos:


set.seed(497491615)
n = 100000
x = runif(n,0,1)  
y = runif(n,0,1)  
distancia_cordenadas <- numeric ()  

for (i in 1:length(x)) {
                       distancia_cordenadas[i] = (x[i]-0.5)^2+(y[i]-0.5)^2 
                       }
puntos = ifelse(distancia_cordenadas < 0.25, 1, 0)

puntosdentro = sum(puntos) 

ptos_dentro3 <- data.frame(puntosdentro)
print(ptos_dentro3)
##   puntosdentro
## 1        78539
result = puntosdentro/length(x) 

pi_est3 = 4 * result 
dif3 = pi_est3 - pi 

Resultadosframe3 <- data.frame(pi_est3, pi, dif3)
print(Resultadosframe3)
##   pi_est3       pi          dif3
## 1 3.14156 3.141593 -3.265359e-05
caso3 = c(pi_est3, pi, dif3, ptos_dentro3)

. .

1.3 Conclusiones

Los resultados comparativos que se presentan en la siguiente tabla permiten evidenciar que con 1.000 muestras, la estimación de π presentó una desviación alta (0.05) respecto al valor real.

Este error disminuye considerablemente en la medida que se amplía el tamaño de la muestra, siendo incluso la validación de 10.000 puntos una muestra suficiente para el estimador de π. Sin embargo, ciertamente en la medida que la muestra se hace mayor, se disminuye aun más el GAP entre el valor estimado y el valor real.

.

##               1000        10000        100000       
## Pi Estimado   3.084       3.1392       3.14156      
## Pi            3.141593    3.141593     3.141593     
## Diferencia    -0.05759265 -0.002392654 -3.265359e-05
## Puntos Dentro 771         7848         78539

. .


PROBLEMA 2

Propiedades de estimadores



1.1 Objetivo

Determinar las propiedades de INSESGADEZ, EFICIENCIA y CONSISTENCIA para el siguiente grupo de estimadores estadísticos.

Siendo X1, X2, X3 y X4, una muestra aleatoria de tamaño n=4 cuya población la conforma una distribución exponencial.

.


1.2 Proceso

Pasos realizados

  1. Se creó inicialmente una función para el cálculo de los estimadores y otra para evaluar las propiedades. Para efectos del ejercicio, el valor de Theta es 8.

  2. Una vez creada la muestra para n = 4, se replicó el cáculo para muestras de n=20, 50, 100 y 1000.

  3. Se compararon resultados y se extrajeron conclusiones. Ver numeral 1.3 del Problema 2.


* Resultados para n=4


library(dplyr)
library(ggplot2)


set.seed(1002182)
theta <- 8
n_valores <- c(4)
result_propiedades <- list()

for (n in n_valores) { 
  n_muestras <- n
  muestras <- matrix(rexp(n_muestras * 4, rate = 1/theta), nrow = n_muestras)
  estimadores <- list(
    Estimador_1 = function(x) (x[1] + x[2]) / 6 + (x[3] + x[4]) / 3,  
    Estimador_2 = function(x) (x[1] + 2*x[2] + 3*x[3] + 4*x[4]) / 5, 
    Estimador_3 = function(x) mean(x),                                
    Estimador_4 = function(x) (min(x) + max(x))/2)                   
  resultados <- sapply(estimadores, function(estimador) {
    apply(muestras, 1, estimador)
  })
  Insesgadez   <- colMeans(resultados) - theta
  varianzas <- apply(resultados, 2, var)
  medias <- colMeans(resultados)
  consistencias <- colMeans((resultados - theta)^2)

  result_propiedades[[as.character(n)]]  <- data.frame(X_Media = medias, Varianza = varianzas, Insesgadez = Insesgadez  , Consistencia = consistencias)
}

resultados_fin <- do.call(rbind, result_propiedades)
print(resultados_fin)
##                 X_Media Varianza Insesgadez Consistencia
## 4.Estimador_1  7.190358 18.47244 -0.8096425     14.50985
## 4.Estimador_2 14.140740 74.39864  6.1407402     93.50767
## 4.Estimador_3  7.224434 21.98880 -0.7755660     17.09310
## 4.Estimador_4  7.749799 26.62019 -0.2502006     20.02774

* Resultados para n=20, 50, 100 y 1000


set.seed(1002182)
theta <- 8
n_valores <- c(20,50,100,1000)
result_propiedades <- list()

for (n in n_valores) { 
  n_muestras <- n
  muestras <- matrix(rexp(n_muestras * 4, rate = 1/theta), nrow = n_muestras)
  estimadores <- list(
    Estimador_1 = function(x) (x[1] + x[2]) / 6 + (x[3] + x[4]) / 3,  
    Estimador_2 = function(x) (x[1] + 2*x[2] + 3*x[3] + 4*x[4]) / 5, 
    Estimador_3 = function(x) mean(x),                                
    Estimador_4 = function(x) (min(x) + max(x))/2)                   
  resultados <- sapply(estimadores, function(estimador) {
    apply(muestras, 1, estimador)
  })
  Insesgadez   <- colMeans(resultados) - theta
  varianzas <- apply(resultados, 2, var)
  medias <- colMeans(resultados)
  consistencias <- colMeans((resultados - theta)^2)

  result_propiedades[[as.character(n)]]  <- data.frame(Estimador = names(estimadores), n = n, X_Media = medias, Varianza = varianzas, Insesgadez = Insesgadez  , Consistencia = consistencias)
}

resultados_fin <- do.call(rbind, result_propiedades)

resultados_fin_subset <- resultados_fin[, c("n", "X_Media", "Varianza", "Insesgadez", "Consistencia")]

print(resultados_fin_subset)
##                     n   X_Media Varianza  Insesgadez Consistencia
## 20.Estimador_1     20  8.234986 18.73332  0.23498557     17.85187
## 20.Estimador_2     20 16.521136 89.07554  8.52113617    157.23153
## 20.Estimador_3     20  8.678573 22.74943  0.67857295     22.07242
## 20.Estimador_4     20  9.912455 37.77747  1.91245549     39.54608
## 50.Estimador_1     50  7.351786 12.86908 -0.64821376     13.03188
## 50.Estimador_2     50 14.629499 61.38243  6.62949928    104.10504
## 50.Estimador_3     50  7.576429 13.08805 -0.42357050     13.00570
## 50.Estimador_4     50  8.723454 19.73245  0.72345365     19.86119
## 100.Estimador_1   100  7.380100 11.82010 -0.61990018     12.08617
## 100.Estimador_2   100 14.939330 53.95915  6.93932993    101.57386
## 100.Estimador_3   100  7.534400 12.94686 -0.46559988     13.03418
## 100.Estimador_4   100  9.233839 26.92991  1.23383878     28.18297
## 1000.Estimador_1 1000  8.054184 19.78165  0.05418360     19.76481
## 1000.Estimador_2 1000 16.130339 86.28700  8.13033931    152.30313
## 1000.Estimador_3 1000  8.024340 17.09327  0.02434039     17.07677
## 1000.Estimador_4 1000  9.477533 29.92844  1.47753333     32.08162

1.3 Conclusiones


* Para la MUESTRA n = 20

.

  • Insesgadez

Debido que la Insesgadez es una medida de dispersión de los estimadores alrededor del valor real (8), se prefiere una insesgadez baja, lo que indicaría que el estimador está cercano al valor real.

Para una muestra de n=20 podemos concluir que el estimador con menos sesgo es el 1.
##                 n   X_Media Varianza Insesgadez Consistencia
## 20.Estimador_1 20  8.234986 18.73332  0.2349856     17.85187
## 20.Estimador_2 20 16.521136 89.07554  8.5211362    157.23153
## 20.Estimador_3 20  8.678573 22.74943  0.6785729     22.07242
## 20.Estimador_4 20  9.912455 37.77747  1.9124555     39.54608

.

  • Eficiencia

En la eficiencia se busca el estimador cuya varianza sea menor; para el ejercicio de n=20, el estimador más eficiente es el 1.

.

  • Conclusión General

Dado el resultado a nivel de insesgadez y de eficiencia, podemos concluir que para una muestra de n=20, el mejor estimador es el 1.

.


* Para la MUESTRA n = 50


  • Insesgadez

Para una muestra de n=50 podemos concluir que el estimador con menos sesgo es el 3, dado que el valor del sesgo es el más cercano a cero.

##                 n   X_Media Varianza Insesgadez Consistencia
## 50.Estimador_1 50  7.351786 12.86908 -0.6482138     13.03188
## 50.Estimador_2 50 14.629499 61.38243  6.6294993    104.10504
## 50.Estimador_3 50  7.576429 13.08805 -0.4235705     13.00570
## 50.Estimador_4 50  8.723454 19.73245  0.7234536     19.86119

  • Eficiencia

Para una muestra de n=50, el estimador cuya varianza es menor (más eficiente), es el 3.

  • Conclusión General

Para una muestra de n=50, y dadas las propiedades anteriores, podemos concluir que el mejor estimador es el 3.

.


* Para la MUESTRA n = 100


  • Insesgadez

Para una muestra de n=100 podemos concluir que el estimador con menos sesgo es el 3, dado que el valor del sesgo es el más cercano a cero.

##                   n   X_Media Varianza Insesgadez Consistencia
## 100.Estimador_1 100  7.380100 11.82010 -0.6199002     12.08617
## 100.Estimador_2 100 14.939330 53.95915  6.9393299    101.57386
## 100.Estimador_3 100  7.534400 12.94686 -0.4655999     13.03418
## 100.Estimador_4 100  9.233839 26.92991  1.2338388     28.18297

  • Eficiencia

En la eficiencia se busca el estimador cuya varianza sea menor; para el ejercicio, el estimador más eficiente es el 1.

  • Conclusión General

Para una muestra de n=100 podemos concluir que el mejor estimador es el 3, ya que tiene la menor insesgadez y su varianza, si bien no es la menor, la diferencia con la menor varianza (que es la del estimador 1), no es significativa.

.


* Para la MUESTRA n = 1000


  • Insesgadez

Debido que la Insesgadez es una medida de dispersión de los estimadores alrededor del valor real (8), se prefiere una insesgadez baja, lo que indicaría que el estimador está cercano al valor real.

Para una muestra de n=1000 podemos concluir que el estimador menos insesgado es el 3.

##                     n   X_Media Varianza Insesgadez Consistencia
## 1000.Estimador_1 1000  8.054184 19.78165 0.05418360     19.76481
## 1000.Estimador_2 1000 16.130339 86.28700 8.13033931    152.30313
## 1000.Estimador_3 1000  8.024340 17.09327 0.02434039     17.07677
## 1000.Estimador_4 1000  9.477533 29.92844 1.47753333     32.08162

  • Eficiencia

En la eficiencia se busca el estimador cuya varianza sea menor; para el ejercicio, el estimador más eficiente es el 3.

  • Conclusión General Para una muestra de n=100 podemos concluir que el mejor estimador es el 3.

.


* Consistencia de las muestras


El indicador de consistencia indica si los estimadores convergen a los valores verdaderos de los parámetros a medida que el tamaño de la muestra aumenta indefinidamente.

Para evaluar la consistencia, se consideró el resultado del sesgo, la varianza y la eficiencia, de tal forma que para las muestras de n = 4, 20 y 50 el estimador más consistente es el 1, para n = 100 los estimadores 1 y 3 son muy cercanos en consistencia, mientras que para 1000 se presenta una diferencia muy marcada en los estimadores, siendo el 3 el de mayor consistencia.

.

.

Gráfico de BOXPLOT - Distribución de estimadores

El promedio de los estimadores en los diferentes N evidencia que el mejor estimador, es decir el más cercano al valor real del parámetro, es el 3, con un resultado de 7.95 vs 8 del parámetro.


PROBLEMA 3

Teorema del Límite Central



1.1 Objetivo

.

El objetivo de este ejercicio es revisar el comportamiento del Teorema del Límite Central, a través de una simulación. El teorema establece que la distribución de la media muestral de una población se aproxima a una distribución normal, a medida que el tamaño de la muestra aumenta.

En este caso, se propone una simulación para verificar el comportamiento del estimador de la proporción muestral (p^) en diferentes escenarios.

Al final de los resultados se pretende responder:

  • ¿Qué tan simétricos o sesgados son los resultados obtenidos?
  • ¿qué se puede observar en cuanto a la variabilidad?.


1.2 Proceso

Pasos realizados:

  1. Se generó población de n=1000 plantas, donde el 50% se encuentran enfermas.

  2. Se generó una muestra aleatoria de la población y se calculó el estimador de la proporción muestral p, para n=100.

  3. Se replicó el proceso anterior para n=500.

  4. Se replicó lo anterior para tamaños de muestra n=5,10,15,20,30,50,60,100, 200,500; comparando los resultados para los diferentes tamaños, en cuanto a la normalidad.

  5. Se utilizaron pruebas de bondad y ajuste (shapiro wilks :shspiro.test()) y métodos gráficos (gráfico de normalidad: qqnorm()).

  6. Se replica todo lo anterior para lotes con 10% de plantas enfermas.

  7. Se replica todo lo anterior para lotes con 90% de plantas enfermas.


* Escenario 50% plantas enfermas


Número de plantas enfermas:

library(e1071)

N <- 1000
porcentaje_enfermos <- 0.5 # Definir el porcentaje de individuos enfermos
num_enfermos <- round(N * porcentaje_enfermos) # Calcular el número de individuos enfermos

poblacion <- rep("Sana", N) # Crear un vector para representar la población
poblacion[sample(1:N, num_enfermos)] <- "Enferma" # Marcar aleatoriamente algunos individuos como enfermos
num_enfermos_real <- sum(poblacion == "Enferma") # Contar el número de individuos enfermos en la población

print(num_enfermos_real)
## [1] 500

  • Estimador de la proporción muestral para n=100

# Función para obtener una muestra aleatoria y calcular el estimador de proporción muestral
estimar_proporcion <- function(poblacion, n) {
  muestra <- sample(poblacion, n) #  muestra aleatoria de la población
  proporcion_muestral <- sum(muestra == "Enferma") / n
  return(proporcion_muestral)
}
proporcion_estimada <- estimar_proporcion(poblacion, 100)
cat("Estimador proporción muestral n=100:", proporcion_estimada, "\n")
## Estimador proporción muestral n=100: 0.45

  • Estimador de la proporción muestral para 500 iteraciones

Estos son los primeros 6 valores de las proporciones estimadas de plantas enfermas en cada una de las 500 iteraciones.

#PUNTO C
estimar_proporcion_iterativa <- function(poblacion, n, iteraciones = 500) {
  proporciones_estimadas <- numeric(iteraciones)
  for (i in 1:iteraciones) {
    muestra <- sample(poblacion, n)
    proporcion_muestral <- sum(muestra == "Enferma") / n
    proporciones_estimadas[i] <- proporcion_muestral
  }
  return(proporciones_estimadas)
}

proporciones_estimadas <- estimar_proporcion_iterativa(poblacion, 500)
head(proporciones_estimadas)  # Mostrar las primeras estimaciones
## [1] 0.492 0.510 0.520 0.510 0.520 0.458
hist(proporciones_estimadas, breaks = 20, 
     main = "Histograma de las proporciones muestrales",
     xlab = "Proporción muestral", ylab = "Frecuencia")

min <- min(proporciones_estimadas, na.rm = TRUE)
q1 <- quantile(proporciones_estimadas, probs = 0.25, na.rm = TRUE)
media <- mean.default(proporciones_estimadas, na.rm = TRUE)
mediana <- median.default(proporciones_estimadas, na.rm = TRUE)
var <- var(proporciones_estimadas, na.rm = TRUE)
desvest <- sd(proporciones_estimadas, na.rm = TRUE)
q3 <- quantile(proporciones_estimadas, probs = 0.75, na.rm = TRUE)
max <- max(proporciones_estimadas, na.rm = TRUE)
s <- skewness(proporciones_estimadas)
c <- kurtosis(proporciones_estimadas)
descrt <- round(as.numeric(c(min, q1, media, mediana,
                             var, desvest, q3, max, s, c)),4)
nombres <- c("Mínimo", "Q1", "Media",  "Mediana", "Varianza", 
             "Desviación", "Q3", "Máximo", "Simetría", "Curtosis")
descr2 <- as.data.frame(rbind(nombres,descrt))
descr2

.

  • La media y la mediana están muy cerca una de la otra, lo que sugiere que la distribución de las estimaciones de la proporción muestral está centrada alrededor de 0.5. Esto indica que en promedio, las estimaciones están bastante cercanas a la verdadera proporción poblacional del 50%.

  • La varianza y la desviación estándar son relativamente pequeñas, lo que sugiere que las estimaciones tienden a agruparse alrededor de la media, y por ende hay una consistencia razonable entre las estimaciones.

  • La simetría está cerca de cero, lo que indica que la distribución es casi simétrica, existiendo una distribución equilibrada de estimaciones a ambos lados de la media.


  • Cálculos para n=5, 10, 15, 20, 30, 50, 60, 100, 200, 500.
  • Pruebas de bondad y gráficos de normalidad

##       Tamaño     Media   Mediana     Varianza Desviacion    Simetria
##  [1,]      5 0.4964000 0.4000000 0.0499268938 0.22344327  0.04931760
##  [2,]     10 0.5042000 0.5000000 0.0248520641 0.15764537  0.07182992
##  [3,]     15 0.5060000 0.5333333 0.0168599421 0.12984584 -0.03795371
##  [4,]     20 0.5013000 0.5000000 0.0103339780 0.10165618 -0.23652652
##  [5,]     30 0.5010000 0.5000000 0.0079370964 0.08909038  0.13012395
##  [6,]     50 0.4998800 0.5000000 0.0047526910 0.06893976  0.06600821
##  [7,]     60 0.4995667 0.5000000 0.0045305400 0.06730929  0.04620786
##  [8,]    100 0.5001800 0.5000000 0.0024202080 0.04919561 -0.02168844
##  [9,]    200 0.5003200 0.5000000 0.0008410798 0.02900138 -0.22500200
## [10,]    500 0.5016320 0.5000000 0.0002438082 0.01561436  0.06486832
##           Curtosis      Shapiro
##  [1,] -0.374067593 1.292211e-14
##  [2,] -0.239673648 1.036911e-09
##  [3,] -0.007521515 5.101526e-07
##  [4,]  0.021084944 1.093603e-07
##  [5,] -0.213266239 2.391158e-05
##  [6,]  0.049937716 4.465886e-03
##  [7,]  0.039417845 1.689201e-02
##  [8,] -0.241965575 4.093249e-02
##  [9,] -0.004472096 5.473493e-03
## [10,] -0.175333665 3.358014e-01


* Escenarios 10% y 90% plantas enfermas


## Porcentaje de individuos enfermos: 0.1 
##    Tamano      Media    Mediana     Varianza  Desviacion    Simetria
## 1       5 0.09640000 0.00000000 1.706116e-02 0.130618384  1.14334172
## 2      10 0.09940000 0.10000000 9.157956e-03 0.095697210  1.01147974
## 3      15 0.10280000 0.06666667 6.021982e-03 0.077601429  0.53008595
## 4      20 0.09950000 0.10000000 4.523798e-03 0.067259182  0.56043636
## 5      30 0.10446667 0.10000000 3.050595e-03 0.055232187  0.63089337
## 6      50 0.09940000 0.10000000 1.648537e-03 0.040602181  0.41213084
## 7      60 0.09826667 0.10000000 1.367508e-03 0.036979837  0.21770585
## 8     100 0.10018000 0.10000000 9.107892e-04 0.030179284  0.26918765
## 9     200 0.10075000 0.10000000 3.499875e-04 0.018707952 -0.05125105
## 10    500 0.10048400 0.10000000 7.932439e-05 0.008906424  0.02712250
##       Curtosis      Shapiro
## 1   0.67512074 7.748707e-29
## 2   1.29135153 1.538867e-22
## 3  -0.13503384 3.475578e-17
## 4   0.01600500 4.257584e-15
## 5   0.93051881 1.272206e-12
## 6   0.02479629 3.695708e-09
## 7  -0.34206540 2.425146e-07
## 8  -0.13059681 1.951249e-05
## 9  -0.31798115 7.424112e-03
## 10 -0.24096218 4.474527e-02

## Porcentaje de individuos enfermos: 0.9 
##    Tamano     Media   Mediana     Varianza  Desviacion     Simetria    Curtosis
## 1       5 0.9072000 1.0000000 1.750317e-02 0.132299533 -1.313528131  1.30265368
## 2      10 0.8984000 0.9000000 8.734910e-03 0.093460739 -0.703298010  0.16901441
## 3      15 0.9013333 0.9333333 6.295257e-03 0.079342657 -0.890891976  1.43469704
## 4      20 0.9012000 0.9000000 4.948457e-03 0.070345269 -0.775007555  0.44678797
## 5      30 0.8996000 0.9000000 2.956865e-03 0.054377062 -0.475532537  0.03459594
## 6      50 0.8993200 0.9000000 1.595529e-03 0.039944069 -0.165683366 -0.12452094
## 7      60 0.8995333 0.9000000 1.430421e-03 0.037820905 -0.242717005 -0.12559079
## 8     100 0.8992400 0.9000000 7.693611e-04 0.027737360 -0.189171378 -0.09691090
## 9     200 0.8991400 0.9000000 3.580766e-04 0.018922911  0.003486778 -0.11912487
## 10    500 0.8998800 0.9000000 8.952465e-05 0.009461747 -0.168745936 -0.13020115
##         Shapiro
## 1  2.090822e-29
## 2  1.605023e-21
## 3  7.286300e-19
## 4  1.736519e-16
## 5  4.619253e-12
## 6  9.548239e-08
## 7  6.955101e-07
## 8  4.482203e-05
## 9  8.899838e-03
## 10 1.435254e-02

1.3 Conclusiones

.

Al analizar los resultados anteriores, se puede observar cómo varían los estadísticos descriptivos y el output de las pruebas de normalidad de acuerdo al tamaño de la muestra y al porcentaje de individuos enfermos en la población.

  • Tamaño de la Muestra: Se puede concluir que a medida que aumenta el tamaño de la muestra, las estimaciones son más precisas y estables, y convergen hacia el verdadero valor de la proporción en la población.

  • Porcentaje de Individuos Enfermos: De acuerdo con los resultados del Shapiro Text, se sugiere que la variabilidad en la población (proporción de plantas enfermas) tiene un impacto significativo en la normalidad de la distribución del estimador. Tanto una alta como una baja proporción de plantas enfermas tienden a alejar la distribución de la normalidad, mientras que una proporción más equitativa (50%) se acerca más a una distribución normal.

  • Estadísticos Descriptivos y Pruebas de Normalidad: Observando la desviación estándar para cada n, se evidencia que a partir de n = 50, las muestras son estadísticamente significativas para un nivel de confianza del 95%.


PROBLEMA 4

Estimación Boostrap



1.1 Objetivo

.

Utilizar el método bootstrap para estimar un intervalo de confianza del 95% para la media de eficiencia de combustible de una población de 7 camiones, basándose en una muestra de datos (7.69, 4.97, 4.56, 6.49, 4.34, 6.24, 4.45). Dado que la distribución de los datos no se conoce, el método bootstrap permite simular muestras adicionales a partir de la muestra original y calcular la media de eficiencia de combustible para cada una de estas muestras bootstrap.

Luego, se utilizan los percentiles P2.5 y P97.5 de estas medias bootstrap para construir el intervalo de confianza del 95% para la media de la población, a partir de 2 MÉTODOS.

Al final se pretende responder si es posible confiar en los resultados obtenidos a través de ambos métodos.


1.2 Proceso

Pasos realizados:

  1. A partir de los datos de eficiencia de combustible de los camiones, se realizó la generación de muestras bootstrap (k = 1000 muestras).

  2. Se calculó la media de eficiencia de combustible para cada muestra bootstrap.

  3. Se realizó estimación de percentiles P2.5 y P97.5 de las medias bootstrap para establecer los límites del intervalo de confianza del 95%.

  4. Se utilizaron los percentiles estimados para establecer el intervalo de confianza del 95%.

.

  • Método 1
set.seed(64613)

k=1000
datos=c(7.69, 4.97, 4.56, 6.49, 4.34, 6.24, 4.45)
n=length(datos)



metodo_boostrap = sample(datos, replace = TRUE, size = n*k)
matriz = matrix(metodo_boostrap, nrow = 1000, ncol = 7, byrow = TRUE)
matriz = apply(matriz, 1, mean)
promedioTotal = mean(matriz)


m1 <- quantile(matriz, probs = c(0.025, 0.975))
m1
##     2.5%    97.5% 
## 4.721143 6.485714
media_m1= mean(m1)
sd_m1 = sd(m1)
print(media_m1)
## [1] 5.603429
print(sd_m1)
## [1] 1.24774

.

  • Método 2
metodo2 = function(promedioTotal, percentiles) {
  return(c(2*promedioTotal - percentiles[2], 2*promedioTotal - percentiles[1]))
}

m2 = metodo2(promedioTotal, m1)
m2
##    97.5%     2.5% 
## 4.566463 6.331034
media_m2 = mean(m2)
print(media_m2)
## [1] 5.448749
sd_m2 = sd(m2)
print(sd_m2)
## [1] 1.24774

1.3 Conclusiones

Los dos métodos para el bootstrapping arrojaron intervalos ligeramente distintos, estando el método 2 por debajo del método 1:

M1 - M2

(4.721143 - 4.566463) = 0,15468

(6.485714 - 6.331034) = 0,15468

Para este caso, las diferencias significan un 3.39% sobre la base del método 2. Sin embargo al calcular y analizar la desviación estándar de cada método, se encuentra que es la misma (1.24774), lo que sugeriría que ambos métodos son confiables ante un escenario de información insuficiente, pero que los pocos datos disponibles den fé de la variabilidad potencial de la variable aleatoria subyacente. Lo anterior puede evidenciarse en el grado de simetría del histograma.

desviacion_estandar = sd(matriz)
desviacion_estandar1 <- sd(matriz)+mean(matriz)
desviacion_estandar2 <- -sd(matriz)+mean(matriz)
dos_desviaciones_estandar1 <- 2 * desviacion_estandar +mean(matriz)
dos_desviaciones_estandar2 <- 2 * -desviacion_estandar +mean(matriz)
hist(matriz, las=1, main="Histograma", ylab = " ", xlab = " ", col="orange")
abline(v=m1, col="red",lwd=2)
abline(v=m2, col="pink",lwd=2)
abline(v=desviacion_estandar1, col="green",lwd=2)
abline(v=desviacion_estandar2, col="green",lwd=2)
abline(v=dos_desviaciones_estandar1, col="blue",lwd=2)
abline(v=dos_desviaciones_estandar2, col="blue",lwd=2)
legend("topright", legend = c("Metodo 1", "Metodo 2", "1 Desviacion Estandar", "2 Desviaciones Estandar"),
       col = c("red", "pink", "green", "blue"), lwd = 2, cex = 0.8)