Parte 1: Configuración del entorno

# install.packages(c("ggplot2", "dplyr"))  # Ejecutar solo la primera vez

library(ggplot2)
library(dplyr)

cat("¡Entorno listo para el laboratorio!\n")
## ¡Entorno listo para el laboratorio!

Parte 2: Funciones de apoyo

A. Tema futurista, paleta y firma

autor <- "Diego Alejandro Tous Aponte"

# Paleta neón
neon <- c(cian = "#00F5FF", magenta = "#FF2BD6", violeta = "#8E2DE2",
          lima = "#39FF14", naranja = "#FF9F1C", azul = "#2D7BFF")

fondo   <- "#0B0F1A"
panel   <- "#101734"
rejilla <- "#1F2A5A"
texto   <- "#D6E4FF"

tema_futurista <- function(base_size = 14) {
  theme_minimal(base_size = base_size) +
    theme(
      text              = element_text(color = texto),
      plot.background   = element_rect(fill = fondo, color = NA),
      panel.background  = element_rect(fill = panel, color = NA),
      panel.grid.major  = element_line(color = rejilla, linewidth = 0.3),
      panel.grid.minor  = element_blank(),
      plot.title        = element_text(hjust = 0.5, face = "bold",
                                       color = neon["cian"]),
      plot.subtitle     = element_text(hjust = 0.5, color = neon["magenta"],
                                       size = base_size - 2),
      axis.title        = element_text(color = neon["cian"], face = "bold"),
      axis.text         = element_text(color = texto),
      axis.text.x       = element_text(size = 9),
      # Firma abajo a la derecha, pequeña
      plot.caption          = element_text(size = 8, color = "#8FA3D9",
                                           hjust = 1, face = "italic"),
      plot.caption.position = "plot",
      plot.margin           = margin(15, 20, 10, 15)
    )
}

B. Función para graficar distribuciones discretas

plot_distribution <- function(values, pmf, title, highlight = NULL,
                              highlight_color = neon["magenta"], label = NULL) {
  df <- data.frame(kn = values, k = factor(values, levels = values), prob = pmf)

  # Si hay muchas barras, se muestran menos etiquetas en el eje x
  paso   <- if (length(values) > 40) 5 else if (length(values) > 20) 2 else 1
  cortes <- as.character(values[seq(1, length(values), by = paso)])

  p <- ggplot(df, aes(x = k, y = prob)) +
    geom_col(fill = neon["violeta"], color = neon["cian"],
             linewidth = 0.4, alpha = 0.85) +
    scale_x_discrete(breaks = cortes) +
    labs(title = toupper(title),
         subtitle = "Función de probabilidad",
         x = "Valores (k)", y = "Probabilidad P(X=k)",
         caption = autor) +
    tema_futurista()

  if (!is.null(highlight)) {
    df_high <- df %>% filter(kn %in% highlight)
    p <- p +
      geom_col(data = df_high, aes(x = k, y = prob),
               fill = unname(highlight_color), color = "white",
               linewidth = 0.4, alpha = 0.95)
  }

  if (!is.null(label)) {
    p <- p + annotate("label", x = length(values) / 2 + 0.5,
                      y = max(pmf) * 0.92, label = label, size = 5,
                      color = neon["lima"], fill = fondo,
                      fontface = "bold", linewidth = 0.4)
  }

  print(p)
}

# Tabla resumen de resultados (se llena a lo largo del laboratorio)
resultados <- data.frame(Ejercicio = character(), Probabilidad = numeric())
registrar <- function(nombre, valor) {
  resultados <<- rbind(resultados,
                       data.frame(Ejercicio = nombre,
                                  Probabilidad = round(valor, 5)))
}

Parte 3: Distribuciones discretas

3.1. Distribución de Bernoulli

Definición: Modela un único ensayo con dos resultados posibles: éxito (1) o fracaso (0).

  • Media: \(E(X) = p\)
  • Varianza: \(Var(X) = p(1-p)\)

B1. Ejemplo de Distribución de Bernoulli

n_bernoulli <- 1    # Un solo ensayo
p_bernoulli <- 0.5  # Probabilidad de éxito (cara)

x_bernoulli   <- 0:n_bernoulli
pmf_bernoulli <- dbinom(x_bernoulli, n_bernoulli, p_bernoulli)

plot_distribution(x_bernoulli, pmf_bernoulli,
                  sprintf("Distribución de Bernoulli (p=%.1f)", p_bernoulli))

cat(sprintf("Media (Esperanza): %.2f\n", n_bernoulli * p_bernoulli))
## Media (Esperanza): 0.50
cat(sprintf("Varianza: %.2f\n", n_bernoulli * p_bernoulli * (1 - p_bernoulli)))
## Varianza: 0.25

3.2. Distribución Binomial

Definición: Número de éxitos en \(n\) ensayos de Bernoulli independientes.

  • Función de probabilidad: \(P(X=k)=\binom{n}{k}p^k(1-p)^{n-k}\)
  • Media: \(E(X)=np\)
  • Varianza: \(Var(X)=np(1-p)\)

B2. Ejemplo de Distribución Binomial

n_binom <- 10
p_binom <- 0.5

x_binom   <- 0:n_binom
pmf_binom <- dbinom(x_binom, n_binom, p_binom)

plot_distribution(x_binom, pmf_binom,
                  sprintf("Distribución Binomial (n=%d, p=%.1f)", n_binom, p_binom))

cat(sprintf("Media (Esperanza): %.2f\n", n_binom * p_binom))
## Media (Esperanza): 5.00
cat(sprintf("Varianza: %.2f\n", n_binom * p_binom * (1 - p_binom)))
## Varianza: 2.50

Ejemplo 1. Probabilidad de obtener exactamente 6 caras

n <- 10; p <- 0.5; k <- 6

prob_binom_1 <- dbinom(k, n, p)
cat(sprintf("Probabilidad de obtener exactamente 6 caras: P(X = 6) = %.5f\n", prob_binom_1))
## Probabilidad de obtener exactamente 6 caras: P(X = 6) = 0.20508
registrar("Binomial 1: P(X = 6)", prob_binom_1)

plot_distribution(0:n, dbinom(0:n, n, p),
                  "Distribución Binomial - P(X=6)",
                  highlight = k,
                  label = sprintf("P(X = 6) = %.5f", prob_binom_1))

Ejemplo 2. Probabilidad de a lo sumo 4 piezas defectuosas

La probabilidad de que una pieza sea defectuosa es 0.1. Halla la probabilidad de que en una muestra de 25 piezas se encuentren a lo sumo cuatro defectuosas.

n <- 25; p <- 0.1

probabilidades         <- dbinom(0:n, n, p)
probabilidad_acumulada <- pbinom(4, n, p)

plot_distribution(0:n, probabilidades,
                  "Distribución Binomial - P(X <= 4)",
                  highlight = 0:4,
                  label = sprintf("P(X <= 4) = %.5f", probabilidad_acumulada))

cat(sprintf("La probabilidad de que en una muestra de 25 piezas se encuentren a lo sumo 4 defectuosas es: %.5f\n",
            probabilidad_acumulada))
## La probabilidad de que en una muestra de 25 piezas se encuentren a lo sumo 4 defectuosas es: 0.90201
registrar("Binomial 2: P(X <= 4)", probabilidad_acumulada)

Ejemplo 3. Número esperado de psicólogos que encuentran trabajo

El 60% de los psicólogos de una facultad encuentran trabajo el primer año. De 100 psicólogos en un curso, ¿cuántos se espera que se coloquen? ¿Cuál es la varianza?

n <- 100; p <- 0.6

esperanza_binom <- n * p
varianza_binom  <- n * p * (1 - p)

cat(sprintf("Se espera que %.0f psicólogos encuentren trabajo en el primer año.\n", esperanza_binom))
## Se espera que 60 psicólogos encuentren trabajo en el primer año.
cat(sprintf("La varianza es: %.2f\n", varianza_binom))
## La varianza es: 24.00

Ejemplo 4. Probabilidades con Rh-

Si el 40% de los comunicadores sociales tiene Rh-, en una muestra de siete: (a) ¿probabilidad de que todos sean Rh-? (b) ¿probabilidad de que máximo cuatro sean Rh-?

n <- 7; p <- 0.4

# (a) Todos Rh-
prob_todas_rh_neg <- dbinom(n, n, p)
cat(sprintf("Probabilidad de que todas sean Rh-: P(X = 7) = %.5f\n", prob_todas_rh_neg))
## Probabilidad de que todas sean Rh-: P(X = 7) = 0.00164
registrar("Binomial 4a: P(X = 7)", prob_todas_rh_neg)

plot_distribution(0:n, dbinom(0:n, n, p),
                  "Distribución Binomial - P(X = 7)",
                  highlight = 7,
                  label = sprintf("P(X = 7) = %.5f", prob_todas_rh_neg))

# (b) Máximo cuatro Rh-
prob_maximo_cuatro <- pbinom(4, n, p)
cat(sprintf("Probabilidad de que máximo cuatro sean Rh-: P(X <= 4) = %.5f\n", prob_maximo_cuatro))
## Probabilidad de que máximo cuatro sean Rh-: P(X <= 4) = 0.90374
registrar("Binomial 4b: P(X <= 4)", prob_maximo_cuatro)

plot_distribution(0:n, dbinom(0:n, n, p),
                  "Distribución Binomial - P(X <= 4)",
                  highlight = 0:4,
                  label = sprintf("P(X <= 4) = %.5f", prob_maximo_cuatro))

Ejemplo 5. Probabilidad de al menos 3 efectos secundarios

El 25% de quienes toman cierto antibiótico sufre efectos secundarios. De ocho enfermos, halla la probabilidad de que al menos tres los sufran.

p <- 0.25; n <- 8

# P(X >= 3) = 1 - P(X <= 2)
prob_al_menos_tres <- 1 - pbinom(2, n, p)
cat(sprintf("La probabilidad de que al menos tres enfermos sufran efectos secundarios es: %.5f\n",
            prob_al_menos_tres))
## La probabilidad de que al menos tres enfermos sufran efectos secundarios es: 0.32146
registrar("Binomial 5: P(X >= 3)", prob_al_menos_tres)

plot_distribution(0:n, dbinom(0:n, n, p),
                  "Distribución Binomial - P(X >= 3)",
                  highlight = 3:n,
                  label = sprintf("P(X >= 3) = %.5f", prob_al_menos_tres))

Ejemplo 6. Probabilidad de menos de 3 efectos secundarios

p <- 0.25; n <- 8

# P(X < 3) = P(X <= 2)
prob_menos_de_tres <- pbinom(2, n, p)
cat(sprintf("La probabilidad de que menos de 3 enfermos sufran efectos secundarios es: %.5f\n",
            prob_menos_de_tres))
## La probabilidad de que menos de 3 enfermos sufran efectos secundarios es: 0.67854
registrar("Binomial 6: P(X < 3)", prob_menos_de_tres)

plot_distribution(0:n, dbinom(0:n, n, p),
                  "Distribución Binomial - P(X < 3)",
                  highlight = 0:2,
                  label = sprintf("P(X < 3) = %.5f", prob_menos_de_tres))

3.3. Distribución Binomial Negativa

Definición: Modela el número de ensayos de Bernoulli necesarios para obtener un número fijo de éxitos (\(r\)).

  • Función de probabilidad: \(P(X=k)=\binom{k-1}{r-1}p^r(1-p)^{k-r}\), para \(k=r,r+1,\dots\)
  • Media: \(E(X)=r/p\)
  • Varianza: \(Var(X)=r(1-p)/p^2\)

Nota de R: dnbinom(x, size=r, prob=p) devuelve la probabilidad de obtener x fracasos antes del r-ésimo éxito.

Ejemplo 1. Probabilidad de 5 éxitos antes de 3 fracasos

r <- 5     # Número de éxitos
p <- 0.7   # Probabilidad de éxito
k <- 3     # Fracasos antes de obtener 5 éxitos

prob_nbinom_1 <- dnbinom(k, size = r, prob = p)
cat(sprintf("Probabilidad de obtener 5 éxitos antes de 3 fracasos: P(X=5) = %.5f\n",
            prob_nbinom_1))
## Probabilidad de obtener 5 éxitos antes de 3 fracasos: P(X=5) = 0.15883
registrar("Bin. Negativa 1: 5 éxitos antes de 3 fracasos", prob_nbinom_1)

# Momentos
esperanza_nbinom  <- r * (1 - p) / p
varianza_nbinom   <- r * (1 - p) / (p^2)
desviacion_nbinom <- sqrt(varianza_nbinom)

cat("\nMomentos en el Modelo Binomial Negativo\n")
## 
## Momentos en el Modelo Binomial Negativo
cat(sprintf("Esperanza: E(X) = %.2f\n", esperanza_nbinom))
## Esperanza: E(X) = 2.14
cat(sprintf("Varianza: V(X) = %.2f\n", varianza_nbinom))
## Varianza: V(X) = 3.06
cat(sprintf("Desviación estándar: %.2f\n", desviacion_nbinom))
## Desviación estándar: 1.75

Ejemplo 2. Probabilidad de que el 10° niño sea el tercero en contagiarse

La probabilidad de que un niño expuesto al COVID-19 se contagie es 0.6.

n <- 10; r <- 3; p <- 0.6
k <- n - r  # Fracasos antes de obtener 3 éxitos

prob_nbinom_2 <- dnbinom(k, size = r, prob = p)
cat(sprintf("Probabilidad de que el 10° niño sea el tercero en contagiarse: %.5f\n",
            prob_nbinom_2))
## Probabilidad de que el 10° niño sea el tercero en contagiarse: 0.01274
registrar("Bin. Negativa 2: 10° niño es el 3° contagiado", prob_nbinom_2)

3.4. Distribución de Poisson

Definición: Modela el número de eventos en un intervalo de tiempo o espacio, dado un promedio de ocurrencia (\(\lambda\)).

  • Función de probabilidad: \(P(X=k)=\dfrac{\lambda^k e^{-\lambda}}{k!}\), para \(k=0,1,2,\dots\)
  • Media: \(E(X)=\lambda\)
  • Varianza: \(Var(X)=\lambda\)

Ejemplo 1. Probabilidad de recibir exactamente 3 llamadas

Una central telefónica recibe en promedio 2 llamadas por minuto.

lambda_poisson <- 2
k <- 3

prob_poisson_1 <- dpois(k, lambda_poisson)
cat(sprintf("Probabilidad de recibir exactamente 3 llamadas: P(X=3) = %.5f\n", prob_poisson_1))
## Probabilidad de recibir exactamente 3 llamadas: P(X=3) = 0.18045
registrar("Poisson 1: P(X = 3)", prob_poisson_1)

plot_distribution(0:14, dpois(0:14, lambda_poisson),
                  "Distribución de Poisson - P(X=3)",
                  highlight = k,
                  label = sprintf("P(X=3) = %.5f", prob_poisson_1))

Ejemplo 2. Probabilidad de 6 o más erizos en una hora

Los erizos cruzan una autovía a razón de 4 cada 30 minutos.

lambda_poisson <- 8  # 4 erizos/30 min * 2 = 8 por hora
prob_6_o_mas   <- 1 - ppois(5, lambda_poisson)  # P(X >= 6)

cat(sprintf("La probabilidad de que 6 o más erizos crucen la autovía en una hora es: %.5f\n",
            prob_6_o_mas))
## La probabilidad de que 6 o más erizos crucen la autovía en una hora es: 0.80876
registrar("Poisson 2: P(X >= 6)", prob_6_o_mas)

plot_distribution(0:19, dpois(0:19, lambda_poisson),
                  "Distribución de Poisson - P(X >= 6)",
                  highlight = 6:19,
                  label = sprintf("P(X >= 6) = %.5f", prob_6_o_mas))

Ejemplo 3. Probabilidad de más de 3 accidentes en 5 años

En una carretera se producen en promedio 2 accidentes anuales.

lambda_5_years <- 2 * 5

prob_mas_de_3 <- 1 - ppois(3, lambda_5_years)  # P(X > 3)
cat(sprintf("La probabilidad de que en 5 años se produzcan más de 3 accidentes es: %.5f\n",
            prob_mas_de_3))
## La probabilidad de que en 5 años se produzcan más de 3 accidentes es: 0.98966
registrar("Poisson 3: P(X > 3) en 5 años", prob_mas_de_3)

plot_distribution(0:24, dpois(0:24, lambda_5_years),
                  "Distribución de Poisson - P(X > 3) en 5 años",
                  highlight = 4:24,
                  label = sprintf("P(X > 3) = %.5f", prob_mas_de_3))

Ejemplo 4. Probabilidad de 16 coches en 2 minutos

En un semáforo pasan en promedio 10 coches por minuto.

lambda_poisson <- 10 * 2
k <- 16

prob_poisson <- dpois(k, lambda_poisson)
cat(sprintf("La probabilidad de que pasen exactamente 16 coches en 2 minutos es: %.5f\n",
            prob_poisson))
## La probabilidad de que pasen exactamente 16 coches en 2 minutos es: 0.06456
registrar("Poisson 4: P(X = 16)", prob_poisson)

plot_distribution(0:39, dpois(0:39, lambda_poisson),
                  "Distribución de Poisson - P(X=16)",
                  highlight = k,
                  label = sprintf("P(X=16) = %.5f", prob_poisson))

Ejemplo 5. Probabilidades con cheques sin fondo

Un banco recibe en promedio 6 cheques sin fondo por día.

lambda_dia <- 6

# a. Cuatro cheques sin fondo en un día
prob_a <- dpois(4, lambda_dia)
cat(sprintf("a. Probabilidad de 4 cheques sin fondo en un día: %.5f\n", prob_a))
## a. Probabilidad de 4 cheques sin fondo en un día: 0.13385
registrar("Poisson 5a: P(X = 4) en un día", prob_a)

plot_distribution(0:14, dpois(0:14, lambda_dia),
                  "Poisson - P(X=4) en un día",
                  highlight = 4,
                  label = sprintf("P(X=4) = %.5f", prob_a))

# b. Cincuenta cheques sin fondo en una semana
lambda_semana <- lambda_dia * 7
prob_b <- dpois(50, lambda_semana)
cat(sprintf("b. Probabilidad de 50 cheques sin fondo en una semana: %.5f\n", prob_b))
## b. Probabilidad de 50 cheques sin fondo en una semana: 0.02748
registrar("Poisson 5b: P(X = 50) en una semana", prob_b)

plot_distribution(0:69, dpois(0:69, lambda_semana),
                  "Poisson - P(X=50) en una semana",
                  highlight = 50,
                  label = sprintf("P(X=50) = %.5f", prob_b))

# c. Diez cheques sin fondo en 12 horas
lambda_12horas <- lambda_dia * 0.5
prob_c <- dpois(10, lambda_12horas)
cat(sprintf("c. Probabilidad de 10 cheques sin fondo en 12 horas: %.5f\n", prob_c))
## c. Probabilidad de 10 cheques sin fondo en 12 horas: 0.00081
registrar("Poisson 5c: P(X = 10) en 12 horas", prob_c)

plot_distribution(0:19, dpois(0:19, lambda_12horas),
                  "Poisson - P(X=10) en 12 horas",
                  highlight = 10,
                  label = sprintf("P(X=10) = %.5f", prob_c))

# d. Cinco cheques sin fondo en 4 horas
lambda_4horas <- lambda_dia * (4/24)
prob_d <- dpois(5, lambda_4horas)
cat(sprintf("d. Probabilidad de 5 cheques sin fondo en 4 horas: %.5f\n", prob_d))
## d. Probabilidad de 5 cheques sin fondo en 4 horas: 0.00307
registrar("Poisson 5d: P(X = 5) en 4 horas", prob_d)

plot_distribution(0:14, dpois(0:14, lambda_4horas),
                  "Poisson - P(X=5) en 4 horas",
                  highlight = 5,
                  label = sprintf("P(X=5) = %.5f", prob_d))

Ejemplo 6. Probabilidad de al menos 2 accidentes en un mes

En una empresa el promedio es de 5 accidentes por mes.

lambda_poisson <- 5

# P(X >= 2) = 1 - P(X <= 1)
prob_al_menos_2 <- 1 - ppois(1, lambda_poisson)
cat(sprintf("La probabilidad de que ocurran como mínimo 2 accidentes en un mes es: %.5f\n",
            prob_al_menos_2))
## La probabilidad de que ocurran como mínimo 2 accidentes en un mes es: 0.95957
registrar("Poisson 6: P(X >= 2) en un mes", prob_al_menos_2)

plot_distribution(0:14, dpois(0:14, lambda_poisson),
                  "Poisson - P(X >= 2) accidentes/mes",
                  highlight = 2:14,
                  label = sprintf("P(X >= 2) = %.5f", prob_al_menos_2))

Ejemplo 7. Probabilidad de 8 accidentes en un trimestre

lambda_trimestre <- 5 * 3
k <- 8

prob_poisson_8 <- dpois(k, lambda_trimestre)
cat(sprintf("La probabilidad de que ocurran 8 accidentes en un trimestre es: %.5f\n",
            prob_poisson_8))
## La probabilidad de que ocurran 8 accidentes en un trimestre es: 0.01944
registrar("Poisson 7: P(X = 8) en un trimestre", prob_poisson_8)

plot_distribution(0:24, dpois(0:24, lambda_trimestre),
                  "Poisson - P(X=8) en un trimestre",
                  highlight = k,
                  label = sprintf("P(X=8) = %.5f", prob_poisson_8))

3.5. Distribución Hipergeométrica

Definición: Modela el número de éxitos en una muestra de tamaño \(n\), extraída sin reemplazo de una población finita de tamaño \(N\) que contiene \(K\) éxitos.

  • Función de probabilidad: \(P(X=k)=\dfrac{\binom{K}{k}\binom{N-K}{n-k}}{\binom{N}{n}}\)
  • Media: \(E(X)=n\cdot\dfrac{K}{N}\)
  • Varianza: \(Var(X)=n\cdot\dfrac{K}{N}\left(1-\dfrac{K}{N}\right)\dfrac{N-n}{N-1}\)

Nota de R: dhyper(x, m=K, n=N-K, k=n), donde m = éxitos en la población, n = fracasos en la población y k = tamaño de la muestra.

Ejemplo 1. Probabilidad de seleccionar exactamente 3 bolas rojas

Una urna contiene 10 bolas rojas y 20 azules. Se seleccionan 5 sin reemplazo.

N <- 30   # Población total
K <- 10   # Éxitos en la población (bolas rojas)
n <- 5    # Tamaño de la muestra
k <- 3    # Éxitos en la muestra

prob_hyper_1 <- dhyper(k, m = K, n = N - K, k = n)
cat(sprintf("Probabilidad de seleccionar exactamente 3 bolas rojas: P(X=3) = %.5f\n",
            prob_hyper_1))
## Probabilidad de seleccionar exactamente 3 bolas rojas: P(X=3) = 0.15999
registrar("Hipergeométrica 1: P(X = 3)", prob_hyper_1)

# Momentos
esperanza_hyper  <- n * (K / N)
varianza_hyper   <- n * (K/N) * (1 - K/N) * ((N - n) / (N - 1))
desviacion_hyper <- sqrt(varianza_hyper)

cat("\nMomentos en el Modelo Hipergeométrico\n")
## 
## Momentos en el Modelo Hipergeométrico
cat(sprintf("Esperanza: E(X) = %.2f\n", esperanza_hyper))
## Esperanza: E(X) = 1.67
cat(sprintf("Varianza: V(X) = %.2f\n", varianza_hyper))
## Varianza: V(X) = 0.96
cat(sprintf("Desviación estándar: %.2f\n", desviacion_hyper))
## Desviación estándar: 0.98
plot_distribution(0:n, dhyper(0:n, m = K, n = N - K, k = n),
                  "Distribución Hipergeométrica - P(X=3)",
                  highlight = k,
                  label = sprintf("P(X=3) = %.5f", prob_hyper_1))

Parte 4: Ejercicios propuestos

Ejercicio 1 (Binomial): examen de 15 preguntas al azar

Un estudiante responde 15 preguntas de opción múltiple (4 opciones cada una) al azar. ¿Probabilidad de acertar exactamente 6? ¿Y de acertar 5 o menos?

n <- 15; p <- 1/4

prob_6         <- dbinom(6, n, p)
prob_5_o_menos <- pbinom(5, n, p)

cat(sprintf("P(X = 6) = %.5f\n", prob_6))
## P(X = 6) = 0.09175
cat(sprintf("P(X <= 5) = %.5f\n", prob_5_o_menos))
## P(X <= 5) = 0.85163
registrar("Ejercicio 1: P(X = 6)", prob_6)
registrar("Ejercicio 1: P(X <= 5)", prob_5_o_menos)

plot_distribution(0:n, dbinom(0:n, n, p),
                  "Binomial - Examen (n=15, p=0.25)",
                  highlight = 6,
                  label = sprintf("P(X=6)=%.5f", prob_6))

Ejercicio 2 (Poisson): visitas por minuto en un sitio web

Un sitio web recibe en promedio 3 visitas por minuto. ¿Probabilidad de exactamente 5 visitas? ¿Y de 2 o menos?

lambda <- 3

prob_5         <- dpois(5, lambda)
prob_2_o_menos <- ppois(2, lambda)

cat(sprintf("P(X = 5) = %.5f\n", prob_5))
## P(X = 5) = 0.10082
cat(sprintf("P(X <= 2) = %.5f\n", prob_2_o_menos))
## P(X <= 2) = 0.42319
registrar("Ejercicio 2: P(X = 5)", prob_5)
registrar("Ejercicio 2: P(X <= 2)", prob_2_o_menos)

plot_distribution(0:14, dpois(0:14, lambda),
                  "Poisson - Visitas por minuto (λ=3)",
                  highlight = 5,
                  label = sprintf("P(X=5)=%.5f", prob_5))

Ejercicio 3 (Hipergeométrica): piezas defectuosas en un lote

Un lote de 50 piezas contiene 10 defectuosas. Se seleccionan 8 al azar sin reemplazo. ¿Probabilidad de exactamente 2 defectuosas?

N <- 50; K <- 10; n <- 8; k <- 2

prob_2_defectuosas <- dhyper(k, m = K, n = N - K, k = n)
cat(sprintf("P(X = 2 defectuosas) = %.5f\n", prob_2_defectuosas))
## P(X = 2 defectuosas) = 0.32172
registrar("Ejercicio 3: P(X = 2 defectuosas)", prob_2_defectuosas)

plot_distribution(0:n, dhyper(0:n, m = K, n = N - K, k = n),
                  "Hipergeométrica - 2 defectuosas en muestra de 8",
                  highlight = k,
                  label = sprintf("P(X=2) = %.5f", prob_2_defectuosas))

Ejercicio 4 (Binomial Negativa): tercera pieza defectuosa en la décima

Una máquina produce piezas con 5% de probabilidad de defecto. ¿Probabilidad de que la tercera defectuosa sea la décima pieza producida?

r <- 3       # 3 defectuosas (éxitos)
p <- 0.05    # Probabilidad de defecto
k <- 10 - 3  # Fracasos antes del 3er éxito

prob_3ra_defectuosa <- dnbinom(k, size = r, prob = p)
cat(sprintf("P(la 3ª defectuosa sea la 10ª pieza) = %.5f\n", prob_3ra_defectuosa))
## P(la 3ª defectuosa sea la 10ª pieza) = 0.00314
registrar("Ejercicio 4: 3ª defectuosa en la 10ª pieza", prob_3ra_defectuosa)

plot_distribution(0:60 + r, dnbinom(0:60, size = r, prob = p),
                  "Binomial Negativa - Posición de la 3ª defectuosa (p=0.05)",
                  highlight = 10,
                  label = sprintf("P(X=10) = %.5f", prob_3ra_defectuosa))

Resumen de resultados

knitr::kable(resultados, align = "lc",
             caption = paste("Probabilidades calculadas en el laboratorio —", autor))
Probabilidades calculadas en el laboratorio — Diego Alejandro Tous Aponte
Ejercicio Probabilidad
Binomial 1: P(X = 6) 0.20508
Binomial 2: P(X <= 4) 0.90201
Binomial 4a: P(X = 7) 0.00164
Binomial 4b: P(X <= 4) 0.90374
Binomial 5: P(X >= 3) 0.32146
Binomial 6: P(X < 3) 0.67854
Bin. Negativa 1: 5 éxitos antes de 3 fracasos 0.15883
Bin. Negativa 2: 10° niño es el 3° contagiado 0.01274
Poisson 1: P(X = 3) 0.18045
Poisson 2: P(X >= 6) 0.80876
Poisson 3: P(X > 3) en 5 años 0.98966
Poisson 4: P(X = 16) 0.06456
Poisson 5a: P(X = 4) en un día 0.13385
Poisson 5b: P(X = 50) en una semana 0.02748
Poisson 5c: P(X = 10) en 12 horas 0.00081
Poisson 5d: P(X = 5) en 4 horas 0.00307
Poisson 6: P(X >= 2) en un mes 0.95957
Poisson 7: P(X = 8) en un trimestre 0.01944
Hipergeométrica 1: P(X = 3) 0.15999
Ejercicio 1: P(X = 6) 0.09175
Ejercicio 1: P(X <= 5) 0.85163
Ejercicio 2: P(X = 5) 0.10082
Ejercicio 2: P(X <= 2) 0.42319
Ejercicio 3: P(X = 2 defectuosas) 0.32172
Ejercicio 4: 3ª defectuosa en la 10ª pieza 0.00314