# Definir parámetros ejercicio 1 
dias <- 150  # Duración del semestre
tasa_fallas <- 3  # Tasa de fallas por día

# Simulación del número de fallas por día en un semestre
set.seed(123)  # Fijar semilla para reproducibilidad
fallas <- rpois(dias, tasa_fallas)

# Calcular estadísticas
media_fallas <- mean(fallas)
desviacion_fallas <- sd(fallas)

# Mostrar resultados
cat("Número total de fallas en el semestre:", sum(fallas), "\n")
## Número total de fallas en el semestre: 450
cat("Media de fallas diarias:", media_fallas, "\n")
## Media de fallas diarias: 3
cat("Desviación estándar de fallas diarias:", desviacion_fallas, "\n")
## Desviación estándar de fallas diarias: 1.658818
# Visualización del comportamiento de fallas
hist(fallas, breaks = 10, col = "skyblue", main = "Distribución de fallas diarias",
     xlab = "Número de fallas", ylab = "Frecuencia", border = "black")

#ejercicio 2 

# Definir parámetros
n_componentes <- 1000  # Número de componentes
media_vida <- 500  # Promedio de vida útil en horas
tasa_lambda <- 1 / media_vida  # Parámetro lambda de la distribución exponencial

# Simulación de la vida útil de los componentes
set.seed(123)  # Fijar semilla para reproducibilidad
vida_util <- rexp(n_componentes, rate = tasa_lambda)

# Calcular la probabilidad de que la vida útil sea mayor a 700 horas
probabilidad_mas_700 <- mean(vida_util > 700)

# Mostrar resultados
cat("Probabilidad estimada de que un componente dure más de 700 horas:", probabilidad_mas_700, "\n")
## Probabilidad estimada de que un componente dure más de 700 horas: 0.255
# Visualización del comportamiento de la vida útil
hist(vida_util, breaks = 30, col = "lightblue", main = "Distribución de la vida útil de los componentes",
     xlab = "Horas de vida útil", ylab = "Frecuencia", border = "black")

#ejercicio 3
# Definir parámetros
n_lotes <- 100     # Número de lotes
n_productos <- 50  # Productos por lote
prob_defecto <- 0.05  # Probabilidad de que un producto sea defectuoso

# Simulación del número de productos defectuosos por lote
set.seed(123)  # Fijar semilla para reproducibilidad
defectuosos_por_lote <- rbinom(n_lotes, n_productos, prob_defecto)

# Calcular el número promedio de productos defectuosos por lote
media_defectuosos <- mean(defectuosos_por_lote)

# Mostrar resultados
cat("Número promedio de productos defectuosos por lote:", media_defectuosos, "\n")
## Número promedio de productos defectuosos por lote: 2.48
# Visualización del comportamiento de defectuosos por lote
hist(defectuosos_por_lote, breaks = 10, col = "salmon", main = "Distribución de productos defectuosos por lote",
     xlab = "Número de productos defectuosos", ylab = "Frecuencia", border = "black")

#ejercicio 4
# Definir parámetros
dias <- 365       # Número de días (un año)
media_demanda <- 100  # Media de la demanda en MW
sd_demanda <- 15  # Desviación estándar en MW

# Simulación de la demanda diaria
set.seed(123)  # Fijar semilla para reproducibilidad
demanda <- rnorm(dias, mean = media_demanda, sd = sd_demanda)

# Calcular la probabilidad de que la demanda supere los 130 MW
probabilidad_mas_130 <- mean(demanda > 130)

# Mostrar resultados
cat("Probabilidad estimada de que la demanda supere los 130 MW:", probabilidad_mas_130, "\n")
## Probabilidad estimada de que la demanda supere los 130 MW: 0.03013699
# Visualización de la distribución de la demanda
hist(demanda, breaks = 20, col = "lightblue", main = "Distribución de la Demanda Diaria de Energía",
     xlab = "Demanda (MW)", ylab = "Frecuencia", border = "black")

# Agregar una línea vertical en 130 MW
abline(v = 130, col = "red", lwd = 2, lty = 2)

#ejercicio 5
# Definir parámetros
n <- 1000   # Número de capacitores a simular
beta <- 1000  # Parámetro de la distribución exponencial (vida media)
lambda <- 1 / beta  # Tasa de la distribución exponencial

# a) Generar tiempos de vida usando el método de la transformada inversa
set.seed(123)  # Fijar semilla para reproducibilidad
U <- runif(n)  # Generar n valores uniformes en (0,1)
vida_capacitores <- -log(1 - U) / lambda  # Aplicar la transformada inversa

# b) Estimar la media y varianza de los tiempos generados
media_estimada <- mean(vida_capacitores)
varianza_estimada <- var(vida_capacitores)

# Valores teóricos
media_teorica <- beta
varianza_teorica <- beta^2

# Mostrar comparaciones
cat("Media estimada:", media_estimada, "\n")
## Media estimada: 986.1544
cat("Media teórica:", media_teorica, "\n")
## Media teórica: 1000
cat("Varianza estimada:", varianza_estimada, "\n")
## Varianza estimada: 954966.2
cat("Varianza teórica:", varianza_teorica, "\n")
## Varianza teórica: 1e+06
# c) Graficar el histograma con la densidad teórica
hist(vida_capacitores, breaks = 30, probability = TRUE, col = "lightblue",
     main = "Distribución de los Tiempos de Vida de Capacitores",
     xlab = "Tiempo de Vida (horas)", ylab = "Densidad", border = "black")

# Superponer la densidad teórica
curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

# d) Calcular la probabilidad de que un capacitor dure menos de 940 horas
probabilidad_menos_940 <- mean(vida_capacitores < 940)

# Mostrar resultado
cat("Probabilidad estimada de que un capacitor dure menos de 940 horas:", probabilidad_menos_940, "\n")
## Probabilidad estimada de que un capacitor dure menos de 940 horas: 0.611