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. ¿Confiaría en estas estimaciones?
1. Primero debemos definir la muestra con los datos que nos da el enunciado
muestra <- c(7.69, 4.97, 4.56, 6.49, 4.34, 6.24, 4.45)
2. Ahora realizamos el método Bootstrap, definimos la constante K que es el número de muestra. También definimos un vector donde almacenaremos los promedios.
k = 1000
medias_bs <- numeric(k)
Definimos una semilla para obtener los mismos resultados cada vez que ejecutemos el código
set.seed(123)
Y procedemos con el ciclo for para el método Bootstrap, donde generaremos las muestras aleatorias con sustitución sobre la muestra inicial y luego, almacenaremos las medias en el vector “medias_bs” que fue definido anteriormente.
for (i in 1:k){
muestra_bs <- sample(muestra, replace = TRUE)
medias_bs[i] <- mean(muestra_bs)
}
Imprimimos los 10 primeros valores del vector para comprobar que esté generando correctamente.
head(medias_bs)
## [1] 4.885714 5.971429 5.310000 5.524286 6.210000 4.784286
3. El siguiente paso es calcular los percentiles 2.5 y 97.5
Método 1 - Intervalo de confianza \(P_{2.5} - P_{97.5}\)
m1_p2.5 <- quantile(medias_bs, 0.025)
m1_p97.5 <- quantile(medias_bs, 0.975)
Método 2 - Intervalo de confianza \((2\bar{X} - P_{97.5}; 2\bar{X} - P_{2.5})\)
prom_m2 <- mean(muestra)
prom_m2
## [1] 5.534286
m2_2x <- c(2 * prom_m2 - m1_p97.5, 2 * prom_m2 - m1_p2.5)
4. Imprimimos los intervalos de confianza
cat("Intervalo de confianza Método 1): [", m1_p2.5, ", ", m1_p97.5, "]\n")
## Intervalo de confianza Método 1): [ 4.748393 , 6.508643 ]
cat("Intervalo de confianza Método 2): [", m2_2x[1], ", ", m2_2x[2], "]\n")
## Intervalo de confianza Método 2): [ 4.559929 , 6.320179 ]
t_test_result <- t.test(c(m1_p2.5, m1_p97.5),
c(m2_2x[1], m2_2x[2]))
t_test_result
##
## Welch Two Sample t-test
##
## data: c(m1_p2.5, m1_p97.5) and c(m2_2x[1], m2_2x[2])
## t = 0.15142, df = 2, p-value = 0.8935
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
## -5.166982 5.543910
## sample estimates:
## mean of x mean of y
## 5.628518 5.440054
Con base en este resultado, se puede concluir que no hay evidencia significativa para rechazar la hipótesis nula de que la diferencia real entre las medias de los dos métodos sea igual a cero. En otras palabras, los dos métodos proporcionan estimaciones de la media que no difieren significativamente, lo que sugiere consistencia entre ambos métodos en términos de estimación de la media de la eficiencia de combustible.
Y, finalmente, gráficamos para soportar las respuestas a la pregunta planteada por el ejercicio.
Gráfica de densidad de las medias Bootstrap
density_plot <- density(medias_bs)
# Visualizar la grC!fica
plot(density_plot, main = "Densidad de las medias Bootstrap",
xlab = "Media Bootstrap", ylab = "Densidad")
abline(v = prom_m2, col = "indianred2", lty = 2) # LC-nea vertical en la media de la muestra
legend("topright", legend = "Media de la muestra", col = "indianred2", lty = 2)
Creamos un histograma con las medias Bootstrap y lo comparamos con el histograma de la muestra original
hist(medias_bs, breaks = 20, main = "Histograma de las Medias Bootstrap",
xlab = "Media Bootstrap", ylab = "Frecuencia", col = 'cyan3')
abline(v = prom_m2, col = "salmon", lty = 2) # LC-nea vertical en la media de la muestra
legend("topright", legend = "Media de la Muestra", col = "salmon", lty = 2)
hist(muestra, breaks = 10, main = "Histograma de los Datos Originales",
xlab = "Eficiencia de Combustible", ylab = "Frecuencia")
abline(v = prom_m2, col = "red", lty = 2) # LC-nea vertical en la media de la muestra
legend("topright", legend = "Media de la Muestra", col = "red", lty = 2)
qqnorm(medias_bs)
qqline(medias_bs, col = "red")
barplot(cbind(c(m1_p2.5, m2_2x[1]),
c(m1_p97.5, m2_2x[2])),
beside = TRUE,
names.arg = c("Método 1", "Método 2"),
col = c("blue", "red"),
ylim = c(0, max(c(m1_p97.5, m2_2x))),
main = "Intervalos de Confianza (Método 1 vs. Método 2)",
xlab = "Método",
ylab = "Valor")
Los resultados obtenidos a través de ambos métodos de estimación de intervalos de confianza indican que ambas estimaciones proporcionan intervalos que contienen la verdadera media de la eficiencia de combustible de la población, la cual se sitúa en 5.53. Este hallazgo es alentador y sugiere que los métodos se están desempeñando de manera adecuada.
En términos de la comparación entre los dos métodos, se observa que el Método 2 produce un intervalo un 0.01 más amplio [4.55, 6.32], en contraste con el Método 1 [4.75, 6.51] . Sin embargo, es importante destacar que ambos intervalos se superponen y, en última instancia, son consistentes en términos de contener la media real.