Estimación de π
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 π?
. .
Pasos realizados:
Se generaron n coordenadas X, con distribución uniforme de valor mínimo = 0 y máximo = 1, utilizando la función runif.
Se generaron 1.000 coordenadas Y, con distribución uniforme de valor mínimo = 0 y máximo = 1, utilizando la función runif.
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.
Este proceso se replicó para una muestra 10.000 y 100.000 puntos.
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
* 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
* 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
. .
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
. .
Propiedades de estimadores
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.
.
Pasos realizados
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.
Una vez creada la muestra para n = 4, se replicó el cáculo para muestras de n=20, 50, 100 y 1000.
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
* Para la MUESTRA n = 20
.
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
.
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.
.
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
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
Para una muestra de n=50, el estimador cuya varianza es menor (más eficiente), es el 3.
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
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
En la eficiencia se busca el estimador cuya varianza sea menor; para el ejercicio, el estimador más eficiente es el 1.
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
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
En la eficiencia se busca el estimador cuya varianza sea menor; para el ejercicio, el estimador más eficiente 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.
Teorema del Límite Central
.
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:
Pasos realizados:
Se generó población de n=1000 plantas, donde el 50% se encuentran enfermas.
Se generó una muestra aleatoria de la población y se calculó el estimador de la proporción muestral p, para n=100.
Se replicó el proceso anterior para n=500.
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.
Se utilizaron pruebas de bondad y ajuste (shapiro wilks :shspiro.test()) y métodos gráficos (gráfico de normalidad: qqnorm()).
Se replica todo lo anterior para lotes con 10% de plantas enfermas.
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
# 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
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.
## 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
.
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%.
Estimación Boostrap
.
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.
Pasos realizados:
A partir de los datos de eficiencia de combustible de los camiones, se realizó la generación de muestras bootstrap (k = 1000 muestras).
Se calculó la media de eficiencia de combustible para cada muestra bootstrap.
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%.
Se utilizaron los percentiles estimados para establecer el intervalo de confianza del 95%.
.
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
## [1] 5.603429
## [1] 1.24774
.
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
## [1] 5.448749
## [1] 1.24774
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)