Ejercicio 1: Un sistema de producción tiene fallas según un proceso de Poisson con una tasa de 3 fallas por día. Simular el número de fallas en un semestre (150 días) y calcular la media y desviación estándar.

set.seed(456)

tasa_fallas <- 3
periodo_dias <- 150

fallas_diarias <- rpois(n = periodo_dias, lambda = tasa_fallas)

media_simulada <- mean(fallas_diarias)
desviacion_simulada <- sd(fallas_diarias)

hist(fallas_diarias,
     main = "Distribucion de Fallas Diarias en un Semestre",
     xlab = "Numero de Fallas por Dia",
     ylab = "Frecuencia (Dias)",
     col = "tomato",
     breaks = seq(-0.5, max(fallas_diarias) + 0.5, by = 1))

print(paste("Media de fallas por dia (simulada):", round(media_simulada, 2)))
## [1] "Media de fallas por dia (simulada): 3.3"
print(paste("Desviacion estandar de fallas (simulada):", round(desviacion_simulada, 2)))
## [1] "Desviacion estandar de fallas (simulada): 1.75"

Explicación del resultado obtenido: La simulación confirma que las fallas diarias siguen un proceso de Poisson, con una media y varianza teóricas de 3. Los resultados muestran que, si bien el promedio diario es 3, existe una variabilidad cuantificable que rara vez excede las 6 fallas por día.

Ejercicio 2: La vida útil (en horas) de un componente electrónico sigue una distribución exponencial con un promedio de 500 horas. Simular 1000 componentes y estimar la probabilidad de que un componente dure más de 700 horas.

set.seed(123)

tasa_exponencial <- 1 / 500
n_componentes <- 1000

vida_util_simulada <- rexp(n = n_componentes, rate = tasa_exponencial)

prob_mas_700 <- mean(vida_util_simulada > 700)

hist(vida_util_simulada,
     main = "Distribucion de la Vida Util de Componentes",
     xlab = "Horas de Vida Util",
     ylab = "Frecuencia",
     col = "orange")

print(paste("Probabilidad estimada de durar mas de 700 horas:", round(prob_mas_700, 4)))
## [1] "Probabilidad estimada de durar mas de 700 horas: 0.255"

Explicación: La simulación confirma la naturaleza de la distribución exponencial, donde la mayoría de los componentes fallan temprano, pero una fracción significativa presenta una vida útil muy larga. A partir de 1000 componentes simulados, se estima que la probabilidad de que uno de ellos dure más de 700 horas es de aproximadamente 0.25 o 25%.

Ejercicio 3: En una línea de ensamblaje, la probabilidad de que un producto sea defectuoso es del 5 %. Simular 100 lotes de 50 productos y calcular el número promedio de productos defectuosos por lote.

set.seed(123)

prob_defectuoso <- 0.05
n_lotes <- 100
tamano_lote <- 50

defectuosos_por_lote <- rbinom(n = n_lotes, size = tamano_lote, prob = prob_defectuoso)

promedio_defectuosos <- mean(defectuosos_por_lote)

hist(defectuosos_por_lote,
     main = "Distribucion de Productos Defectuosos por Lote",
     xlab = "Numero de Defectuosos",
     ylab = "Frecuencia (Lotes)",
     col = "lightgreen",
     breaks = seq(-0.5, max(defectuosos_por_lote) + 0.5, by = 1))

print(paste("Numero promedio de productos defectuosos por lote:", round(promedio_defectuosos, 2)))
## [1] "Numero promedio de productos defectuosos por lote: 2.48"

Explicación: La simulación del proceso de producción sigue una distribución binomial, ya que cada producto tiene una probabilidad fija de ser defectuoso. Con una probabilidad de defecto del 5% en lotes de 50, el número promedio de productos defectuosos por lote es de aproximadamente 2.5.

EJercicio 4: La demanda diaria de energía (en MW) sigue una distribución normal con media de 100 MW y desviación estándar de 15 MW. Simular la demanda de un año (365 días) y calcular la probabilidad de que un día supere los 130 MW. y realizar el histograma.

set.seed(123)

media_demanda <- 100
desviacion_demanda <- 15
n_dias <- 365

demanda_anual_simulada <- rnorm(n = n_dias, mean = media_demanda, sd = desviacion_demanda)

prob_supera_130 <- mean(demanda_anual_simulada > 130)

hist(demanda_anual_simulada,
     main = "Distribucion de la Demanda Diaria de Energia",
     xlab = "Demanda (MW)",
     ylab = "Frecuencia (Dias)",
     col = "lightcoral")

print(paste("Probabilidad de que la demanda supere 130 MW:", round(prob_supera_130, 4)))
## [1] "Probabilidad de que la demanda supere 130 MW: 0.0301"

Explicación: La simulación refleja una distribución normal de la demanda de energía, centrada en 100 MW. Se observa que la probabilidad de que la demanda diaria exceda los 130 MW es de aproximadamente 0.02 a 0.03, lo que equivale a unos 7 a 11 días al año, confirmando que estos picos son eventos poco frecuentes pero predecibles.

Ejercicio 5: Una empresa de manufactura electrónica quiere simular el tiempo de vida (en horas) de un nuevo modelo de capacitor. Basado en datos históricos, se ha determinado que el tiempo de vida sigue una distribución exponencial con parámetro β = 1000 horas, que representa el tiempo medio de vida de los capacitores.

a) Generar 1000 tiempos de vida del capacitor aplicando el método de la transformada inversa.

set.seed(123)

beta <- 1000
n_simulaciones <- 1000

u <- runif(n_simulaciones)

tiempos_vida_inversa <- -beta * log(1 - u)

head(tiempos_vida_inversa)
## [1]  339.08417 1552.60936  525.90021 2145.73011 2821.22927   46.62683
summary(tiempos_vida_inversa)
##      Min.   1st Qu.    Median      Mean   3rd Qu.      Max. 
##    0.4655  292.5478  673.2470  986.1544 1373.5970 7426.1561
hist(tiempos_vida_inversa,
     main = "Tiempos de Vida (Transformada Inversa)",
     xlab = "Tiempo de Vida (horas)",
     ylab = "Frecuencia",
     col = "lightblue",
     breaks = 30)

b) Estimar la media y la varianza de los tiempos generados y compararlas con los valores teóricos.

beta <- 1000
media_teorica <- beta
varianza_teorica <- beta^2

media_simulada <- mean(tiempos_vida_inversa)
varianza_simulada <- var(tiempos_vida_inversa)

comparacion <- data.frame(
  Valor = c("Media", "Varianza"),
  Teorico = c(media_teorica, varianza_teorica),
  Simulado = c(media_simulada, varianza_simulada)
)

print(comparacion)
##      Valor Teorico    Simulado
## 1    Media   1e+03    986.1544
## 2 Varianza   1e+06 954966.2320

c) Graficar el histograma de los tiempos de vida simulados junto con la densidad teórica de la distribución exponencial.

n <- 1e6
lambda <- 1/1000
tiempos <- rexp(n, rate = lambda)

hist(tiempos, probability = TRUE, breaks = 100, xlim = c(0,5000),
     main = "Simulacion vs Teoria", xlab = "Tiempo de vida (horas)")

curve(dexp(x, rate = lambda), col = "red", lwd = 2, add = TRUE)

d) Calcular la probabilidad de que un capacitor dure menos de 940 horas usando la simulación.

n <- 1e6   

lambda <- 1/1000  

tiempos <- rexp(n, rate = lambda)

prob_simulada <- mean(tiempos < 940)

print(prob_simulada)
## [1] 0.609544

Conclusión: La simulación del tiempo de vida de los capacitores se realizó exitosamente aplicando el método de la transformada inversa, generando 1000 muestras que siguen una distribución exponencial. La media y varianza calculadas a partir de los datos simulados son consistentes con los valores teóricos (β = 1000 y β² = 1,000,000), y el histograma se ajusta de manera precisa a la curva de densidad teórica, validando la fiabilidad del modelo.