# Colores
c31 <- "#2C7FB8"   # color principal
c32 <- "#BDBDBD"   # color secundario

# Gráfica de f(x) con el estilo del curso: puntos pch = 19, las = 1 y grid()
grafica_fx <- function(x, fx, titulo = "", xlab = "x", resaltar = x) {
  col <- ifelse(x %in% resaltar, c31, c32)
  plot(x, fx, type = "h", lwd = 2, col = col, las = 1,
       xlab = xlab, ylab = "f(x)", main = titulo,
       ylim = c(0, max(fx) * 1.1))
  points(x, fx, pch = 19, col = col)
  grid()
}

# Tabla de resultados
tabla <- function(nombres, valores) {
  # valores muy pequeños se muestran en notación científica para que no queden en 0
  valor <- ifelse(valores > 0 & valores < 1e-4,
                  format(valores, digits = 3, scientific = TRUE),
                  format(round(valores, 4), nsmall = 4))
  knitr::kable(data.frame(Probabilidad = nombres, Valor = valor), align = c("l", "c"))
}

Problema 1

\[X \sim \text{Binomial}(n = 10,\ p = 0.5)\] \[f(x) = \binom{n}{x} p^x (1-p)^{n-x}, \qquad x = 0, 1, \dots, 10\]

Función de distribución asociada a \(X\)

x  <- 0:10
fx <- dbinom(x, size = 10, prob = 0.5)
Fx <- pbinom(x, size = 10, prob = 0.5)

knitr::kable(data.frame(x = x, fx = round(fx, 4), Fx = round(Fx, 4)), align = "c")
x fx Fx
0 0.0010 0.0010
1 0.0098 0.0107
2 0.0439 0.0547
3 0.1172 0.1719
4 0.2051 0.3770
5 0.2461 0.6230
6 0.2051 0.8281
7 0.1172 0.9453
8 0.0439 0.9893
9 0.0098 0.9990
10 0.0010 1.0000

Probabilidades

p1a <- dbinom(5, size = 10, prob = 0.5)                          # P(X = 5)
p1b <- pbinom(2, size = 10, prob = 0.5)                          # P(X <= 2)
p1c <- pbinom(4, size = 10, prob = 0.5) - pbinom(2, size = 10, prob = 0.5)  # P(3 <= X < 5)
p1d <- pbinom(7, size = 10, prob = 0.5, lower.tail = FALSE)      # P(X >= 8)

tabla(c("P(X = 5)", "P(X <= 2)", "P(3 <= X < 5)", "P(X >= 8)"), c(p1a, p1b, p1c, p1d))
Probabilidad Valor
P(X = 5) 0.2461
P(X <= 2) 0.0547
P(3 <= X < 5) 0.3223
P(X >= 8) 0.0547

Gráfica de \(f_X(x)\)

grafica_fx(x, fx, titulo = "Binomial(n = 10, p = 0.5)")

Problema 2

\[X \sim \text{Geométrica}(p = 0.05)\] \[X = \text{fracasos antes del primer éxito}, \qquad x = 0, 1, 2, \dots\]

p2a <- dgeom(1, prob = 0.05)                         # P(X = 1)
p2b <- pgeom(2, prob = 0.05)                         # P(X <= 2)
p2c <- dgeom(8, prob = 0.05)                         # P(X = 8)
p2d <- pgeom(1, prob = 0.05, lower.tail = FALSE)     # P(X >= 2)

tabla(c("P(X = 1)", "P(X <= 2)", "P(X = 8)", "P(X >= 2)"), c(p2a, p2b, p2c, p2d))
Probabilidad Valor
P(X = 1) 0.0475
P(X <= 2) 0.1426
P(X = 8) 0.0332
P(X >= 2) 0.9025
x <- 0:60
grafica_fx(x, dgeom(x, prob = 0.05), titulo = "Geométrica(p = 0.05)",
           xlab = "Número de fracasos")

Problema 3

\[X \sim \text{Hipergeométrica}(N = 100,\ n = 4,\ K = 20)\] \[m = K = 20, \qquad n = N - K = 80, \qquad k = 4\]

m <- 20; n <- 80; k <- 4

p3a <- dhyper(1, m = m, n = n, k = k)                      # P(X = 1)
p3b <- dhyper(6, m = m, n = n, k = k)                      # P(X = 6)
p3c <- phyper(0, m = m, n = n, k = k, lower.tail = FALSE)  # P(X >= 1)
p3d <- dhyper(4, m = m, n = n, k = k)                      # P(X = 4)

tabla(c("P(X = 1)", "P(X = 6)", "P(X >= 1)", "P(X = 4)"), c(p3a, p3b, p3c, p3d))
Probabilidad Valor
P(X = 1) 0.4191
P(X = 6) 0.0000
P(X >= 1) 0.5967
P(X = 4) 0.0012

\(P(X = 6) = 0\) porque la muestra solo tiene 4 elementos, así que \(X\) no puede pasar de 4.

x <- max(0, k - n):min(k, m)   # rango posible de X
grafica_fx(x, dhyper(x, m = m, n = n, k = k), titulo = "Hipergeométrica(N = 100, n = 4, K = 20)")

Problema 4

\[X \sim \text{Poisson}(\lambda = 4)\] \[f(x) = \frac{e^{-\lambda}\lambda^x}{x!}, \qquad x = 0, 1, 2, \dots\]

p4a <- dpois(0, lambda = 4)                       # P(X = 0)
p4b <- dpois(4, lambda = 4)                       # P(X = 4)
p4c <- ppois(1, lambda = 4, lower.tail = FALSE)   # P(X >= 2)
p4d <- ppois(2, lambda = 4)                       # P(X <= 2)

tabla(c("P(X = 0)", "P(X = 4)", "P(X >= 2)", "P(X <= 2)"), c(p4a, p4b, p4c, p4d))
Probabilidad Valor
P(X = 0) 0.0183
P(X = 4) 0.1954
P(X >= 2) 0.9084
P(X <= 2) 0.2381
x <- 0:15
grafica_fx(x, dpois(x, lambda = 4), titulo = "Poisson(\u03bb = 4)")

Problema 5

\[X \sim \text{BN}(r = 5,\ p = K/N = 20/100 = 0.20)\] \[X = \text{fracasos antes del quinto éxito}, \qquad x = 0, 1, 2, \dots\]

r <- 5; p <- 20 / 100

p5a <- dnbinom(0, size = r, prob = p)                        # P(X = 0)
p5b <- dnbinom(6, size = r, prob = p)                        # P(X = 6)
p5c <- pnbinom(9, size = r, prob = p, lower.tail = FALSE)    # P(X >= 10)
p5d <- pnbinom(12, size = r, prob = p)                       # P(X <= 12)

EX <- r * (1 - p) / p        # E[X]
VX <- r * (1 - p) / p^2      # V[X]

tabla(c("P(X = 0)", "P(X = 6)", "P(X >= 10)", "P(X <= 12)", "E[X]", "V[X]"),
      c(p5a, p5b, p5c, p5d, EX, VX))
Probabilidad Valor
P(X = 0) 0.0003
P(X = 6) 0.0176
P(X >= 10) 0.8702
P(X <= 12) 0.2418
E[X] 20.0000
V[X] 100.0000
x <- 0:60
grafica_fx(x, dnbinom(x, size = r, prob = p), titulo = "Binomial negativa(size = 5, p = 0.20)",
           xlab = "Número de fracasos")

Problema 6

\(X\): número de llantas con imperfecciones. \[X \sim \text{Binomial}(n = 4,\ p = 0.05)\]

p6a <- dbinom(0, size = 4, prob = 0.05)                      # P(X = 0)
p6b <- dbinom(1, size = 4, prob = 0.05)                      # P(X = 1)
p6c <- pbinom(0, size = 4, prob = 0.05, lower.tail = FALSE)  # P(X >= 1)

tabla(c("Ninguna con imperfecciones: P(X = 0)", "Solo una: P(X = 1)", "Una o más: P(X >= 1)"),
      c(p6a, p6b, p6c))
Probabilidad Valor
Ninguna con imperfecciones: P(X = 0) 0.8145
Solo una: P(X = 1) 0.1715
Una o más: P(X >= 1) 0.1855

Problema 7

\(X\): número de clientes que llegan en un intervalo. \[X \sim \text{Poisson}(\lambda = 8t), \qquad t \text{ en horas}\] \[\lambda_{1h} = 8, \qquad \lambda_{2h} = 16, \qquad \lambda_{2.5h} = 20\]

p7a <- dpois(5, lambda = 8)       # 1 hora (8 AM - 9 AM): P(X = 5)
p7b <- ppois(3, lambda = 8)       # 1 hora (2:30 - 3:30 PM): P(X <= 3)
p7c <- dpois(2, lambda = 16)      # 2 horas: P(X = 2)
E7  <- 8 * 2.5                    # 2.5 horas (2 PM - 4:30 PM): E[X] = λ

tabla(c("Exactamente 5 en 1 h (\u03bb = 8)", "No más de 3 en 1 h (\u03bb = 8)",
        "Exactamente 2 en 2 h (\u03bb = 16)", "E[X] en 2.5 h (\u03bb = 20)"),
      c(p7a, p7b, p7c, E7))
Probabilidad Valor
Exactamente 5 en 1 h (λ = 8) 0.0916
No más de 3 en 1 h (λ = 8) 0.0424
Exactamente 2 en 2 h (λ = 16) 1.44e-05
E[X] en 2.5 h (λ = 20) 20.0000

Problema 8

\(X\): número de semillas que germinan. \[X \sim \text{Binomial}(n = 20,\ p = 0.90)\]

E8  <- 20 * 0.90                          # E[X] = np
p8  <- pbinom(15, size = 20, prob = 0.90) # P(X <= 15)

tabla(c("Semillas esperadas E[X]", "P(X <= 15)"), c(E8, p8))
Probabilidad Valor
Semillas esperadas E[X] 18.0000
P(X <= 15) 0.0432
x <- 0:20
grafica_fx(x, dbinom(x, size = 20, prob = 0.90), titulo = "Binomial(n = 20, p = 0.90) - en azul X <= 15",
           resaltar = 0:15)

Se espera que germinen 18 semillas. Si germinan 15 o menos, sí hay razón para sospechar de la cifra del 90 %: esa probabilidad es apenas 0.0432, un resultado muy poco común si el 90 % fuera cierto.

Problema 9

\(X\): respuestas correctas, \(Y\): errores antes del primer acierto, \(W\): errores antes de 5 aciertos. \[p = \frac{1}{4} = 0.25\] \[X \sim \text{Binomial}(n = 100,\ p = 0.25), \qquad Y \sim \text{Geométrica}(p = 0.25), \qquad W \sim \text{BN}(r = 5,\ p = 0.25)\]

p9a <- pbinom(59, size = 100, prob = 0.25, lower.tail = FALSE)  # Binomial: P(X >= 60)
p9b <- dgeom(9, prob = 0.25)          # Geométrica: 9 errores antes del primer acierto
E9  <- 5 * (1 - 0.25) / 0.25          # Binomial negativa: E[X] errores antes de 5 aciertos

tabla(c("Aprobar: P(X >= 60), X ~ Bin(100, 0.25)",
        "Primer acierto en la pregunta 10: P(Y = 9), Y ~ Geom(0.25)",
        "Errores esperados antes de 5 aciertos: E[W], W ~ BN(5, 0.25)"),
      c(p9a, p9b, E9))
Probabilidad Valor
Aprobar: P(X >= 60), X ~ Bin(100, 0.25) 1.33e-13
Primer acierto en la pregunta 10: P(Y = 9), Y ~ Geom(0.25) 0.0188
Errores esperados antes de 5 aciertos: E[W], W ~ BN(5, 0.25) 15.0000

Respondiendo al azar, la probabilidad de aprobar es prácticamente cero. Se esperan 15 respuestas erróneas antes de completar 5 correctas.

Problema 10

\(X\): número de microorganismos por muestra. \[X \sim \text{Poisson}(\lambda = 15)\]

p10a <- ppois(16, lambda = 15, lower.tail = FALSE)   # P(X >= 17)
p10b <- ppois(18, lambda = 15)                       # P(X <= 18)
p10c <- dpois(2, lambda = 15)                        # P(X = 2)

tabla(c("Al menos 17: P(X >= 17)", "18 o menos: P(X <= 18)", "Exactamente 2: P(X = 2)"),
      c(p10a, p10b, p10c))
Probabilidad Valor
Al menos 17: P(X >= 17) 0.3359
18 o menos: P(X <= 18) 0.8195
Exactamente 2: P(X = 2) 3.44e-05

Problema 11

\(X\): número de pasajeros que llegan al vuelo. \[X \sim \text{Binomial}(n = 105,\ p = 0.90)\] \[\text{Todos tienen asiento si } X \leq 100\]

p11 <- pbinom(100, size = 105, prob = 0.90)   # P(X <= 100)

tabla("P(X <= 100)", p11)
Probabilidad Valor
P(X <= 100) 0.9833

La probabilidad de que todos los pasajeros que llegan tengan asiento es 0.9833.

Problema 12

\(X\): número de grietas en el pavimento. \[X \sim \text{Poisson}(\lambda), \qquad \lambda_{100\,m} = 1, \qquad \lambda_{500\,m} = 5\]

p12a <- dpois(8, lambda = 5)   # 500 m: P(X = 8)
p12b <- dpois(0, lambda = 1)   # 100 m: P(X = 0)
p12c <- ppois(1, lambda = 5)   # 500 m: P(X < 2) = P(X <= 1)

tabla(c("Exactamente 8 en 500 m (\u03bb = 5)", "Ninguna en 100 m (\u03bb = 1)", "Menos de 2 en 500 m (\u03bb = 5)"),
      c(p12a, p12b, p12c))
Probabilidad Valor
Exactamente 8 en 500 m (λ = 5) 0.0653
Ninguna en 100 m (λ = 1) 0.3679
Menos de 2 en 500 m (λ = 5) 0.0404

Problema 13

\(X\): número de sensores que superan la prueba. \[X \sim \text{Binomial}(n = 12,\ p = 0.92)\]

d1 <- dbinom(12, size = 12, prob = 0.92)                       # P(X = 12)
d2 <- pbinom(10, size = 12, prob = 0.92, lower.tail = FALSE)   # P(X >= 11)
d3 <- pbinom(10, size = 12, prob = 0.92)                       # 2 o más fallan: P(X <= 10)
d4 <- pbinom(9,  size = 12, prob = 0.92)                       # P(X < 10) = P(X <= 9)

decisiones <- data.frame(
  Directriz    = c("Reducir frecuencia de inspección", "Proceso de alta confiabilidad",
                   "Revisión preventiva de equipos", "Señal de alerta si X < 10"),
  Probabilidad = c("P(X = 12)", "P(X >= 11)", "P(X <= 10)", "P(X <= 9)"),
  Valor        = round(c(d1, d2, d3, d4), 4),
  Criterio     = c("> 0.35", "> 0.70", "> 0.20", "< 0.10"),
  Cumple       = c(d1 > 0.35, d2 > 0.70, d3 > 0.20, d4 < 0.10)
)
decisiones$Cumple <- ifelse(decisiones$Cumple, "Sí", "No")

knitr::kable(decisiones, align = c("l", "c", "c", "c", "c"))
Directriz Probabilidad Valor Criterio Cumple
Reducir frecuencia de inspección P(X = 12) 0.3677 > 0.35 Sí
Proceso de alta confiabilidad P(X >= 11) 0.7513 > 0.70 Sí
Revisión preventiva de equipos P(X <= 10) 0.2487 > 0.20 Sí
Señal de alerta si X < 10 P(X <= 9) 0.0652 < 0.10 Sí
x <- 0:12
grafica_fx(x, dbinom(x, size = 12, prob = 0.92), titulo = "Binomial(n = 12, p = 0.92)",
           resaltar = 11:12)

Decisiones de la empresa:

  • Reduce la frecuencia de las inspecciones el siguiente mes, porque \(P(X = 12) =\) 0.3677.
  • Clasifica el proceso como de alta confiabilidad, porque \(P(X \geq 11) =\) 0.7513.
  • Realiza la revisión preventiva de los equipos, porque \(P(X \leq 10) =\) 0.2487.
  • Sí se considera señal de alerta obtener menos de 10 sensores aprobados, porque \(P(X \leq 9) =\) 0.0652; si ocurre, se deben investigar las condiciones del proceso.

Manuel Alejandro Vargas Imuez
Teoría de Probabilidades
Pontificia Universidad Javeriana Cali