"NICOL JULIETH DIAZ BENITEZ"
## [1] "NICOL JULIETH DIAZ BENITEZ"
# PROBLEMA 1 : Uniforme U(20, 50)
a <- 20
b <- 50
# 1. Función de densidad: f(x) = 1/(b-a) para a <= x <= b
cat("\n=========== PROBLEMA 1 (Uniforme) ===========\n")
##
## =========== PROBLEMA 1 (Uniforme) ===========
cat("1. f(x) = 1/(50-20) =", 1/(b - a), "para 20 <= x <= 50, y 0 en otro caso\n")
## 1. f(x) = 1/(50-20) = 0.03333333 para 20 <= x <= 50, y 0 en otro caso
# 2. P(X <= 30)
u2 <- punif(30, a, b)
# 3. P(X > 42) = 1 - P(X <= 42)
u3 <- 1 - punif(42, a, b)
# 4. P(25 <= X < 40) = F(40) - F(25) (en continuas los extremos no importan)
u4 <- punif(40, a, b) - punif(25, a, b)
# 5. Valor x tal que P(X <= x) = 0.80
u5 <- qunif(0.80, a, b)
# 6. Esperanza y varianza
EX <- (a + b) / 2
VX <- (b - a)^2 / 12
resumen <- data.frame(
Pregunta = c("2. P(X <= 30)", "3. P(X > 42)", "4. P(25 <= X < 40)",
"5. x tal que P(X <= x) = 0.80", "6. E[X]", "6. V[X]"),
Resultado = round(c(u2, u3, u4, u5, EX, VX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(X <= 30) 0.3333
## 2 3. P(X > 42) 0.2667
## 3 4. P(25 <= X < 40) 0.5000
## 4 5. x tal que P(X <= x) = 0.80 44.0000
## 5 6. E[X] 35.0000
## 6 6. V[X] 75.0000
# 7. Gráficas: densidad f(x) y distribución F(x)
par(mfrow = c(1, 2))
x <- seq(10, 60, length.out = 1000)
plot(x, dunif(x, a, b), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): U(20, 50)",
xlab = "x", ylab = "f(x)", ylim = c(0, 0.05))
polygon(c(a, a, b, b), c(0, 1/(b - a), 1/(b - a), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
plot(x, punif(x, a, b), type = "l", lwd = 3, col = "darkorange",
main = "Distribución F(x): U(20, 50)",
xlab = "x", ylab = "F(x)")

par(mfrow = c(1, 1))
# PROBLEMA 2 : Normal N(100, 15^2)
mu <- 100
sigma <- 15
# 1. P(X <= 85)
n1 <- pnorm(85, mu, sigma)
# 2. P(X > 120)
n2 <- 1 - pnorm(120, mu, sigma)
# Equivalente: pnorm(120, mu, sigma, lower.tail = FALSE)
# 3. P(90 <= X < 115)
n3 <- pnorm(115, mu, sigma) - pnorm(90, mu, sigma)
# 4. Valor x tal que P(X <= x) = 0.95
n4 <- qnorm(0.95, mu, sigma)
# 5. Intervalo central del 95%: entre los cuantiles 0.025 y 0.975
lim_inf <- qnorm(0.025, mu, sigma)
lim_sup <- qnorm(0.975, mu, sigma)
cat("\n=========== PROBLEMA 2 (Normal) ===========\n")
##
## =========== PROBLEMA 2 (Normal) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 85)", "2. P(X > 120)", "3. P(90 <= X < 115)",
"4. x tal que P(X <= x) = 0.95"),
Resultado = round(c(n1, n2, n3, n4), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 85) 0.1587
## 2 2. P(X > 120) 0.0912
## 3 3. P(90 <= X < 115) 0.5889
## 4 4. x tal que P(X <= x) = 0.95 124.6728
cat("5. Intervalo central del 95%: [", round(lim_inf, 2), ",", round(lim_sup, 2), "]\n")
## 5. Intervalo central del 95%: [ 70.6 , 129.4 ]
# 6. Gráfica de f(x) con el intervalo central sombreado
x <- seq(40, 160, length.out = 1000)
plot(x, dnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Normal(100, 15^2)",
xlab = "x", ylab = "f(x)")
xs <- seq(lim_inf, lim_sup, length.out = 500)
polygon(c(lim_inf, xs, lim_sup), c(0, dnorm(xs, mu, sigma), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
abline(v = mu, lty = 2, col = "gray40")
legend("topright", legend = "Intervalo central 95%",
fill = rgb(0.27, 0.51, 0.71, 0.3), bty = "n")

# PROBLEMA 3 : Normal N(72, 8^2)
mu <- 72
sigma <- 8
# 1. P(X < 60)
p1 <- pnorm(60, mu, sigma)
# 2. P(X >= 80)
p2 <- 1 - pnorm(80, mu, sigma)
# Equivalente: pnorm(80, mu, sigma, lower.tail = FALSE)
# 3. P(68 <= X <= 76)
p3 <- pnorm(76, mu, sigma) - pnorm(68, mu, sigma)
# 4. Percentil 90: x tal que P(X <= x) = 0.90
p4 <- qnorm(0.90, mu, sigma)
# 5. Valor que deja por encima el 5%: P(X > x) = 0.05, es decir P(X <= x) = 0.95
p5 <- qnorm(0.95, mu, sigma)
# Equivalente: qnorm(0.05, mu, sigma, lower.tail = FALSE)
cat("\n=========== PROBLEMA 3 (Normal) ===========\n")
##
## =========== PROBLEMA 3 (Normal) ===========
resumen <- data.frame(
Pregunta = c("1. P(X < 60)",
"2. P(X >= 80)",
"3. P(68 <= X <= 76)",
"4. Percentil 90",
"5. x que deja 5% por encima"),
Resultado = round(c(p1, p2, p3, p4, p5), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X < 60) 0.0668
## 2 2. P(X >= 80) 0.1587
## 3 3. P(68 <= X <= 76) 0.3829
## 4 4. Percentil 90 82.2524
## 5 5. x que deja 5% por encima 85.1588
# 6. Gráfica de f(x) identificando la media
x <- seq(40, 104, length.out = 1000)
plot(x, dnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Normal(72, 8^2)",
xlab = "x", ylab = "f(x)")
# Línea vertical en la media y punto sobre la curva
abline(v = mu, lty = 2, lwd = 2, col = "red")
points(mu, dnorm(mu, mu, sigma), pch = 19, col = "red", cex = 1.5)
text(mu, dnorm(mu, mu, sigma), labels = expression(mu == 72),
pos = 4, col = "red")

# PROBLEMA 4 : Normal N(500, 40^2)
mu <- 500
sigma <- 40
# 1. P(X <= 450)
q1 <- pnorm(450, mu, sigma)
# 2. P(X > 575)
q2 <- 1 - pnorm(575, mu, sigma)
# Equivalente: pnorm(575, mu, sigma, lower.tail = FALSE)
# 3. P(480 < X < 540)
q3 <- pnorm(540, mu, sigma) - pnorm(480, mu, sigma)
# 4. Valores que delimitan el 80% central: cuantiles 0.10 y 0.90
lim_inf <- qnorm(0.10, mu, sigma)
lim_sup <- qnorm(0.90, mu, sigma)
# 5. Percentil 99
q5 <- qnorm(0.99, mu, sigma)
cat("\n=========== PROBLEMA 4 (Normal) ===========\n")
##
## =========== PROBLEMA 4 (Normal) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 450)",
"2. P(X > 575)",
"3. P(480 < X < 540)",
"5. Percentil 99"),
Resultado = round(c(q1, q2, q3, q5), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 450) 0.1056
## 2 2. P(X > 575) 0.0304
## 3 3. P(480 < X < 540) 0.5328
## 4 5. Percentil 99 593.0539
cat("4. 80% central: [", round(lim_inf, 2), ",", round(lim_sup, 2), "]\n")
## 4. 80% central: [ 448.74 , 551.26 ]
# 6. Gráfica de f(x) con el 80% central sombreado
x <- seq(360, 640, length.out = 1000)
plot(x, dnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Normal(500, 40^2)",
xlab = "x", ylab = "f(x)")
xs <- seq(lim_inf, lim_sup, length.out = 500)
polygon(c(lim_inf, xs, lim_sup), c(0, dnorm(xs, mu, sigma), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
abline(v = mu, lty = 2, col = "red")
legend("topright", legend = "80% central",
fill = rgb(0.27, 0.51, 0.71, 0.3), bty = "n")

# PROBLEMA 5 : Exponencial, lambda = 0.25
lambda <- 0.25
# 1. P(X <= 2)
x1 <- pexp(2, rate = lambda)
# 2. P(X > 5)
x2 <- 1 - pexp(5, rate = lambda)
# Equivalente: pexp(5, rate = lambda, lower.tail = FALSE)
# 3. P(2 < X <= 6)
x3 <- pexp(6, rate = lambda) - pexp(2, rate = lambda)
# 4. Valor x tal que P(X <= x) = 0.90
x4 <- qexp(0.90, rate = lambda)
# 5. Esperanza y varianza
EX <- 1 / lambda
VX <- 1 / lambda^2
cat("\n=========== PROBLEMA 5 (Exponencial) ===========\n")
##
## =========== PROBLEMA 5 (Exponencial) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 2)",
"2. P(X > 5)",
"3. P(2 < X <= 6)",
"4. x tal que P(X <= x) = 0.90",
"5. E[X]",
"5. V[X]"),
Resultado = round(c(x1, x2, x3, x4, EX, VX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 2) 0.3935
## 2 2. P(X > 5) 0.2865
## 3 3. P(2 < X <= 6) 0.3834
## 4 4. x tal que P(X <= x) = 0.90 9.2103
## 5 5. E[X] 4.0000
## 6 5. V[X] 16.0000
# 6. Gráfica de f(x)
x <- seq(0, 30, length.out = 1000)
plot(x, dexp(x, rate = lambda), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Exponencial (lambda = 0.25)",
xlab = "x", ylab = "f(x)")
polygon(c(0, x, 30), c(0, dexp(x, rate = lambda), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
abline(v = EX, lty = 2, col = "red")
legend("topright", legend = paste("E[X] =", EX), lty = 2, col = "red", bty = "n")

# PROBLEMA 6 : Lognormal(3.5, 0.40^2)
mu <- 3.5
sigma <- 0.40
# 1. P(X <= 25)
l1 <- plnorm(25, meanlog = mu, sdlog = sigma)
# 2. P(X > 50)
l2 <- 1 - plnorm(50, meanlog = mu, sdlog = sigma)
# Equivalente: plnorm(50, mu, sigma, lower.tail = FALSE)
# 3. P(20 <= X < 40)
l3 <- plnorm(40, mu, sigma) - plnorm(20, mu, sigma)
# 4. Mediana: x tal que P(X <= x) = 0.50 (= e^mu)
l4 <- qlnorm(0.50, mu, sigma)
# 5. Percentil 90
l5 <- qlnorm(0.90, mu, sigma)
# 6. Esperanza y varianza
EX <- exp(mu + sigma^2 / 2)
VX <- (exp(sigma^2) - 1) * exp(2 * mu + sigma^2)
cat("\n=========== PROBLEMA 6 (Lognormal) ===========\n")
##
## =========== PROBLEMA 6 (Lognormal) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 25)",
"2. P(X > 50)",
"3. P(20 <= X < 40)",
"4. Mediana",
"5. Percentil 90",
"6. E[X]",
"6. V[X]"),
Resultado = round(c(l1, l2, l3, l4, l5, EX, VX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 25) 0.2411
## 2 2. P(X > 50) 0.1515
## 3 3. P(20 <= X < 40) 0.5779
## 4 4. Mediana 33.1155
## 5 5. Percentil 90 55.2916
## 6 6. E[X] 35.8735
## 7 6. V[X] 223.2930
# 7. Gráfica de f(x) con la mediana y la media
x <- seq(0, 150, length.out = 1000)
plot(x, dlnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Lognormal(3.5, 0.40^2)",
xlab = "x", ylab = "f(x)")
abline(v = l4, lty = 2, col = "red")
abline(v = EX, lty = 2, col = "darkgreen")
legend("topright",
legend = c(paste("Mediana =", round(l4, 2)), paste("Media =", round(EX, 2))),
lty = 2, col = c("red", "darkgreen"), bty = "n")

# PROBLEMA 7 : Gamma(alpha = 3, lambda = 0.5)
alpha <- 3
lambda <- 0.5
# 1. P(X <= 4)
g1 <- pgamma(4, shape = alpha, rate = lambda)
# 2. P(X > 8)
g2 <- 1 - pgamma(8, shape = alpha, rate = lambda)
# Equivalente: pgamma(8, alpha, lambda, lower.tail = FALSE)
# 3. P(3 <= X < 7)
g3 <- pgamma(7, shape = alpha, rate = lambda) - pgamma(3, shape = alpha, rate = lambda)
# 4. Percentil 95
g4 <- qgamma(0.95, shape = alpha, rate = lambda)
# 5. Esperanza y varianza
EX <- alpha / lambda
VX <- alpha / lambda^2
cat("\n=========== PROBLEMA 7 (Gamma) ===========\n")
##
## =========== PROBLEMA 7 (Gamma) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 4)",
"2. P(X > 8)",
"3. P(3 <= X < 7)",
"4. Percentil 95",
"5. E[X]",
"5. V[X]"),
Resultado = round(c(g1, g2, g3, g4, EX, VX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 4) 0.3233
## 2 2. P(X > 8) 0.2381
## 3 3. P(3 <= X < 7) 0.4880
## 4 4. Percentil 95 12.5916
## 5 5. E[X] 6.0000
## 6 5. V[X] 12.0000
# 6. Gráfica de f(x) con la media
x <- seq(0, 25, length.out = 1000)
plot(x, dgamma(x, shape = alpha, rate = lambda), type = "l", lwd = 3,
col = "steelblue",
main = "Densidad f(x): Gamma(alpha = 3, lambda = 0.5)",
xlab = "x", ylab = "f(x)")
abline(v = EX, lty = 2, col = "red")
legend("topright", legend = paste("E[X] =", EX), lty = 2, col = "red", bty = "n")

# PROBLEMA 8 : Beta(2.5, 4)
alpha <- 2.5
beta <- 4
# 1. P(X <= 0.30)
b1 <- pbeta(0.30, shape1 = alpha, shape2 = beta)
# 2. P(X > 0.60)
b2 <- 1 - pbeta(0.60, shape1 = alpha, shape2 = beta)
# Equivalente: pbeta(0.60, alpha, beta, lower.tail = FALSE)
# 3. P(0.20 <= X < 0.50)
b3 <- pbeta(0.50, alpha, beta) - pbeta(0.20, alpha, beta)
# 4. Percentil 75
b4 <- qbeta(0.75, alpha, beta)
# 5. Esperanza y varianza
EX <- alpha / (alpha + beta)
VX <- (alpha * beta) / ((alpha + beta)^2 * (alpha + beta + 1))
cat("\n=========== PROBLEMA 8 (Beta) ===========\n")
##
## =========== PROBLEMA 8 (Beta) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 0.30)",
"2. P(X > 0.60)",
"3. P(0.20 <= X < 0.50)",
"4. Percentil 75",
"5. E[X]",
"5. V[X]"),
Resultado = round(c(b1, b2, b3, b4, EX, VX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 0.30) 0.3522
## 2 2. P(X > 0.60) 0.1300
## 3 3. P(0.20 <= X < 0.50) 0.5723
## 4 4. Percentil 75 0.5088
## 5 5. E[X] 0.3846
## 6 5. V[X] 0.0316
# 6. Gráfica de f(x) con la media
x <- seq(0, 1, length.out = 1000)
plot(x, dbeta(x, alpha, beta), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Beta(2.5, 4)",
xlab = "x", ylab = "f(x)")
abline(v = EX, lty = 2, col = "red")
legend("topright", legend = paste("E[X] =", round(EX, 4)),
lty = 2, col = "red", bty = "n")

# PROBLEMA 9 : Weibull(k = 2, lambda = 1000)
k <- 2
lambda <- 1000 # parámetro de escala
# 1. P(X <= 500)
w1 <- pweibull(500, shape = k, scale = lambda)
# 2. P(X > 1200)
w2 <- 1 - pweibull(1200, shape = k, scale = lambda)
# Equivalente: pweibull(1200, k, lambda, lower.tail = FALSE)
# 3. P(600 <= X < 1000)
w3 <- pweibull(1000, k, lambda) - pweibull(600, k, lambda)
# 4. Mediana
w4 <- qweibull(0.50, shape = k, scale = lambda)
# 5. Percentil 90
w5 <- qweibull(0.90, shape = k, scale = lambda)
cat("\n=========== PROBLEMA 9 (Weibull) ===========\n")
##
## =========== PROBLEMA 9 (Weibull) ===========
resumen <- data.frame(
Pregunta = c("1. P(X <= 500)",
"2. P(X > 1200)",
"3. P(600 <= X < 1000)",
"4. Mediana",
"5. Percentil 90"),
Resultado = round(c(w1, w2, w3, w4, w5), 4)
)
print(resumen)
## Pregunta Resultado
## 1 1. P(X <= 500) 0.2212
## 2 2. P(X > 1200) 0.2369
## 3 3. P(600 <= X < 1000) 0.3298
## 4 4. Mediana 832.5546
## 5 5. Percentil 90 1517.4271
# 6. Gráfica de f(x) con la mediana
x <- seq(0, 3000, length.out = 1000)
plot(x, dweibull(x, shape = k, scale = lambda), type = "l", lwd = 3,
col = "steelblue",
main = "Densidad f(x): Weibull(k = 2, lambda = 1000)",
xlab = "x", ylab = "f(x)")
abline(v = w4, lty = 2, col = "red")
legend("topright", legend = paste("Mediana =", round(w4, 2)),
lty = 2, col = "red", bty = "n")

# PROBLEMA 10 : Uniforme U(1.5, 4.5)
a <- 1.5
b <- 4.5
# 1. Modelo y parámetros
cat("\n=========== PROBLEMA 10 (Uniforme) ===========\n")
##
## =========== PROBLEMA 10 (Uniforme) ===========
cat("1. Modelo: T ~ U(a = 1.5, b = 4.5)\n")
## 1. Modelo: T ~ U(a = 1.5, b = 4.5)
cat(" f(t) =", round(1/(b - a), 4), "para 1.5 <= t <= 4.5\n")
## f(t) = 0.3333 para 1.5 <= t <= 4.5
cat(" E[T] =", (a + b) / 2, " V[T] =", round((b - a)^2 / 12, 4), "\n")
## E[T] = 3 V[T] = 0.75
# 2. P(T < 3)
t2 <- punif(3, a, b)
# 3. P(2 < T < 4)
t3 <- punif(4, a, b) - punif(2, a, b)
# 4. Tiempo a partir del cual está el 10% más lento: P(T > t) = 0.10 -> P(T <= t) = 0.90
t4 <- qunif(0.90, a, b)
# 5. Criterio de desempeño: P(T < 3) > 0.45
cumple <- t2 > 0.45
resumen <- data.frame(
Pregunta = c("2. P(T < 3)",
"3. P(2 < T < 4)",
"4. Tiempo del 10% más lento (percentil 90)"),
Resultado = round(c(t2, t3, t4), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(T < 3) 0.5000
## 2 3. P(2 < T < 4) 0.6667
## 3 4. Tiempo del 10% más lento (percentil 90) 4.2000
cat("\n5. Criterio: P(T < 3) > 0.45\n")
##
## 5. Criterio: P(T < 3) > 0.45
cat(" P(T < 3) =", round(t2, 4), "-> ¿Se cumple?", cumple, "\n")
## P(T < 3) = 0.5 -> ¿Se cumple? TRUE
# Gráfica de f(t) con la región T < 3 sombreada
t <- seq(1, 5, length.out = 1000)
plot(t, dunif(t, a, b), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(t): U(1.5, 4.5)",
xlab = "Tiempo (segundos)", ylab = "f(t)", ylim = c(0, 0.5))
polygon(c(a, a, 3, 3), c(0, 1/(b - a), 1/(b - a), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
abline(v = t4, lty = 2, col = "red")
legend("topright",
legend = c("P(T < 3)", paste("Percentil 90 =", round(t4, 2))),
fill = c(rgb(0.27, 0.51, 0.71, 0.3), NA),
border = c("black", NA), lty = c(NA, 2),
col = c(NA, "red"), bty = "n")

# PROBLEMA 11 (continuas): Normal N(500, 8^2)
mu <- 500
sigma <- 8
# 1. Modelo
cat("\n=========== PROBLEMA 11 (Normal) ===========\n")
##
## =========== PROBLEMA 11 (Normal) ===========
cat("1. Modelo: X ~ N(mu = 500, sigma = 8), es decir N(500, 64)\n\n")
## 1. Modelo: X ~ N(mu = 500, sigma = 8), es decir N(500, 64)
# 2. Proporción dentro del intervalo de aceptación [485, 515]
r2 <- pnorm(515, mu, sigma) - pnorm(485, mu, sigma)
# 3. P(X > 520)
r3 <- 1 - pnorm(520, mu, sigma)
# Equivalente: pnorm(520, mu, sigma, lower.tail = FALSE)
# 4. Pesos que delimitan la región de revisión: cuantiles 0.02 y 0.98
w_inf <- qnorm(0.02, mu, sigma)
w_sup <- qnorm(0.98, mu, sigma)
# 5. Bolsas fuera del intervalo de aceptación entre 10000
fuera <- 1 - r2
r5 <- 10000 * fuera
resumen <- data.frame(
Pregunta = c("2. P(485 <= X <= 515)",
"3. P(X > 520)",
"5. P(fuera de [485, 515])",
"5. Bolsas esperadas fuera (de 10000)"),
Resultado = round(c(r2, r3, fuera, r5), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(485 <= X <= 515) 0.9392
## 2 3. P(X > 520) 0.0062
## 3 5. P(fuera de [485, 515]) 0.0608
## 4 5. Bolsas esperadas fuera (de 10000) 607.9272
cat("4. Región de revisión: X <", round(w_inf, 2), "o X >", round(w_sup, 2), "\n")
## 4. Región de revisión: X < 483.57 o X > 516.43
# 6. Gráfica con zonas de rechazo y de revisión
x <- seq(460, 540, length.out = 1000)
plot(x, dnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Peso de bolsas: Normal(500, 8^2)",
xlab = "Peso (gramos)", ylab = "f(x)")
# Zona fuera de aceptación (rojo)
xl <- seq(460, 485, length.out = 200)
xr <- seq(515, 540, length.out = 200)
polygon(c(460, xl, 485), c(0, dnorm(xl, mu, sigma), 0), col = rgb(1, 0, 0, 0.3), border = NA)
polygon(c(515, xr, 540), c(0, dnorm(xr, mu, sigma), 0), col = rgb(1, 0, 0, 0.3), border = NA)
abline(v = c(485, 515), lty = 2, col = "red")
abline(v = c(w_inf, w_sup), lty = 3, col = "darkgreen")
abline(v = mu, lty = 1, col = "gray40")
legend("topright",
legend = c("Fuera de aceptación", "Límites de revisión (2% - 2%)"),
fill = c(rgb(1, 0, 0, 0.3), NA), border = c("black", NA),
lty = c(NA, 3), col = c(NA, "darkgreen"), bty = "n")

# PROBLEMA 12 : Normal N(70, 10^2)
mu <- 70
sigma <- 10
cat("\n=========== PROBLEMA 12 (Normal) ===========\n")
##
## =========== PROBLEMA 12 (Normal) ===========
cat("1. Modelo: X ~ N(mu = 70, sigma = 10), es decir N(70, 100)\n\n")
## 1. Modelo: X ~ N(mu = 70, sigma = 10), es decir N(70, 100)
# 2. P(65 <= X <= 85)
s2 <- pnorm(85, mu, sigma) - pnorm(65, mu, sigma)
# 3. Puntaje mínimo del 10% superior: P(X >= x) = 0.10 -> P(X <= x) = 0.90
s3 <- qnorm(0.90, mu, sigma)
# 4. Puntaje máximo del 15% inferior: P(X <= x) = 0.15
s4 <- qnorm(0.15, mu, sigma)
# 5. P(X > 90)
s5 <- 1 - pnorm(90, mu, sigma)
# Equivalente: pnorm(90, mu, sigma, lower.tail = FALSE)
# 6. Estudiantes esperados entre 600
N <- 600
reconocidos <- N * 0.10
acompanamiento <- N * 0.15
resumen <- data.frame(
Pregunta = c("2. P(65 <= X <= 85)",
"3. Puntaje mínimo del 10% superior",
"4. Puntaje máximo del 15% inferior",
"5. P(X > 90)"),
Resultado = round(c(s2, s3, s4, s5), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(65 <= X <= 85) 0.6247
## 2 3. Puntaje mínimo del 10% superior 82.8155
## 3 4. Puntaje máximo del 15% inferior 59.6357
## 4 5. P(X > 90) 0.0228
cat("\n6. De", N, "estudiantes:\n")
##
## 6. De 600 estudiantes:
cat(" Reconocimiento (10% superior):", reconocidos, "estudiantes\n")
## Reconocimiento (10% superior): 60 estudiantes
cat(" Acompañamiento (15% inferior):", acompanamiento, "estudiantes\n")
## Acompañamiento (15% inferior): 90 estudiantes
# Gráfica con las dos regiones sombreadas
x <- seq(30, 110, length.out = 1000)
plot(x, dnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Calificaciones: Normal(70, 10^2)",
xlab = "Puntaje", ylab = "f(x)")
xi <- seq(30, s4, length.out = 200)
xs <- seq(s3, 110, length.out = 200)
polygon(c(30, xi, s4), c(0, dnorm(xi, mu, sigma), 0), col = rgb(1, 0.5, 0, 0.4), border = NA)
polygon(c(s3, xs, 110), c(0, dnorm(xs, mu, sigma), 0), col = rgb(0, 0.6, 0, 0.4), border = NA)
abline(v = mu, lty = 2, col = "gray40")
legend("topright",
legend = c("15% inferior (acompañamiento)", "10% superior (reconocimiento)"),
fill = c(rgb(1, 0.5, 0, 0.4), rgb(0, 0.6, 0, 0.4)), bty = "n")

# PROBLEMA 13 : Exponencial, media = 200 horas
media <- 200
lambda <- 1 / media # 0.005
cat("\n=========== PROBLEMA 13 (Exponencial) ===========\n")
##
## =========== PROBLEMA 13 (Exponencial) ===========
cat("1. Modelo: T ~ Exp(lambda = 1/200 =", lambda, ")\n")
## 1. Modelo: T ~ Exp(lambda = 1/200 = 0.005 )
cat(" E[T] =", 1/lambda, " V[T] =", 1/lambda^2, "\n\n")
## E[T] = 200 V[T] = 40000
# 2. P(T > 300)
e2 <- 1 - pexp(300, rate = lambda)
# Equivalente: pexp(300, rate = lambda, lower.tail = FALSE)
# 3. P(100 < T < 250)
e3 <- pexp(250, rate = lambda) - pexp(100, rate = lambda)
# 4. Tiempo en que la probabilidad acumulada alcanza 20%: P(T <= t) = 0.20
e4 <- qexp(0.20, rate = lambda)
# 5. Propiedad de falta de memoria: P(T > 250 | T > 150) = P(T > 100)
e5_cond <- (1 - pexp(250, rate = lambda)) / (1 - pexp(150, rate = lambda))
e5_dir <- 1 - pexp(100, rate = lambda)
resumen <- data.frame(
Pregunta = c("2. P(T > 300)",
"3. P(100 < T < 250)",
"4. t tal que P(T <= t) = 0.20 (horas)",
"5. P(T > 250 | T > 150)",
"5. P(T > 100) (debe coincidir)"),
Resultado = round(c(e2, e3, e4, e5_cond, e5_dir), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(T > 300) 0.2231
## 2 3. P(100 < T < 250) 0.3200
## 3 4. t tal que P(T <= t) = 0.20 (horas) 44.6287
## 4 5. P(T > 250 | T > 150) 0.6065
## 5 5. P(T > 100) (debe coincidir) 0.6065
# Gráfica de f(t) con el tiempo de mantenimiento
t <- seq(0, 1000, length.out = 1000)
plot(t, dexp(t, rate = lambda), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(t): Exponencial (media = 200 h)",
xlab = "Horas", ylab = "f(t)")
ts <- seq(0, e4, length.out = 200)
polygon(c(0, ts, e4), c(0, dexp(ts, rate = lambda), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
abline(v = e4, lty = 2, col = "red")
legend("topright", legend = paste("Mantenimiento en t =", round(e4, 2), "h"),
lty = 2, col = "red", bty = "n")

# PROBLEMA 14 : Lognormal(1.2, 0.5^2)
mu <- 1.2
sigma <- 0.5
cat("\n=========== PROBLEMA 14 (Lognormal) ===========\n")
##
## =========== PROBLEMA 14 (Lognormal) ===========
cat("1. Modelo: X ~ Lognormal(meanlog = 1.2, sdlog = 0.5)\n\n")
## 1. Modelo: X ~ Lognormal(meanlog = 1.2, sdlog = 0.5)
# 2. P(X < 3)
c2 <- plnorm(3, meanlog = mu, sdlog = sigma)
# 3. P(X > 5)
c3 <- 1 - plnorm(5, meanlog = mu, sdlog = sigma)
# Equivalente: plnorm(5, mu, sigma, lower.tail = FALSE)
# 4. Costo mediano
c4 <- qlnorm(0.50, meanlog = mu, sdlog = sigma)
# 5. Valor superado solo por el 5%: P(X > x) = 0.05 -> P(X <= x) = 0.95
c5 <- qlnorm(0.95, meanlog = mu, sdlog = sigma)
# 6. Media y mediana
EX <- exp(mu + sigma^2 / 2)
VX <- (exp(sigma^2) - 1) * exp(2 * mu + sigma^2)
resumen <- data.frame(
Pregunta = c("2. P(X < 3)",
"3. P(X > 5)",
"4. Costo mediano (millones)",
"5. Valor superado solo por el 5% (millones)",
"6. Media E[X] (millones)",
"6. V[X]"),
Resultado = round(c(c2, c3, c4, c5, EX, VX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(X < 3) 0.4197
## 2 3. P(X > 5) 0.2064
## 3 4. Costo mediano (millones) 3.3201
## 4 5. Valor superado solo por el 5% (millones) 7.5566
## 5 6. Media E[X] (millones) 3.7622
## 6 6. V[X] 4.0201
# Gráfica de f(x) con mediana y media
x <- seq(0, 20, length.out = 1000)
plot(x, dlnorm(x, mu, sigma), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Lognormal(1.2, 0.5^2)",
xlab = "Costo (millones de pesos)", ylab = "f(x)")
abline(v = c4, lty = 2, col = "red")
abline(v = EX, lty = 2, col = "darkgreen")
legend("topright",
legend = c(paste("Mediana =", round(c4, 2)), paste("Media =", round(EX, 2))),
lty = 2, col = c("red", "darkgreen"), bty = "n")

# PROBLEMA 15 : Gamma(alpha = 4, lambda = 0.20)
alpha <- 4
lambda <- 0.20
cat("\n=========== PROBLEMA 15 (Gamma) ===========\n")
##
## =========== PROBLEMA 15 (Gamma) ===========
cat("1. Modelo: T ~ Gamma(alpha = 4, lambda = 0.20)\n")
## 1. Modelo: T ~ Gamma(alpha = 4, lambda = 0.20)
cat(" V[T] =", alpha / lambda^2, "\n\n")
## V[T] = 100
# 2. Tiempo promedio esperado
EX <- alpha / lambda
# 3. P(T < 30)
g3 <- pgamma(30, shape = alpha, rate = lambda)
# 4. P(15 < T < 25)
g4 <- pgamma(25, shape = alpha, rate = lambda) - pgamma(15, shape = alpha, rate = lambda)
# 5. Tiempo no superado por el 90%: P(T <= t) = 0.90
g5 <- qgamma(0.90, shape = alpha, rate = lambda)
# 6. Evaluación de la promesa: P(T < 30) >= 0.80
cumple <- g3 >= 0.80
resumen <- data.frame(
Pregunta = c("2. E[T] (minutos)",
"3. P(T < 30)",
"4. P(15 < T < 25)",
"5. Percentil 90 (minutos)"),
Resultado = round(c(EX, g3, g4, g5), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. E[T] (minutos) 20.0000
## 2 3. P(T < 30) 0.8488
## 3 4. P(15 < T < 25) 0.3822
## 4 5. Percentil 90 (minutos) 33.4039
cat("\n6. Meta: P(T < 30) >= 0.80\n")
##
## 6. Meta: P(T < 30) >= 0.80
cat(" P(T < 30) =", round(g3, 4), "-> ¿Se cumple?", cumple, "\n")
## P(T < 30) = 0.8488 -> ¿Se cumple? TRUE
# Gráfica de f(t) con la región T < 30 sombreada
t <- seq(0, 70, length.out = 1000)
plot(t, dgamma(t, shape = alpha, rate = lambda), type = "l", lwd = 3,
col = "steelblue",
main = "Densidad f(t): Gamma(alpha = 4, lambda = 0.20)",
xlab = "Minutos", ylab = "f(t)")
ts <- seq(0, 30, length.out = 300)
polygon(c(0, ts, 30), c(0, dgamma(ts, alpha, lambda), 0),
col = rgb(0.27, 0.51, 0.71, 0.3), border = NA)
abline(v = EX, lty = 2, col = "red")
legend("topright", legend = c("P(T < 30)", paste("E[T] =", EX)),
fill = c(rgb(0.27, 0.51, 0.71, 0.3), NA), border = c("black", NA),
lty = c(NA, 2), col = c(NA, "red"), bty = "n")

# PROBLEMA 16 (continuas): Beta(5, 2)
alpha <- 5
beta <- 2
cat("\n=========== PROBLEMA 16 (Beta) ===========\n")
##
## =========== PROBLEMA 16 (Beta) ===========
cat("1. Modelo: X ~ Beta(alpha = 5, beta = 2), X = proporción de utilización\n\n")
## 1. Modelo: X ~ Beta(alpha = 5, beta = 2), X = proporción de utilización
# 2. Utilización promedio esperada
EX <- alpha / (alpha + beta)
VX <- (alpha * beta) / ((alpha + beta)^2 * (alpha + beta + 1))
# 3. Alta utilización: P(X > 0.80)
b3 <- 1 - pbeta(0.80, shape1 = alpha, shape2 = beta)
# Equivalente: pbeta(0.80, alpha, beta, lower.tail = FALSE)
# 4. Baja utilización: P(X < 0.50)
b4 <- pbeta(0.50, shape1 = alpha, shape2 = beta)
# 5. Nivel superado únicamente por el 10%: P(X > x) = 0.10 -> P(X <= x) = 0.90
b5 <- qbeta(0.90, shape1 = alpha, shape2 = beta)
# 6. Días esperados con utilización > 80% en 250 días
b6 <- 250 * b3
resumen <- data.frame(
Pregunta = c("2. E[X] (utilización promedio)",
"2. V[X]",
"3. P(X > 0.80) alta utilización",
"4. P(X < 0.50) baja utilización",
"5. Nivel superado solo por el 10%",
"6. Días esperados con X > 0.80 (de 250)"),
Resultado = round(c(EX, VX, b3, b4, b5, b6), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. E[X] (utilización promedio) 0.7143
## 2 2. V[X] 0.0255
## 3 3. P(X > 0.80) alta utilización 0.3446
## 4 4. P(X < 0.50) baja utilización 0.1094
## 5 5. Nivel superado solo por el 10% 0.9074
## 6 6. Días esperados con X > 0.80 (de 250) 86.1600
# Gráfica de f(x) con la región de alta utilización y la media
x <- seq(0, 1, length.out = 1000)
plot(x, dbeta(x, alpha, beta), type = "l", lwd = 3, col = "steelblue",
main = "Densidad f(x): Beta(5, 2)",
xlab = "Proporción de utilización", ylab = "f(x)")
xs <- seq(0.80, 1, length.out = 200)
polygon(c(0.80, xs, 1), c(0, dbeta(xs, alpha, beta), 0),
col = rgb(0, 0.6, 0, 0.4), border = NA)
abline(v = EX, lty = 2, col = "red")
legend("topleft",
legend = c("Alta utilización (> 0.80)", paste("E[X] =", round(EX, 4))),
fill = c(rgb(0, 0.6, 0, 0.4), NA), border = c("black", NA),
lty = c(NA, 2), col = c(NA, "red"), bty = "n")

# PROBLEMA 17 : Weibull(k = 2.5, lambda = 5000)
k <- 2.5
lambda <- 5000 # parámetro de escala (horas)
cat("\n=========== PROBLEMA 17 (Weibull) ===========\n")
##
## =========== PROBLEMA 17 (Weibull) ===========
cat("1. Modelo: T ~ Weibull(k = 2.5, lambda = 5000)\n\n")
## 1. Modelo: T ~ Weibull(k = 2.5, lambda = 5000)
# 2. P(T < 3000)
w2 <- pweibull(3000, shape = k, scale = lambda)
# 3. P(T > 6000)
w3 <- 1 - pweibull(6000, shape = k, scale = lambda)
# Equivalente: pweibull(6000, k, lambda, lower.tail = FALSE)
# 4. Tiempo con probabilidad acumulada de falla del 10%
w4 <- qweibull(0.10, shape = k, scale = lambda)
# 5. Mediana
w5 <- qweibull(0.50, shape = k, scale = lambda)
# 6. Media (informativa)
EX <- lambda * gamma(1 + 1/k)
resumen <- data.frame(
Pregunta = c("2. P(T < 3000)",
"3. P(T > 6000)",
"4. Tiempo con 10% de fallas (horas)",
"5. Mediana (horas)",
" E[T] (horas)"),
Resultado = round(c(w2, w3, w4, w5, EX), 4)
)
print(resumen)
## Pregunta Resultado
## 1 2. P(T < 3000) 0.2434
## 2 3. P(T > 6000) 0.2065
## 3 4. Tiempo con 10% de fallas (horas) 2032.5496
## 4 5. Mediana (horas) 4318.1745
## 5 E[T] (horas) 4436.3191
cat("\n7. Reemplazo preventivo sugerido: alrededor de", round(w4, 0),
"horas (10% de falla acumulada)\n")
##
## 7. Reemplazo preventivo sugerido: alrededor de 2033 horas (10% de falla acumulada)
# Gráfica de f(t) con el tiempo de reemplazo y la mediana
t <- seq(0, 10000, length.out = 1000)
plot(t, dweibull(t, shape = k, scale = lambda), type = "l", lwd = 3,
col = "steelblue",
main = "Densidad f(t): Weibull(k = 2.5, lambda = 5000)",
xlab = "Horas", ylab = "f(t)")
ts <- seq(0, w4, length.out = 200)
polygon(c(0, ts, w4), c(0, dweibull(ts, k, lambda), 0),
col = rgb(1, 0, 0, 0.3), border = NA)
abline(v = w5, lty = 2, col = "darkgreen")
legend("topright",
legend = c(paste("10% de fallas: t =", round(w4, 0)),
paste("Mediana =", round(w5, 0))),
fill = c(rgb(1, 0, 0, 0.3), NA), border = c("black", NA),
lty = c(NA, 2), col = c(NA, "darkgreen"), bty = "n")
