Siguiendo el material de la unidad 3.4, en R cada modelo tiene cuatro funciones que se distinguen por su primera letra:
| Letra | Función | Significado |
|---|---|---|
d |
densidad | \(f(x)\) |
p |
acumulada | \(F(x)=P(X\leq x)\) |
q |
cuantil / percentil | \(x_p\) tal que \(F(x_p)=p\) |
r |
aleatorios | simulación |
Para las probabilidades usaremos:
p…(a)p…(a, lower.tail = FALSE)p…(b) - p…(a) (en variables continuas los extremos no
importan)Convenciones de parámetros en R (según el material del curso):
| Modelo | Parámetros en R | \(E[X]\) | \(V[X]\) |
|---|---|---|---|
| Uniforme \(U(a,b)\) | min = a, max = b |
\(\frac{a+b}{2}\) | \(\frac{(b-a)^2}{12}\) |
| Normal \(N(\mu,\sigma^2)\) | mean = μ, sd = σ |
\(\mu\) | \(\sigma^2\) |
| Exponencial \(Exp(\lambda)\) | rate = λ |
\(\frac{1}{\lambda}\) | \(\frac{1}{\lambda^2}\) |
| Lognormal | meanlog = μ, sdlog = σ |
\(e^{\mu+\sigma^2/2}\) | \((e^{\sigma^2}-1)e^{2\mu+\sigma^2}\) |
| Gamma \((\alpha,\lambda)\) | shape = α, rate = λ |
\(\frac{\alpha}{\lambda}\) | \(\frac{\alpha}{\lambda^2}\) |
| Beta \((\alpha,\beta)\) | shape1 = α, shape2 = β |
\(\frac{\alpha}{\alpha+\beta}\) | \(\frac{\alpha\beta}{(\alpha+\beta)^2(\alpha+\beta+1)}\) |
| Weibull \((k,\lambda)\) | shape = k, scale = λ |
\(\lambda\,\Gamma(1+1/k)\) | \(\lambda^2\left[\Gamma(1+2/k)-\Gamma^2(1+1/k)\right]\) |
En el curso la gamma se parametriza con tasa \(\lambda\) (por eso
rate = λ), y la Weibull con forma y escala, cuya acumulada es \(F(x)=1-e^{-(x/\lambda)^k}\).
a <- 20; b <- 50
# a) Función de densidad: f(x) = 1/(b-a) para a <= x <= b
dens <- 1 / (b - a)
# b), c), d)
p1b <- punif(30, a, b)
p1c <- punif(42, a, b, lower.tail = FALSE)
p1d <- punif(40, a, b) - punif(25, a, b)
# e) x tal que P(X <= x) = 0.80
p1e <- qunif(0.80, a, b)
# f) Esperanza y varianza
EX <- (a + b) / 2
VX <- (b - a)^2 / 12
tabla(c("a) f(x) = 1/(b-a) en [20, 50]", "b) P(X <= 30)", "c) P(X > 42)",
"d) P(25 <= X < 40)", "e) x con P(X <= x) = 0.80", "f) E[X]", "f) V[X]"),
c(f4(dens), f4(p1b), f4(p1c), f4(p1d), f4(p1e), f4(EX), f4(VX)))
| Inciso | Resultado |
|---|---|
| a) f(x) = 1/(b-a) en [20, 50] | 0.0333 |
| b) P(X <= 30) | 0.3333 |
| c) P(X > 42) | 0.2667 |
| d) P(25 <= X < 40) | 0.5000 |
| e) x con P(X <= x) = 0.80 | 44.0000 |
| f) E[X] | 35.0000 |
| f) V[X] | 75.0000 |
La densidad es \(f_X(x)=\dfrac{1}{30}\) para \(20\leq x\leq 50\) y \(0\) en otro caso. Como la densidad es constante, la probabilidad de un intervalo es su longitud sobre 30: por ejemplo, \(P(X\le 30)=10/30\).
x <- c(10, 20, 20, 50, 50, 60)
y <- c(0, 0, dens, dens, 0, 0)
plot(x, y, type = "l", col = col, lwd = 2, las = 1, ylim = c(0, 0.04),
main = "Uniforme U(20, 50)", xlab = "x", ylab = expression(f[X](x)))
xs <- seq(25, 40, length.out = 50)
polygon(c(25, xs, 40), c(0, rep(dens, 50), 0),
col = adjustcolor(col, alpha.f = 0.35), border = NA)
abline(v = EX, lty = 2, col = "red")
legend("topright", legend = c("P(25 ≤ X < 40)", "E[X] = 35"),
fill = c(adjustcolor(col, 0.35), NA), border = NA,
lty = c(NA, 2), col = c(NA, "red"), bty = "n")
mu <- 100; s <- 15
p2a <- pnorm(85, mu, s)
p2b <- pnorm(120, mu, s, lower.tail = FALSE)
p2c <- pnorm(115, mu, s) - pnorm(90, mu, s)
p2d <- qnorm(0.95, mu, s)
# e) Intervalo central ~95%: media ± 1.96 sigma (regla empírica: ±2 sigma)
ic <- qnorm(c(0.025, 0.975), mu, s)
tabla(c("a) P(X <= 85)", "b) P(X > 120)", "c) P(90 <= X < 115)",
"d) x con P(X <= x) = 0.95",
"e) Intervalo central 95% (exacto, ±1.96σ)",
"e) Aproximación empírica (μ ± 2σ)"),
c(f4(p2a), f4(p2b), f4(p2c), f4(p2d),
paste0("[", f4(ic[1]), " ; ", f4(ic[2]), "]"),
paste0("[", mu - 2*s, " ; ", mu + 2*s, "]")))
| Inciso | Resultado |
|---|---|
| a) P(X <= 85) | 0.1587 |
| b) P(X > 120) | 0.0912 |
| c) P(90 <= X < 115) | 0.5889 |
| d) x con P(X <= x) = 0.95 | 124.6728 |
| e) Intervalo central 95% (exacto, ±1.96σ) | [70.6005 ; 129.3995] |
| e) Aproximación empírica (μ ± 2σ) | [70 ; 130] |
Por la propiedad empírica, aproximadamente el 95 % de los valores está en \(\mu\pm2\sigma=(70,\,130)\); con el cuantil exacto \(z_{0.975}=1.96\) el intervalo es \((70.60,\,129.40)\).
graficar(function(x) dnorm(x, mu, s), 40, 160, "Normal N(100, 15²)",
sombra = ic, vline = mu, etiqueta = "μ = 100")
mu <- 72; s <- 8
p3a <- pnorm(60, mu, s)
p3b <- pnorm(80, mu, s, lower.tail = FALSE)
p3c <- pnorm(76, mu, s) - pnorm(68, mu, s)
p3d <- qnorm(0.90, mu, s) # percentil 90
p3e <- qnorm(0.05, mu, s, lower.tail = FALSE) # deja 5% por encima
tabla(c("a) P(X < 60)", "b) P(X >= 80)", "c) P(68 <= X <= 76)",
"d) Percentil 90", "e) x que deja 5% por encima"),
c(f4(p3a), f4(p3b), f4(p3c), f4(p3d), f4(p3e)))
| Inciso | Resultado |
|---|---|
| a) P(X < 60) | 0.0668 |
| b) P(X >= 80) | 0.1587 |
| c) P(68 <= X <= 76) | 0.3829 |
| d) Percentil 90 | 82.2524 |
| e) x que deja 5% por encima | 85.1588 |
Los extremos del intervalo \((68,\,76)\) están a \(\pm4\) de la media, es decir, a \(\pm0.5\sigma\); la simetría de la normal permite calcular \(P(68\le X\le 76)=2\,\Phi(0.5)-1\).
graficar(function(x) dnorm(x, mu, s), 40, 104, "Normal N(72, 8²)",
sombra = c(68, 76), vline = mu, etiqueta = "Media μ = 72")
mu <- 500; s <- 40
p4a <- pnorm(450, mu, s)
p4b <- pnorm(575, mu, s, lower.tail = FALSE)
p4c <- pnorm(540, mu, s) - pnorm(480, mu, s)
p4d <- qnorm(c(0.10, 0.90), mu, s) # 80% central: deja 10% en cada cola
p4e <- qnorm(0.99, mu, s)
tabla(c("a) P(X <= 450)", "b) P(X > 575)", "c) P(480 < X < 540)",
"d) Límites del 80% central", "e) Percentil 99"),
c(f4(p4a), f4(p4b), f4(p4c),
paste0("[", f4(p4d[1]), " ; ", f4(p4d[2]), "]"), f4(p4e)))
| Inciso | Resultado |
|---|---|
| a) P(X <= 450) | 0.1056 |
| b) P(X > 575) | 0.0304 |
| c) P(480 < X < 540) | 0.5328 |
| d) Límites del 80% central | [448.7379 ; 551.2621] |
| e) Percentil 99 | 593.0539 |
graficar(function(x) dnorm(x, mu, s), 350, 650, "Normal N(500, 40²)",
sombra = p4d, vline = mu, etiqueta = "μ = 500 (área: 80% central)")
lam <- 0.25
p5a <- pexp(2, lam)
p5b <- pexp(5, lam, lower.tail = FALSE)
p5c <- pexp(6, lam) - pexp(2, lam)
p5d <- qexp(0.90, lam)
EX <- 1 / lam
VX <- 1 / lam^2
tabla(c("a) P(X <= 2)", "b) P(X > 5)", "c) P(2 < X <= 6)",
"d) x con P(X <= x) = 0.90", "e) E[X]", "e) V[X]"),
c(f4(p5a), f4(p5b), f4(p5c), f4(p5d), f4(EX), f4(VX)))
| Inciso | Resultado |
|---|---|
| a) P(X <= 2) | 0.3935 |
| b) P(X > 5) | 0.2865 |
| c) P(2 < X <= 6) | 0.3834 |
| d) x con P(X <= x) = 0.90 | 9.2103 |
| e) E[X] | 4.0000 |
| e) V[X] | 16.0000 |
El tiempo medio es \(E[X]=1/\lambda=4\) (en las mismas unidades de tiempo del enunciado) y la varianza \(V[X]=16\).
graficar(function(x) dexp(x, lam), 0, 25, "Exponencial (λ = 0.25)",
sombra = c(2, 6), vline = EX, etiqueta = "E[X] = 4")
Aquí \(\ln(X)\sim N(3.5,\,0.40^2)\),
por lo que en R se usan meanlog = 3.5 y
sdlog = 0.40.
ml <- 3.5; sl <- 0.40
p6a <- plnorm(25, ml, sl)
p6b <- plnorm(50, ml, sl, lower.tail = FALSE)
p6c <- plnorm(40, ml, sl) - plnorm(20, ml, sl)
p6d <- qlnorm(0.50, ml, sl) # mediana = exp(mu)
p6e <- qlnorm(0.90, ml, sl)
EX <- exp(ml + sl^2 / 2)
VX <- (exp(sl^2) - 1) * exp(2 * ml + sl^2)
tabla(c("a) P(X <= 25)", "b) P(X > 50)", "c) P(20 <= X < 40)",
"d) Mediana de X (= e^3.5)", "e) Percentil 90",
"f) E[X]", "f) V[X]"),
c(f4(p6a), f4(p6b), f4(p6c), f4(p6d), f4(p6e), f4(EX), f4(VX)))
| Inciso | Resultado |
|---|---|
| a) P(X <= 25) | 0.2411 |
| b) P(X > 50) | 0.1515 |
| c) P(20 <= X < 40) | 0.5779 |
| d) Mediana de X (= e^3.5) | 33.1155 |
| e) Percentil 90 | 55.2916 |
| f) E[X] | 35.8735 |
| f) V[X] | 223.2930 |
La mediana (\(\approx 33.12\)) es menor que la media (\(\approx 35.87\)), como corresponde a una distribución con asimetría positiva.
graficar(function(x) dlnorm(x, ml, sl), 0, 120, "Lognormal (3.5, 0.40²)",
sombra = c(20, 40), vline = p6d, etiqueta = "Mediana")
al <- 3; la <- 0.5
p7a <- pgamma(4, shape = al, rate = la)
p7b <- pgamma(8, shape = al, rate = la, lower.tail = FALSE)
p7c <- pgamma(7, al, la) - pgamma(3, al, la)
p7d <- qgamma(0.95, shape = al, rate = la)
EX <- al / la
VX <- al / la^2
tabla(c("a) P(X <= 4)", "b) P(X > 8)", "c) P(3 <= X < 7)",
"d) Percentil 95", "e) E[X]", "e) V[X]"),
c(f4(p7a), f4(p7b), f4(p7c), f4(p7d), f4(EX), f4(VX)))
| Inciso | Resultado |
|---|---|
| a) P(X <= 4) | 0.3233 |
| b) P(X > 8) | 0.2381 |
| c) P(3 <= X < 7) | 0.4880 |
| d) Percentil 95 | 12.5916 |
| e) E[X] | 6.0000 |
| e) V[X] | 12.0000 |
graficar(function(x) dgamma(x, al, la), 0, 25, "Gamma (α = 3, λ = 0.5)",
sombra = c(3, 7), vline = EX, etiqueta = "E[X] = 6")
a1 <- 2.5; b1 <- 4
p8a <- pbeta(0.30, a1, b1)
p8b <- pbeta(0.60, a1, b1, lower.tail = FALSE)
p8c <- pbeta(0.50, a1, b1) - pbeta(0.20, a1, b1)
p8d <- qbeta(0.75, a1, b1)
EX <- a1 / (a1 + b1)
VX <- a1 * b1 / ((a1 + b1)^2 * (a1 + b1 + 1))
tabla(c("a) P(X <= 0.30)", "b) P(X > 0.60)", "c) P(0.20 <= X < 0.50)",
"d) Percentil 75", "e) E[X]", "e) V[X]"),
c(f4(p8a), f4(p8b), f4(p8c), f4(p8d), f4(EX), f4(VX)))
| Inciso | Resultado |
|---|---|
| a) P(X <= 0.30) | 0.3522 |
| b) P(X > 0.60) | 0.1300 |
| c) P(0.20 <= X < 0.50) | 0.5723 |
| d) Percentil 75 | 0.5088 |
| e) E[X] | 0.3846 |
| e) V[X] | 0.0316 |
graficar(function(x) dbeta(x, a1, b1), 0, 1, "Beta (α = 2.5, β = 4)",
sombra = c(0.2, 0.5), vline = EX, etiqueta = "E[X] = 0.3846")
k <- 2; sc <- 1000
p9a <- pweibull(500, shape = k, scale = sc)
p9b <- pweibull(1200, k, sc, lower.tail = FALSE)
p9c <- pweibull(1000, k, sc) - pweibull(600, k, sc)
p9d <- qweibull(0.50, shape = k, scale = sc) # mediana
p9e <- qweibull(0.90, shape = k, scale = sc)
tabla(c("a) P(X <= 500)", "b) P(X > 1200)", "c) P(600 <= X < 1000)",
"d) Mediana de X", "e) Percentil 90"),
c(f4(p9a), f4(p9b), f4(p9c), f4(p9d), f4(p9e)))
| Inciso | Resultado |
|---|---|
| a) P(X <= 500) | 0.2212 |
| b) P(X > 1200) | 0.2369 |
| c) P(600 <= X < 1000) | 0.3298 |
| d) Mediana de X | 832.5546 |
| e) Percentil 90 | 1517.4271 |
graficar(function(x) dweibull(x, k, sc), 0, 3000, "Weibull (k = 2, λ = 1000)",
sombra = c(600, 1000), vline = p9d, etiqueta = "Mediana")
a) Modelo. \(X\): tiempo de validación (segundos), \(X\sim U(1.5,\,4.5)\), con \(a=1.5\), \(b=4.5\) y \(f_X(x)=1/3\).
a <- 1.5; b <- 4.5
p10b <- punif(3, a, b)
p10c <- punif(4, a, b) - punif(2, a, b)
p10d <- qunif(0.90, a, b) # inicio del 10% más lento
cumple <- p10b > 0.45
tabla(c("b) P(X < 3)", "c) P(2 < X < 4)",
"d) Tiempo desde el cual está el 10% más lento (percentil 90)",
"e) ¿P(X < 3) > 0.45?"),
c(f4(p10b), f4(p10c), f4(p10d), ifelse(cumple, "Sí", "No")))
| Inciso | Resultado |
|---|---|
| b) P(X < 3) | 0.5000 |
| c) P(2 < X < 4) | 0.6667 |
| d) Tiempo desde el cual está el 10% más lento (percentil 90) | 4.2000 |
| e) ¿P(X < 3) > 0.45? | Sí |
Interpretación.
x <- c(0.5, a, a, b, b, 5.5)
y <- c(0, 0, 1/3, 1/3, 0, 0)
plot(x, y, type = "l", col = col, lwd = 2, las = 1, ylim = c(0, 0.4),
main = "Tiempo de validación ~ U(1.5, 4.5)", xlab = "segundos",
ylab = expression(f[X](x)))
polygon(c(a, a, 3, 3), c(0, 1/3, 1/3, 0), col = adjustcolor(col, 0.35), border = NA)
abline(v = p10d, lty = 2, col = "red")
legend("topright", legend = c("P(X < 3)", paste0("Percentil 90 = ", f4(p10d))),
fill = c(adjustcolor(col, 0.35), NA), border = NA,
lty = c(NA, 2), col = c(NA, "red"), bty = "n")
a) Modelo. \(X\): peso de la bolsa (g), \(X\sim N(500,\,8^2)\).
mu <- 500; s <- 8
p11b <- pnorm(515, mu, s) - pnorm(485, mu, s)
p11c <- pnorm(520, mu, s, lower.tail = FALSE)
p11d <- qnorm(c(0.02, 0.98), mu, s)
p11e <- (1 - p11b) * 10000
tabla(c("b) P(485 <= X <= 515) (aceptación)", "c) P(X > 520)",
"d) Pesos que delimitan el 2% inferior y el 2% superior",
"e) Bolsas esperadas fuera de aceptación (de 10 000)"),
c(f4(p11b), f4(p11c),
paste0(f4(p11d[1]), " g y ", f4(p11d[2]), " g"), f4(p11e)))
| Inciso | Resultado |
|---|---|
| b) P(485 <= X <= 515) (aceptación) | 0.9392 |
| c) P(X > 520) | 0.0062 |
| d) Pesos que delimitan el 2% inferior y el 2% superior | 483.5700 g y 516.4300 g |
| e) Bolsas esperadas fuera de aceptación (de 10 000) | 607.9272 |
graficar(function(x) dnorm(x, mu, s), 465, 535, "Peso de las bolsas ~ N(500, 8²)",
sombra = c(485, 515), vline = c(485, 515),
etiqueta = "Límites de aceptación")
abline(v = p11d, lty = 3, col = "darkgreen")
f) Análisis. Con \(\sigma=8\) el intervalo de aceptación equivale a \(\mu\pm1.875\sigma\), y el 6.0793 % de la producción (≈ 608 de cada 10 000 bolsas) queda fuera. Centrar el proceso en 500 g no garantiza por sí solo pocas unidades fuera de especificación: también importa la variabilidad. Con la misma media, una máquina con mayor \(\sigma\) tendría mucha más producción fuera de 485–515 g, como se ve a continuación:
sig <- c(4, 6, 8, 10, 12)
data.frame(sigma = sig,
`% fuera de especificación` = round(100 * (1 - (pnorm(515, 500, sig) - pnorm(485, 500, sig))), 3),
check.names = FALSE)
a) Modelo. \(X\): puntaje, \(X\sim N(70,\,10^2)\).
mu <- 70; s <- 10; n <- 600
p12b <- pnorm(85, mu, s) - pnorm(65, mu, s)
p12c <- qnorm(0.90, mu, s) # mínimo del 10% superior
p12d <- qnorm(0.15, mu, s) # máximo del 15% inferior
p12e <- pnorm(90, mu, s, lower.tail = FALSE)
tabla(c("b) P(65 <= X <= 85)", "c) Puntaje mínimo del 10% superior",
"d) Puntaje máximo del 15% inferior", "e) P(X > 90)",
"f) Estudiantes con reconocimiento (de 600)",
"f) Estudiantes con acompañamiento (de 600)"),
c(f4(p12b), f4(p12c), f4(p12d), f4(p12e), f4(0.10 * n), f4(0.15 * n)))
| Inciso | Resultado |
|---|---|
| b) P(65 <= X <= 85) | 0.6247 |
| c) Puntaje mínimo del 10% superior | 82.8155 |
| d) Puntaje máximo del 15% inferior | 59.6357 |
| e) P(X > 90) | 0.0228 |
| f) Estudiantes con reconocimiento (de 600) | 60.0000 |
| f) Estudiantes con acompañamiento (de 600) | 90.0000 |
Se espera que 60 estudiantes reciban reconocimiento (puntaje ≥ 82.8155) y 90 sean convocados a acompañamiento (puntaje ≤ 59.6357). Son valores esperados: la cantidad observada puede variar de un grupo a otro.
graficar(function(x) dnorm(x, mu, s), 30, 110, "Puntajes ~ N(70, 10²)",
sombra = c(65, 85), vline = c(p12d, p12c),
etiqueta = "Cortes del 15% inferior y 10% superior")
a) Modelo. \(X\): horas hasta la interrupción, \(X\sim Exp(\lambda)\) con \(E[X]=200\), por lo tanto \(\lambda=1/200=0.005\) interrupciones por hora.
lam <- 1 / 200
p13b <- pexp(300, lam, lower.tail = FALSE)
p13c <- pexp(250, lam) - pexp(100, lam)
p13d <- qexp(0.20, lam)
# e) P(X > 250 | X > 150) = P(X > 100)
p13e_cond <- pexp(250, lam, lower.tail = FALSE) / pexp(150, lam, lower.tail = FALSE)
p13e_dir <- pexp(100, lam, lower.tail = FALSE)
tabla(c("a) λ = 1/200", "b) P(X > 300)", "c) P(100 < X < 250)",
"d) Tiempo con probabilidad acumulada 0.20",
"e) P(X > 250 | X > 150) (cálculo condicional)",
"e) P(X > 100) (propiedad sin memoria)"),
c(f4(lam), f4(p13b), f4(p13c), f4(p13d), f4(p13e_cond), f4(p13e_dir)))
| Inciso | Resultado |
|---|---|
| a) λ = 1/200 | 0.0050 |
| b) P(X > 300) | 0.2231 |
| c) P(100 < X < 250) | 0.3200 |
| d) Tiempo con probabilidad acumulada 0.20 | 44.6287 |
| e) P(X > 250 | X > 150) (cálculo condicional) | 0.6065 |
| e) P(X > 100) (propiedad sin memoria) | 0.6065 |
f) Propiedad. Ambos cálculos coinciden: es la propiedad de falta de memoria de la exponencial, \(P(X>s+t\mid X>s)=P(X>t)\). Haber operado 150 horas sin interrupción no cambia la probabilidad de operar 100 horas adicionales.
El mantenimiento preventivo debe programarse antes de 44.6287 horas, momento en que la probabilidad acumulada de interrupción llega al 20 %.
graficar(function(x) dexp(x, lam), 0, 1000, "Exponencial (λ = 1/200)",
sombra = c(0, p13d), vline = p13d,
etiqueta = "t con F(t) = 0.20", xlab = "horas")
a) Modelo. \(X\): costo (millones de pesos), \(X\sim\text{Lognormal}(\mu=1.2,\ \sigma=0.5)\), es decir, \(\ln X\sim N(1.2,\,0.5^2)\).
ml <- 1.2; sl <- 0.5
p14b <- plnorm(3, ml, sl)
p14c <- plnorm(5, ml, sl, lower.tail = FALSE)
p14d <- qlnorm(0.50, ml, sl)
p14e <- qlnorm(0.95, ml, sl)
media <- exp(ml + sl^2 / 2)
tabla(c("b) P(X < 3)", "c) P(X > 5)", "d) Costo mediano (millones)",
"e) Valor superado por el 5% (percentil 95)", "f) Media E[X] (millones)"),
c(f4(p14b), f4(p14c), f4(p14d), f4(p14e), f4(media)))
| Inciso | Resultado |
|---|---|
| b) P(X < 3) | 0.4197 |
| c) P(X > 5) | 0.2064 |
| d) Costo mediano (millones) | 3.3201 |
| e) Valor superado por el 5% (percentil 95) | 7.5566 |
| f) Media E[X] (millones) | 3.7622 |
f) Media vs. mediana. La mediana es \(e^{\mu}=3.3201\) y la media es \(e^{\mu+\sigma^2/2}=3.7622\). No coinciden porque la lognormal es asimétrica positiva: pocas reparaciones muy costosas (cola derecha larga) “jalan” la media hacia arriba, mientras que la mediana, al depender sólo del orden de los datos, no se ve afectada por esos extremos. Por eso, para describir el costo típico conviene la mediana y, para fijar umbrales de costos altos, los percentiles (por ejemplo, el 5 % superior comienza en 7.5566 millones).
graficar(function(x) dlnorm(x, ml, sl), 0, 15, "Costo de reparación ~ Lognormal(1.2, 0.5²)",
sombra = c(p14e, 15), vline = c(p14d, media),
etiqueta = c("Mediana y media"), xlab = "millones de pesos")
a) Modelo. \(X\): tiempo total de atención (min), \(X\sim Gamma(\alpha=4,\ \lambda=0.20)\): suma de 4 etapas exponenciales con tasa 0.20 por minuto.
al <- 4; la <- 0.20
EX <- al / la
p15c <- pgamma(30, shape = al, rate = la)
p15d <- pgamma(25, al, la) - pgamma(15, al, la)
p15e <- qgamma(0.90, shape = al, rate = la)
meta <- p15c >= 0.80
tabla(c("b) E[X] (minutos)", "c) P(X < 30)", "d) P(15 < X < 25)",
"e) Tiempo no superado por el 90% (percentil 90)",
"f) ¿P(X < 30) >= 0.80?"),
c(f4(EX), f4(p15c), f4(p15d), f4(p15e), ifelse(meta, "Sí", "No")))
| Inciso | Resultado |
|---|---|
| b) E[X] (minutos) | 20.0000 |
| c) P(X < 30) | 0.8488 |
| d) P(15 < X < 25) | 0.3822 |
| e) Tiempo no superado por el 90% (percentil 90) | 33.4039 |
| f) ¿P(X < 30) >= 0.80? | Sí |
f) Evaluación. La promesa es resolver en menos de 30 minutos y la meta es que al menos el 80 % la cumpla. Como \(P(X<30)=0.8488\) >= 0.80, la promesa sí cumple la meta de la administración. (Que el promedio sea 20 min no basta: lo que exige la promesa es la proporción acumulada hasta 30 min.)
graficar(function(x) dgamma(x, al, la), 0, 80, "Tiempo de atención ~ Gamma(4, 0.20)",
sombra = c(0, 30), vline = 30, etiqueta = "Límite de 30 min",
xlab = "minutos")
a) Modelo. \(X\): proporción de utilización, \(X\sim Beta(\alpha=5,\ \beta=2)\) en \([0,1]\).
a1 <- 5; b1 <- 2
EX <- a1 / (a1 + b1)
p16c <- pbeta(0.80, a1, b1, lower.tail = FALSE) # alta utilización
p16d <- pbeta(0.50, a1, b1) # baja utilización
p16e <- qbeta(0.90, a1, b1) # superado por el 10%
p16f <- 250 * p16c
tabla(c("b) E[X] (utilización promedio)", "c) P(X > 0.80) (alta)",
"d) P(X < 0.50) (baja)", "e) Nivel superado sólo por el 10% de los días",
"f) Días esperados con utilización > 80% (de 250)"),
c(f4(EX), f4(p16c), f4(p16d), f4(p16e), f4(p16f)))
| Inciso | Resultado |
|---|---|
| b) E[X] (utilización promedio) | 0.7143 |
| c) P(X > 0.80) (alta) | 0.3446 |
| d) P(X < 0.50) (baja) | 0.1094 |
| e) Nivel superado sólo por el 10% de los días | 0.9074 |
| f) Días esperados con utilización > 80% (de 250) | 86.1600 |
La utilización promedio es 71.4286 %. En promedio, en 86.1600 de 250 días (≈ 86 días) la utilización supera el 80 %. Aquí la probabilidad actúa como proporción esperada de días: número esperado = \(n\cdot P(X>0.80)\).
graficar(function(x) dbeta(x, a1, b1), 0, 1, "Utilización ~ Beta(5, 2)",
sombra = c(0.80, 1), vline = EX, etiqueta = "E[X] = 0.7143")
a) Modelo. \(X\): vida útil (horas), \(X\sim Weibull(k=2.5,\ \lambda=5000)\), con \(F(x)=1-e^{-(x/5000)^{2.5}}\).
k <- 2.5; sc <- 5000
p17b <- pweibull(3000, shape = k, scale = sc)
p17c <- pweibull(6000, k, sc, lower.tail = FALSE)
p17d <- qweibull(0.10, shape = k, scale = sc)
p17e <- qweibull(0.50, shape = k, scale = sc)
reemp <- floor(p17d / 100) * 100 # tiempo redondeado hacia abajo
F_reemp <- pweibull(reemp, k, sc)
tabla(c("b) P(X < 3000)", "c) P(X > 6000)",
"d) Tiempo con probabilidad acumulada de falla 0.10",
"e) Mediana de la vida útil",
"g) Tiempo de reemplazo propuesto (h)",
"g) P(falla antes del reemplazo propuesto)"),
c(f4(p17b), f4(p17c), f4(p17d), f4(p17e), reemp, f4(F_reemp)))
| Inciso | Resultado |
|---|---|
| b) P(X < 3000) | 0.2434 |
| c) P(X > 6000) | 0.2065 |
| d) Tiempo con probabilidad acumulada de falla 0.10 | 2032.5496 |
| e) Mediana de la vida útil | 4318.1745 |
| g) Tiempo de reemplazo propuesto (h) | 2000 |
| g) P(falla antes del reemplazo propuesto) | 0.0962 |
f) Parámetro de forma. La tasa de falla de la Weibull es \(h(t)=\dfrac{k}{\lambda}\left(\dfrac{t}{\lambda}\right)^{k-1}\). Como \(k=2.5>1\), la tasa de falla es creciente: el riesgo de falla aumenta a medida que el rodamiento envejece (desgaste). Con \(k=1\) sería constante (exponencial) y con \(k<1\) decreciente.
t <- seq(1, 10000, length.out = 500)
plot(t, (k / sc) * (t / sc)^(k - 1), type = "l", col = col, lwd = 2, las = 1,
main = "Función de riesgo h(t), Weibull (k = 2.5, λ = 5000)",
xlab = "horas", ylab = "h(t)")
g) Reemplazo preventivo. El criterio exige que no más del 10 % haya fallado, es decir \(F(t)\le0.10\), lo que da \(t\le 2032.5496\) horas. Una propuesta coherente es reemplazar a las 2000 horas: allí la probabilidad acumulada de falla es 0.0962 (≤ 0.10), cumpliendo el criterio.
graficar(function(x) dweibull(x, k, sc), 0, 10000, "Vida útil ~ Weibull(2.5, 5000)",
sombra = c(0, p17d), vline = reemp,
etiqueta = "Reemplazo propuesto", xlab = "horas")
Como complemento (criterio de la guía: uso de herramientas
computacionales y simulación), se comparan algunas probabilidades
teóricas con la frecuencia relativa en 100 000 valores simulados con las
funciones r….
set.seed(341)
N <- 100000
sim <- data.frame(
Caso = c("P2: P(X > 120), N(100,15²)",
"P5: P(X > 5), Exp(0.25)",
"P7: P(X <= 4), Gamma(3,0.5)",
"P9: P(X <= 500), Weibull(2,1000)",
"P13: P(X > 300), Exp(1/200)",
"P16: P(X > 0.8), Beta(5,2)"),
Teorica = c(pnorm(120, 100, 15, lower.tail = FALSE),
pexp(5, 0.25, lower.tail = FALSE),
pgamma(4, 3, 0.5),
pweibull(500, 2, 1000),
pexp(300, 1/200, lower.tail = FALSE),
pbeta(0.8, 5, 2, lower.tail = FALSE)),
Simulada = c(mean(rnorm(N, 100, 15) > 120),
mean(rexp(N, 0.25) > 5),
mean(rgamma(N, 3, 0.5) <= 4),
mean(rweibull(N, 2, 1000) <= 500),
mean(rexp(N, 1/200) > 300),
mean(rbeta(N, 5, 2) > 0.8))
)
sim$Teorica <- round(sim$Teorica, 4)
sim$Simulada <- round(sim$Simulada, 4)
knitr::kable(sim)
| Caso | Teorica | Simulada |
|---|---|---|
| P2: P(X > 120), N(100,15²) | 0.0912 | 0.0931 |
| P5: P(X > 5), Exp(0.25) | 0.2865 | 0.2871 |
| P7: P(X <= 4), Gamma(3,0.5) | 0.3233 | 0.3224 |
| P9: P(X <= 500), Weibull(2,1000) | 0.2212 | 0.2213 |
| P13: P(X > 300), Exp(1/200) | 0.2231 | 0.2224 |
| P16: P(X > 0.8), Beta(5,2) | 0.3446 | 0.3419 |
Los valores simulados son muy cercanos a los teóricos, lo que
respalda los cálculos realizados con las funciones d,
p y q.