# ============================================================
# Taller 341 - Modelos continuos
# Teoría de probabilidades - Curso 013
# Correr todo: Ctrl + Shift + Enter (o botón Source)
# Las gráficas quedan en la pestaña Plots (usa las flechas para verlas todas)
# ============================================================

r4 <- function(v) round(v, 4)   # para redondear a 4 decimales
# Problema 1. X ~ U(20, 50)
a <- 20; b <- 50
cat("\n=== Problema 1: Uniforme(20, 50) ===\n")
## 
## === Problema 1: Uniforme(20, 50) ===
cat("a) f(x) = 1/(b-a) =", r4(1/(b - a)), "para 20 <= x <= 50\n")
## a) f(x) = 1/(b-a) = 0.0333 para 20 <= x <= 50
cat("b) P(X <= 30)      =", r4(punif(30, a, b)), "\n")
## b) P(X <= 30)      = 0.3333
cat("c) P(X > 42)       =", r4(punif(42, a, b, lower.tail = FALSE)), "\n")
## c) P(X > 42)       = 0.2667
cat("d) P(25 <= X < 40) =", r4(punif(40, a, b) - punif(25, a, b)), "\n")
## d) P(25 <= X < 40) = 0.5
cat("e) x con P(X<=x)=0.80:", r4(qunif(0.80, a, b)), "\n")
## e) x con P(X<=x)=0.80: 44
cat("f) E[X] =", (a + b) / 2, "  V[X] =", r4((b - a)^2 / 12), "\n")
## f) E[X] = 35   V[X] = 75
curve(dunif(x, a, b), from = 10, to = 60, n = 1000, lwd = 2, col = "steelblue",
      main = "P1: f(x) de U(20, 50)", ylab = "f(x)")

# Problema 2. X ~ N(100, 15^2)
mu <- 100; s <- 15
cat("\n=== Problema 2: Normal(100, 15^2) ===\n")
## 
## === Problema 2: Normal(100, 15^2) ===
cat("a) P(X <= 85)       =", r4(pnorm(85, mu, s)), "\n")
## a) P(X <= 85)       = 0.1587
cat("b) P(X > 120)       =", r4(pnorm(120, mu, s, lower.tail = FALSE)), "\n")
## b) P(X > 120)       = 0.0912
cat("c) P(90 <= X < 115) =", r4(pnorm(115, mu, s) - pnorm(90, mu, s)), "\n")
## c) P(90 <= X < 115) = 0.5889
cat("d) x con P(X<=x)=0.95:", r4(qnorm(0.95, mu, s)), "\n")
## d) x con P(X<=x)=0.95: 124.6728
cat("e) Intervalo central 95%: [", r4(qnorm(0.025, mu, s)), ",", r4(qnorm(0.975, mu, s)), "]\n")
## e) Intervalo central 95%: [ 70.6005 , 129.3995 ]
curve(dnorm(x, mu, s), from = mu - 4*s, to = mu + 4*s, lwd = 2, col = "steelblue",
      main = "P2: f(x) de N(100, 15^2)", ylab = "f(x)")
abline(v = mu, lty = 2)

# Problema 3. X ~ N(72, 8^2)
mu <- 72; s <- 8
cat("\n=== Problema 3: Normal(72, 8^2) ===\n")
## 
## === Problema 3: Normal(72, 8^2) ===
cat("a) P(X < 60)        =", r4(pnorm(60, mu, s)), "\n")
## a) P(X < 60)        = 0.0668
cat("b) P(X >= 80)       =", r4(pnorm(80, mu, s, lower.tail = FALSE)), "\n")
## b) P(X >= 80)       = 0.1587
cat("c) P(68 <= X <= 76) =", r4(pnorm(76, mu, s) - pnorm(68, mu, s)), "\n")
## c) P(68 <= X <= 76) = 0.3829
cat("d) Percentil 90     =", r4(qnorm(0.90, mu, s)), "\n")
## d) Percentil 90     = 82.2524
cat("e) x que deja 5% arriba =", r4(qnorm(0.05, mu, s, lower.tail = FALSE)), "\n")
## e) x que deja 5% arriba = 85.1588
curve(dnorm(x, mu, s), from = mu - 4*s, to = mu + 4*s, lwd = 2, col = "steelblue",
      main = "P3: f(x) de N(72, 8^2)", ylab = "f(x)")
abline(v = mu, lty = 2, col = "red")   # media señalada

# Problema 4. X ~ N(500, 40^2)
mu <- 500; s <- 40
cat("\n=== Problema 4: Normal(500, 40^2) ===\n")
## 
## === Problema 4: Normal(500, 40^2) ===
cat("a) P(X <= 450)      =", r4(pnorm(450, mu, s)), "\n")
## a) P(X <= 450)      = 0.1056
cat("b) P(X > 575)       =", r4(pnorm(575, mu, s, lower.tail = FALSE)), "\n")
## b) P(X > 575)       = 0.0304
cat("c) P(480 < X < 540) =", r4(pnorm(540, mu, s) - pnorm(480, mu, s)), "\n")
## c) P(480 < X < 540) = 0.5328
cat("d) 80% central: [", r4(qnorm(0.10, mu, s)), ",", r4(qnorm(0.90, mu, s)), "]\n")
## d) 80% central: [ 448.7379 , 551.2621 ]
cat("e) Percentil 99     =", r4(qnorm(0.99, mu, s)), "\n")
## e) Percentil 99     = 593.0539
curve(dnorm(x, mu, s), from = mu - 4*s, to = mu + 4*s, lwd = 2, col = "steelblue",
      main = "P4: f(x) de N(500, 40^2)", ylab = "f(x)")

# Problema 5. X ~ Exp(lambda = 0.25)
lam <- 0.25
cat("\n=== Problema 5: Exponencial(0.25) ===\n")
## 
## === Problema 5: Exponencial(0.25) ===
cat("a) P(X <= 2)      =", r4(pexp(2, lam)), "\n")
## a) P(X <= 2)      = 0.3935
cat("b) P(X > 5)       =", r4(pexp(5, lam, lower.tail = FALSE)), "\n")
## b) P(X > 5)       = 0.2865
cat("c) P(2 < X <= 6)  =", r4(pexp(6, lam) - pexp(2, lam)), "\n")
## c) P(2 < X <= 6)  = 0.3834
cat("d) x con P(X<=x)=0.90:", r4(qexp(0.90, lam)), "\n")
## d) x con P(X<=x)=0.90: 9.2103
cat("e) E[X] =", 1/lam, "  V[X] =", 1/lam^2, "\n")
## e) E[X] = 4   V[X] = 16
curve(dexp(x, lam), from = 0, to = 25, lwd = 2, col = "steelblue",
      main = "P5: f(x) de Exp(0.25)", ylab = "f(x)")

# Problema 6. X ~ Lognormal(3.5, 0.40^2)   -> ln(X) ~ N(3.5, 0.4^2)
m <- 3.5; sl <- 0.40
cat("\n=== Problema 6: Lognormal(3.5, 0.40^2) ===\n")
## 
## === Problema 6: Lognormal(3.5, 0.40^2) ===
cat("a) P(X <= 25)      =", r4(plnorm(25, m, sl)), "\n")
## a) P(X <= 25)      = 0.2411
cat("b) P(X > 50)       =", r4(plnorm(50, m, sl, lower.tail = FALSE)), "\n")
## b) P(X > 50)       = 0.1515
cat("c) P(20 <= X < 40) =", r4(plnorm(40, m, sl) - plnorm(20, m, sl)), "\n")
## c) P(20 <= X < 40) = 0.5779
cat("d) Mediana = e^mu  =", r4(qlnorm(0.5, m, sl)), "\n")
## d) Mediana = e^mu  = 33.1155
cat("e) Percentil 90    =", r4(qlnorm(0.90, m, sl)), "\n")
## e) Percentil 90    = 55.2916
cat("f) E[X] =", r4(exp(m + sl^2/2)),
    "  V[X] =", r4((exp(sl^2) - 1) * exp(2*m + sl^2)), "\n")
## f) E[X] = 35.8735   V[X] = 223.293
curve(dlnorm(x, m, sl), from = 0, to = 120, n = 1000, lwd = 2, col = "steelblue",
      main = "P6: f(x) de Lognormal(3.5, 0.4^2)", ylab = "f(x)")

# Problema 7. X ~ Gamma(alpha = 3, lambda = 0.5)  (lambda = tasa -> rate)
al <- 3; lam <- 0.5
cat("\n=== Problema 7: Gamma(3, tasa 0.5) ===\n")
## 
## === Problema 7: Gamma(3, tasa 0.5) ===
cat("a) P(X <= 4)      =", r4(pgamma(4, shape = al, rate = lam)), "\n")
## a) P(X <= 4)      = 0.3233
cat("b) P(X > 8)       =", r4(pgamma(8, shape = al, rate = lam, lower.tail = FALSE)), "\n")
## b) P(X > 8)       = 0.2381
cat("c) P(3 <= X < 7)  =", r4(pgamma(7, shape = al, rate = lam) - pgamma(3, shape = al, rate = lam)), "\n")
## c) P(3 <= X < 7)  = 0.488
cat("d) Percentil 95   =", r4(qgamma(0.95, shape = al, rate = lam)), "\n")
## d) Percentil 95   = 12.5916
cat("e) E[X] =", al/lam, "  V[X] =", al/lam^2, "\n")
## e) E[X] = 6   V[X] = 12
curve(dgamma(x, shape = al, rate = lam), from = 0, to = 25, lwd = 2, col = "steelblue",
      main = "P7: f(x) de Gamma(3, 0.5)", ylab = "f(x)")

# Problema 8. X ~ Beta(2.5, 4)
p1 <- 2.5; p2 <- 4
cat("\n=== Problema 8: Beta(2.5, 4) ===\n")
## 
## === Problema 8: Beta(2.5, 4) ===
cat("a) P(X <= 0.30)        =", r4(pbeta(0.30, p1, p2)), "\n")
## a) P(X <= 0.30)        = 0.3522
cat("b) P(X > 0.60)         =", r4(pbeta(0.60, p1, p2, lower.tail = FALSE)), "\n")
## b) P(X > 0.60)         = 0.13
cat("c) P(0.20 <= X < 0.50) =", r4(pbeta(0.50, p1, p2) - pbeta(0.20, p1, p2)), "\n")
## c) P(0.20 <= X < 0.50) = 0.5723
cat("d) Percentil 75        =", r4(qbeta(0.75, p1, p2)), "\n")
## d) Percentil 75        = 0.5088
cat("e) E[X] =", r4(p1/(p1 + p2)),
    "  V[X] =", r4(p1*p2 / ((p1 + p2)^2 * (p1 + p2 + 1))), "\n")
## e) E[X] = 0.3846   V[X] = 0.0316
curve(dbeta(x, p1, p2), from = 0, to = 1, lwd = 2, col = "steelblue",
      main = "P8: f(x) de Beta(2.5, 4)", ylab = "f(x)")

# Problema 9. X ~ Weibull(k = 2, lambda = 1000)  (k = shape, lambda = scale)
k <- 2; esc <- 1000
cat("\n=== Problema 9: Weibull(k = 2, lambda = 1000) ===\n")
## 
## === Problema 9: Weibull(k = 2, lambda = 1000) ===
cat("a) P(X <= 500)         =", r4(pweibull(500, k, esc)), "\n")
## a) P(X <= 500)         = 0.2212
cat("b) P(X > 1200)         =", r4(pweibull(1200, k, esc, lower.tail = FALSE)), "\n")
## b) P(X > 1200)         = 0.2369
cat("c) P(600 <= X < 1000)  =", r4(pweibull(1000, k, esc) - pweibull(600, k, esc)), "\n")
## c) P(600 <= X < 1000)  = 0.3298
cat("d) Mediana             =", r4(qweibull(0.5, k, esc)), "\n")
## d) Mediana             = 832.5546
cat("e) Percentil 90        =", r4(qweibull(0.90, k, esc)), "\n")
## e) Percentil 90        = 1517.427
curve(dweibull(x, k, esc), from = 0, to = 3000, lwd = 2, col = "steelblue",
      main = "P9: f(x) de Weibull(2, 1000)", ylab = "f(x)")

# ============================================================
# MINICASOS
# ============================================================
# Problema 10. Validación de pedidos: T ~ U(1.5, 4.5) segundos
a <- 1.5; b <- 4.5
cat("\n=== Problema 10: Validación de pedidos, U(1.5, 4.5) ===\n")
## 
## === Problema 10: Validación de pedidos, U(1.5, 4.5) ===
p_menos3 <- punif(3, a, b)
cat("b) P(T < 3)          =", r4(p_menos3), "\n")
## b) P(T < 3)          = 0.5
cat("c) P(2 <= T <= 4)    =", r4(punif(4, a, b) - punif(2, a, b)), "\n")
## c) P(2 <= T <= 4)    = 0.6667
cat("d) 10% más lento desde:", r4(qunif(0.90, a, b)), "s\n")
## d) 10% más lento desde: 4.2 s
cat("e) ¿P(T<3) > 0.45?   ", p_menos3 > 0.45, "\n")
## e) ¿P(T<3) > 0.45?    TRUE
# Problema 11. Empacadora: X ~ N(500, 8^2) gramos
mu <- 500; s <- 8
cat("\n=== Problema 11: Empacadora, N(500, 8^2) ===\n")
## 
## === Problema 11: Empacadora, N(500, 8^2) ===
p_ok <- pnorm(515, mu, s) - pnorm(485, mu, s)
cat("b) Proporción aceptada P(485<=X<=515) =", r4(p_ok), "\n")
## b) Proporción aceptada P(485<=X<=515) = 0.9392
cat("c) P(X > 520)                         =", r4(pnorm(520, mu, s, lower.tail = FALSE)), "\n")
## c) P(X > 520)                         = 0.0062
cat("d) Revisión individual: X <", r4(qnorm(0.02, mu, s)),
    " o X >", r4(qnorm(0.98, mu, s)), "\n")
## d) Revisión individual: X < 483.57  o X > 516.43
cat("e) Bolsas fuera de especificación de 10000:", round(10000 * (1 - p_ok)), "\n")
## e) Bolsas fuera de especificación de 10000: 608
# f) misma media, más variabilidad (ej. s = 12):
p_ok12 <- pnorm(515, mu, 12) - pnorm(485, mu, 12)
cat("f) Con s = 12 la proporción fuera sería", r4(1 - p_ok12),
    "-> centrar no basta, la variabilidad también importa\n")
## f) Con s = 12 la proporción fuera sería 0.2113 -> centrar no basta, la variabilidad también importa
# Problema 12. Prueba estandarizada: X ~ N(70, 10^2)
mu <- 70; s <- 10
cat("\n=== Problema 12: Prueba, N(70, 10^2) ===\n")
## 
## === Problema 12: Prueba, N(70, 10^2) ===
cat("b) P(65 <= X <= 85)          =", r4(pnorm(85, mu, s) - pnorm(65, mu, s)), "\n")
## b) P(65 <= X <= 85)          = 0.6247
cat("c) Mínimo del 10% superior   =", r4(qnorm(0.90, mu, s)), "\n")
## c) Mínimo del 10% superior   = 82.8155
cat("d) Máximo del 15% inferior   =", r4(qnorm(0.15, mu, s)), "\n")
## d) Máximo del 15% inferior   = 59.6357
cat("e) P(X > 90)                 =", r4(pnorm(90, mu, s, lower.tail = FALSE)), "\n")
## e) P(X > 90)                 = 0.0228
cat("f) De 600: reconocimiento =", 600 * 0.10, " acompañamiento =", 600 * 0.15, "\n")
## f) De 600: reconocimiento = 60  acompañamiento = 90
# Problema 13. Servidor: T ~ Exp(lambda = 1/200) horas
lam <- 1/200
cat("\n=== Problema 13: Servidor, Exp(1/200) ===\n")
## 
## === Problema 13: Servidor, Exp(1/200) ===
cat("a) lambda = 1/media =", lam, "por hora\n")
## a) lambda = 1/media = 0.005 por hora
cat("b) P(T > 300)          =", r4(pexp(300, lam, lower.tail = FALSE)), "\n")
## b) P(T > 300)          = 0.2231
cat("c) P(100 < T <= 250)   =", r4(pexp(250, lam) - pexp(100, lam)), "\n")
## c) P(100 < T <= 250)   = 0.32
cat("d) Tiempo con F = 0.20 =", r4(qexp(0.20, lam)), "horas\n")
## d) Tiempo con F = 0.20 = 44.6287 horas
cond <- pexp(250, lam, lower.tail = FALSE) / pexp(150, lam, lower.tail = FALSE)
cat("e) P(T > 250 | T > 150) =", r4(cond),
    " = P(T > 100) =", r4(pexp(100, lam, lower.tail = FALSE)), "\n")
## e) P(T > 250 | T > 150) = 0.6065  = P(T > 100) = 0.6065
cat("f) Propiedad de falta de memoria\n")
## f) Propiedad de falta de memoria
# Problema 14. Costos: X ~ Lognormal(1.2, 0.5^2) millones
m <- 1.2; sl <- 0.5
cat("\n=== Problema 14: Costos, Lognormal(1.2, 0.5^2) ===\n")
## 
## === Problema 14: Costos, Lognormal(1.2, 0.5^2) ===
cat("b) P(X < 3)          =", r4(plnorm(3, m, sl)), "\n")
## b) P(X < 3)          = 0.4197
cat("c) P(X > 5)          =", r4(plnorm(5, m, sl, lower.tail = FALSE)), "\n")
## c) P(X > 5)          = 0.2064
cat("d) Mediana           =", r4(qlnorm(0.5, m, sl)), "millones\n")
## d) Mediana           = 3.3201 millones
cat("e) Superado por 5%   =", r4(qlnorm(0.95, m, sl)), "millones\n")
## e) Superado por 5%   = 7.5566 millones
cat("f) Media =", r4(exp(m + sl^2/2)), " vs mediana =", r4(exp(m)),
    "-> la media es mayor por la cola derecha (reparaciones muy costosas)\n")
## f) Media = 3.7622  vs mediana = 3.3201 -> la media es mayor por la cola derecha (reparaciones muy costosas)
# Problema 15. Soporte técnico: T ~ Gamma(alpha = 4, tasa 0.20) minutos
al <- 4; lam <- 0.20
cat("\n=== Problema 15: Soporte, Gamma(4, tasa 0.20) ===\n")
## 
## === Problema 15: Soporte, Gamma(4, tasa 0.20) ===
p30 <- pgamma(30, shape = al, rate = lam)
cat("b) Tiempo promedio E[T] =", al/lam, "min\n")
## b) Tiempo promedio E[T] = 20 min
cat("c) P(T < 30)            =", r4(p30), "\n")
## c) P(T < 30)            = 0.8488
cat("d) P(15 <= T <= 25)     =", r4(pgamma(25, shape = al, rate = lam) - pgamma(15, shape = al, rate = lam)), "\n")
## d) P(15 <= T <= 25)     = 0.3822
cat("e) Percentil 90         =", r4(qgamma(0.90, shape = al, rate = lam)), "min\n")
## e) Percentil 90         = 33.4039 min
cat("f) ¿P(T<30) >= 0.80?   ", p30 >= 0.80, "\n")
## f) ¿P(T<30) >= 0.80?    TRUE
# Problema 16. Utilización de planta: X ~ Beta(5, 2)
p1 <- 5; p2 <- 2
cat("\n=== Problema 16: Utilización, Beta(5, 2) ===\n")
## 
## === Problema 16: Utilización, Beta(5, 2) ===
p_alta <- pbeta(0.80, p1, p2, lower.tail = FALSE)
cat("b) Utilización promedio E[X] =", r4(p1/(p1 + p2)), "\n")
## b) Utilización promedio E[X] = 0.7143
cat("c) P(X > 0.80)               =", r4(p_alta), "\n")
## c) P(X > 0.80)               = 0.3446
cat("d) P(X < 0.50)               =", r4(pbeta(0.50, p1, p2)), "\n")
## d) P(X < 0.50)               = 0.1094
cat("e) Nivel superado por 10%    =", r4(qbeta(0.90, p1, p2)), "\n")
## e) Nivel superado por 10%    = 0.9074
cat("f) Días esperados con X > 0.80 en 250:", r4(250 * p_alta), "\n")
## f) Días esperados con X > 0.80 en 250: 86.16
# Problema 17. Rodamientos: T ~ Weibull(k = 2.5, lambda = 5000) horas
k <- 2.5; esc <- 5000
cat("\n=== Problema 17: Rodamientos, Weibull(2.5, 5000) ===\n")
## 
## === Problema 17: Rodamientos, Weibull(2.5, 5000) ===
cat("b) P(T < 3000)           =", r4(pweibull(3000, k, esc)), "\n")
## b) P(T < 3000)           = 0.2434
cat("c) P(T > 6000)           =", r4(pweibull(6000, k, esc, lower.tail = FALSE)), "\n")
## c) P(T > 6000)           = 0.2065
cat("d) Tiempo con F = 0.10   =", r4(qweibull(0.10, k, esc)), "horas\n")
## d) Tiempo con F = 0.10   = 2032.55 horas
cat("e) Mediana               =", r4(qweibull(0.50, k, esc)), "horas\n")
## e) Mediana               = 4318.175 horas
cat("f) k = 2.5 > 1 -> la tasa de falla CRECE con el tiempo (desgaste)\n")
## f) k = 2.5 > 1 -> la tasa de falla CRECE con el tiempo (desgaste)
cat("g) Reemplazo preventivo en o antes de ~", floor(qweibull(0.10, k, esc)), "horas\n")
## g) Reemplazo preventivo en o antes de ~ 2032 horas