Enunciado

Cuando se extrae una muestra de una población que no es normal y se requiere estimar un intervalo de confianza se pueden utilizar los métodos de estimación bootstrap. Esta metodología supone que se puede reconstruir la población objeto de estudio mediante un muestreo con reemplazo de la muestra que se tiene. Existen varias versiones del método. Una presentación básica del método se describe a continuación:

El artículo de In-use Emissions from Heavy Duty Dissel Vehicles (J.Yanowitz, 2001) presenta las mediciones de eficiencia de combustible en millas/galón de una muestra de siete camiones. Los datos obtenidos son los siguientes: 7.69, 4.97, 4.56, 6.49, 4.34, 6.24 y 4.45. Se supone que es una muestra aleatoria de camiones y que se desea construir un intervalo de confianza del 95 % para la media de la eficiencia de combustible de esta población. No se tiene información de la distribución de los datos. El método bootstrap permite construir intervalos de confianza del 95 % - Para ilustrar el método suponga que coloca los valores de la muestra en una caja y extrae uno al azar. Este correspondería al primer valor de la muestra bootstrap \(X_1^*\). Después de anotado el valor se regresa \(X_1^*\) a la caja y se extrae el valor \(X_2^*\), regresandolo nuevamente. Este procedimiento se repite hasta completar una muestra de tamaño n, \(X_1^*\),\(X_2^*\), \(X_2^*\), \(X_n^*\), conformando la muestra bootstrap.

Es necesario extraer un gran número de muestras (suponga k = 1000). Para cada una de las muestra bootstrap obtenidas se calcula la media \(\bar{X_i^*}\), obteniéndose un valor para cada muestra. El intervalo de confianza queda conformado por los percentiles \(P_{2.5}\) y \(P_{97.5}\). Existen dos métodos para estimarlo:

Método 1: (\(P_{2.5}\);\(P_{97.5}\))

Método 2: (2\(\bar{X}\)\(P_{97.5}\);2\(\bar{X}\)\(P_{2.5}\))

Construya el intervalo de confianza por los dos métodos y compare los resultados obtenidos. Comente los resultados. ¿Confiaría en estas estimaciones?

Desarrollo

Los métodos de estimación bootstrap son una técnica estadística ingeniosa que se utiliza para obtener una idea de la incertidumbre en torno a una estimación de un valor desconocido, como la media o la mediana, cuando no se conocen las propiedades matemáticas exactas de la población subyacente. En lugar de basarse en fórmulas matemáticas tradicionales, el bootstrap crea múltiples “muestras ficticias” a partir de los datos que ya tenemos, tomando muestras repetidamente con reemplazo de los datos originales. Luego, calcula la estimación en cada una de estas muestras ficticias y examina cómo varían esas estimaciones. Al repetir este proceso muchas veces, se obtiene una distribución de posibles valores de estimación. Esto nos permite estimar la variabilidad y la incertidumbre en torno a nuestra estimación original.

Teniendo en cuenta lo anterior, a continuación se construirá un intervalo de confianza del 95% para la media de la eficiencia de combustible, a partir de los dos metodos expuestos anteriomente. Para ello, el primer paso será generar 1000 muestras bootstrap a partir de la muestra original de 7 datos.

# Muestra original de datos
muestra_original <- c(7.69, 4.97, 4.56, 6.49, 4.34, 6.24, 4.45)

# Número de muestras bootstrap deseadas
numero_bootstrap <- 1000

# Creación de matriz para almacenar las muestras bootstrap
muestras_bootstrap <- matrix(nrow = numero_bootstrap, ncol = length(muestra_original))

# Generación de las muestras bootstrap
for (i in 1:numero_bootstrap) {
  muestra_bootstrap <- sample(muestra_original, size = length(muestra_original), replace = TRUE)
  muestras_bootstrap[i, ] <- muestra_bootstrap
}
head(muestras_bootstrap)
##      [,1] [,2] [,3] [,4] [,5] [,6] [,7]
## [1,] 6.49 6.49 4.34 4.97 4.34 4.97 4.34
## [2,] 4.45 4.45 4.97 4.45 6.24 4.45 6.24
## [3,] 7.69 4.45 7.69 4.34 6.49 4.56 4.34
## [4,] 6.24 6.24 6.49 7.69 4.56 6.24 4.56
## [5,] 4.34 7.69 7.69 6.24 4.97 6.49 6.49
## [6,] 6.49 4.45 4.56 4.34 7.69 4.97 7.69

Luego, se calcula la media en cada muestra bootstrap creada anteriormente.

# Calculoo de la media de cada muestra bootstrap
medias_bootstrap <- apply(muestras_bootstrap, 1, mean)

Ahora, se ordenan las medias calculadas en el paso anterior de menor a mayor, con el objetivo de encontrar los percentiles necesarios para construir el intervalo de confianza.

# Ordenamiento de las medias bootstrap de menor a mayor 
medias_bootstrap_ordenadas <- sort(medias_bootstrap)

A continuación, se calculan los dos percentiles necesarios para el intervalo de confianza de 95%: El percentil 2.5% y el percentil 97.5%.

# Encontrando el percentil 2.5% más bajo
percentil_2.5 <- quantile(medias_bootstrap_ordenadas, 0.025)

# Encontrando el percentil 97.5% más alto
percentil_97.5 <- quantile(medias_bootstrap_ordenadas, 0.975)

Método 1

En este método el intervalo de confianza va comprendido entre los percentiles 2.5 y 97.5. Cuyo resultado se expone a continuación.

\[ (P_{2.5} = 4.7797143, P_{97.5} = 6.4801429) \]

Método 2

En este método se multiplica el valor de la media por 2 y luego se resta a los percentiles inferior y superior, que calculamos anteriormente, creando así un nuevo intervalo de confianza. Su resultado se expone a continuación.

# Calculo del intervalo de confianza acorde al método 2
nuevo_limite_inferior_ajustado <- 2 * mean(medias_bootstrap_ordenadas) - percentil_97.5
nuevo_limite_superior_ajustado <- 2 * mean(medias_bootstrap_ordenadas) - percentil_2.5

\[ (2\bar{X} − P_{97.5}, 2\bar{X} − P_{2.5}) \] \[ (4.6004629, 6.3008914) \]

Ahora bien, los valores estimados para determinar el intervalo de confianza en ambos métodos es semejante, lo cual se puede evidenciar en el siguiente histograma donde el intervalo de confianza establecido para el método 2 se encuentra sesgado hacia la izquierda (valores más bajos) respecto al método 1. No obstante, la distribución de los datos presentada sigue una distribución normal insesgada, en la cual, ambos intervalos de confianza abarcan la mayoria de los datos.

# Histograma resultante
hist(medias_bootstrap_ordenadas, main="Histograma de valores medios", 
     xlab = "Valores medios", 
     ylab = "Frecuencia",
     col = "orange")
color_met_1 = "blue"
color_met_2 = "green"
abline(v = percentil_2.5, col = color_met_1, lwd = 2)
abline(v = percentil_97.5, col = color_met_1, lwd = 2)
abline(v = nuevo_limite_inferior_ajustado, col = color_met_2, lwd = 2)
abline(v = nuevo_limite_superior_ajustado, col = color_met_2, lwd = 2)

legend("topright", legend = c("Método 1", "Método 2"), 
       col = c(color_met_1, color_met_2), lwd = c(1, 2))

Conclusiones