data <- read.csv("/Users/Constantine/Downloads/Daily % Utilization - All Projects - Historical data (2).csv")


# Plot histogram of the UTIL column
hist(data$UTIL, 
     main = "Histogram of UTIL Column", 
     xlab = "UTIL (%)", 
     ylab = "Frequency", 
     col = "blue", 
     border = "black", 
     breaks = 20)

##Bootstrap test with 100000

library(boot)
## 
## Attaching package: 'boot'
## The following object is masked from 'package:car':
## 
##     logit
boot_mean <- function(data, indices) {
  return(mean(data[indices], na.rm = TRUE))  # handle any NA values safely
}

# Extract the UTIL column
util_values <- data$UTIL

# Run bootstrap with 10,000 resamples
boot_results <- boot(data = util_values, statistic = boot_mean, R = 10000)

# Display bootstrap 95% confidence interval (percentile method)
quantile(boot_results$t, c(0.0125, 0.9875))
##     1.25%    98.75% 
## 0.5773365 0.6110732
mean(boot_results$t > 0.57)
## [1] 0.9992

Hay un 99.93% probablildad que la utilizacion del hashrate sea mayor a 57%. Segun las simulaciones, podemos decir con 97.5 de confidencia que el promedio de utilizacion esta entre 0.5773453 0.6109796. Teniendo en cuenta que el nuprojecto tiene mejoras operativas y incetivos a la empresa de no cortar suministro, podemos asumir con muy alta confidencia que Toldos II tendra un hashrate mayor a 57%. Tomando un modesta prediccion de 20% de mejora en la productividas, podemos tener muy alta seguridad que el nuevo projecto va en lo minimo producir 68.4.

##T-Test with null mu=0.6

t.test(data$UTIL, mu = 0.5)
## 
##  One Sample t-test
## 
## data:  data$UTIL
## t = 12.369, df = 1191, p-value < 2.2e-16
## alternative hypothesis: true mean is not equal to 0.5
## 95 percent confidence interval:
##  0.5792555 0.6091394
## sample estimates:
## mean of x 
## 0.5941975
ci <- quantile(boot_results$t, c(0.0125, 0.9875))

hist(boot_results$t, 
     main = "Distribución de Medias de Muestras Bootstrap", 
     xlab = "Media de la Muestra Bootstrap", 
     ylab = "Frecuencia", 
     col = "blue", 
     border = "black", 
     breaks = 30)

# Agregar las líneas para el intervalo de confianza
abline(v = ci[1], col = "red", lwd = 2, lty = 2)  # Línea para el percentil 2.5%
abline(v = ci[2], col = "red", lwd = 2, lty = 2)  # Línea para el percentil 97.5%
abline(v = mean(boot_results$t), col = "green", lwd = 2, lty = 1)  # Línea para la media

# Agregar leyenda
legend("topright", legend = c("CI 95% Inferior", "CI 95% Superior", "Media"), 
       col = c("red", "red", "green"), lty = c(2, 2, 1), lwd = 2)