Ejercicio * El Hotel Mirage tiene como necesidad la de conocer la demanda de sus servicios durante el tiempo para asignar mayor o menor cantidad de presupuesto para su operatividad. Cabe mencionar que el hotel cuenta con solamente información de los 12 meses en los que ha estado operativo (es un hotel nuevo). * Si la ocupación cae por debajo del 80%, ¿que acciones recomendarían para evitar que el hotel tenga perdidas económicas?
Mes Enero - 78 Febrero - 82 Marzo - 75 Abril - 80 Mayo - 85 Junio - 88 Julio - 92 Agosto - 90 Septiembre - 86 Octubre - 84 Noviembre - 80 Diciembre - 83
#install.packages("boot")
library(boot)
#Datos originales
ocupacion <- c(78, 82, 75, 80, 85, 88, 92, 90, 86, 84, 80, 83)
#Función para calcular la media (para el bootstrap)
boot_media <- function(data, indices) {
return(mean(data[indices])) # Calcula la media de la muestra remuestreada
}
#Aplicar Bootstrap con 1000 repeticiones
set.seed(123)
boot_result <- boot(data = ocupacion, statistic = boot_media, R = 1000)
#Mostrar resumen de resultados
print(boot_result)
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = ocupacion, statistic = boot_media, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 83.58333 -0.009916667 1.467829
#Calcular Intervalo de Confianza del 95%
ic <- boot.ci(boot_result, type = "perc")
print(ic)
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = boot_result, type = "perc")
##
## Intervals :
## Level Percentile
## 95% (80.58, 86.42 )
## Calculations and Intervals on Original Scale
hist(boot_result$t, main = "Distribución Bootstrap de la Ocupación Hotelera",
xlab = "Ocupación Remuestreada (%)", col = "lightblue", border = "black")
¿Cómo cambia el intervalo si en vez de 1000 repeticiones hacemos 100,000?
# Si en vez de 1000 fueran 100,000
set.seed(123)
boot_100 <- boot(data = ocupacion, statistic = boot_media, R = 100000)
ic100 <- boot.ci(boot_100, type = "perc")
print(ic100)
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 100000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = boot_100, type = "perc")
##
## Intervals :
## Level Percentile
## 95% (80.92, 86.25 )
## Calculations and Intervals on Original Scale
El dueño del hotel se dio cuenta de que la ocupación hotelera para el mes de diciembre no fue de 83%, si no de 73%, ¿Cómo cambian los resultados (volver a hacer el ejercicio)?
#Datos originales
ocupacion2 <- c(78, 82, 75, 80, 85, 88, 92, 90, 86, 84, 80, 73)
#Función para calcular la media (para el bootstrap)
bootstrap_ocupacion <- function(data, indices) {
return(mean(data[indices])) # Calcula la media de la muestra remuestreada
}
#Aplicar Bootstrap con 1000 repeticiones
set.seed(123)
boot73 <- boot(data = ocupacion2, statistic = bootstrap_ocupacion, R = 1000)
#Mostrar resumen de resultados
print(boot73)
##
## ORDINARY NONPARAMETRIC BOOTSTRAP
##
##
## Call:
## boot(data = ocupacion2, statistic = bootstrap_ocupacion, R = 1000)
##
##
## Bootstrap Statistics :
## original bias std. error
## t1* 82.75 0.02758333 1.697384
#Calcular Intervalo de Confianza del 95%
ic73 <- boot.ci(boot73, type = "perc")
print(ic73)
## BOOTSTRAP CONFIDENCE INTERVAL CALCULATIONS
## Based on 1000 bootstrap replicates
##
## CALL :
## boot.ci(boot.out = boot73, type = "perc")
##
## Intervals :
## Level Percentile
## 95% (79.42, 86.08 )
## Calculations and Intervals on Original Scale
hist(boot73$t, main = "Distribución Bootstrap de la Ocupación Hotelera con 73% Dic",
xlab = "Ocupación Remuestreada (%)", col = "lightblue", border = "black")