1. Variables Aleatorias

Definición

Una variable aleatoria es una función que asigna un número real a cada resultado en el espacio muestral de un experimento aleatorio.

  • Se usa una letra mayúscula para denotar una variable aleatoria (ej: X)
  • Se usa una letra minúscula para denotar un valor específico (ej: x)

Notación

  • \(P(X = x)\): probabilidad de que X tome el valor x
  • \(P(X \leq x)\): probabilidad de que X tome un valor menor o igual a x

Tipos de Variables Aleatorias

Variables Aleatorias Discretas

Pueden tomar un número finito o infinito numerable de valores.

Ejemplo: Número de caras en dos lanzamientos de moneda

# Espacio muestral: {CC, CS, SC, SS}
# Variable X: número de caras
x <- c(0, 1, 2)
prob <- c(1/4, 1/2, 1/4)

# Crear tabla de distribución
data.frame(
  "Número de caras" = x,
  "Probabilidad" = prob,
  check.names = FALSE
) %>%
  gt() %>%
  tab_header(title = "Tabla 1. Distribución del número de caras en dos lanzamientos")
Tabla 1. Distribución del número de caras en dos lanzamientos
Número de caras Probabilidad
0 0.25
1 0.50
2 0.25

Variables Aleatorias Continuas

Pueden tomar cualquier valor en un intervalo de números reales.

Ejemplo: Altura de una persona, peso, tiempo, etc.

Expectativa Matemática

La expectativa matemática de una variable aleatoria discreta X es:

\[\mu = E(X) = \sum x \cdot P(X = x)\]

Ejemplo: Expectativa en Lanzamiento de Dado

# Ejemplo: Lanzamiento de un dado legal
x_dado <- 1:6
prob_dado <- rep(1/6, 6)

# Calcular expectativa
expectativa <- sum(x_dado * prob_dado)

Expectativa del lanzamiento de un dado: 3.5

Gráficamente, la distribución es:

# Gráfica de la distribución
ggplot(data.frame(x = x_dado, p = prob_dado), aes(x = x, y = p)) +
  geom_bar(stat = "identity", fill = "steelblue", alpha = 0.7) +
  labs(x = "Valor del Dado", y = "Probabilidad") +
  theme_minimal()

FIGURA 1. Distribución de probabilidad del lanzamiento de un dado “legal”. Dado “legal” significa que tiene seis caras numeradas del 1 al 6, y cada cara tiene la misma probabilidad de salir.

Interpretación: El resultado esperado al lanzar un dado es 3.5, que no es un valor que pueda salir en un solo lanzamiento, pero es el valor promedio a largo plazo si se lanzan muchos dados. Por extensión, el valor esperado de un conjunto de números con igual probabilidad, es la media de los números.

Ejemplo: Expectativa en Juego de Cartas

En este juego ganas según la carta que saques de una baraja estándar de 52 cartas:

  • $1 si sacas un corazón
  • $5 si sacas un as
  • $10 si sacas el rey de espadas
  • $0 por cualquier otra carta

Si tienes que apostar $1 para jugar, ¿cuál es la expectativa de tu ganancia en el juego? ¿Vale la pena jugar?

Tememos que calcular las probabilidades de cada evento:

FIGURA 2. Baraja Francesa
FIGURA 2. Baraja Francesa


TABLA 2. Eventos, ganancias y probabilidades en un juego de cartas.

Evento Ganancia Probabilidad
No ganar $0 35/52
Sacar un corazón $1 12/52
Sacar un as $5 4/52
Sacar el rey de espadas $10 1/52
# Definir ganancias y probabilidades
ganancias <- c(0, 1, 5, 10)
probabilidades <- c(35/52, 12/52, 4/52, 1/52)

# Calcular expectativa
expectativa_juego <- sum(ganancias * probabilidades)

# Crear tabla
data.frame(
  "Ganancia" = paste("$", ganancias),
  "Probabilidad" = round(probabilidades, 3),
  "Contribución" = round(ganancias * probabilidades, 3),
  check.names = FALSE
) %>%
  gt() %>%
  tab_header(title = "TABLA 3. Expectativa del Juego de Cartas") %>%
  grand_summary_rows(
    columns = "Contribución",
    fns = list(Expectativa = ~sum(.))
  )
TABLA 3. Expectativa del Juego de Cartas
Ganancia Probabilidad Contribución
$ 0 0.673 0.000
$ 1 0.231 0.231
$ 5 0.077 0.385
$ 10 0.019 0.192
Expectativa 0.808

Expectativa del juego: $ 0.81

EJERCICIO 1. ¿Cuál es la esperanza o expectativa matemática (valor esperado) del número de mutaciones por bacteria en una generación?

Datos:

Número de Mutaciones Probabilidad
0 0.6
1 0.2
2 0.15
3 0.05

2. Distribuciones de Probabilidad

Una distribución de probabilidad describe cómo se distribuyen los valores de una variable aleatoria y las probabilidades asociadas a esos valores.

Tipos de Distribuciones

  • Distribuciones Discretas: para variables aleatorias discretas (ej: Binomial, Poisson)
  • Distribuciones Continuas: para variables aleatorias continuas (ej: Normal, Exponencial)

3. Distribución Binomial

Características

La distribución binomial describe el número de éxitos k en una secuencia de n ensayos independientes, donde cada ensayo tiene:

  1. Dos posibles resultados: éxito (p) o fracaso (q = 1-p)
  2. Probabilidad constante de éxito en cada ensayo
  3. Ensayos independientes

Función de Probabilidad

\[P(X = k) = \binom{n}{k} p^k (1-p)^{n-k}\]

donde:

  • n = número de ensayos
  • k = número de éxitos
  • p = probabilidad de éxito

Funciones en R para la Distribución Binomial

dbinom(k, n, p): función de probabilidad exacta: Calcula la probabilidad de obtener exactamente k éxitos en n ensayos. pbinom(k, n, p): función de distribución acumulada: Calcula la probabilidad acumulada de obtener hasta (e incluyendo) un cierto número de éxitos (k) en un experimento binomial.
qbinom(pac, n, p): función cuantil: Calcula el número mínimo de éxitos necesarios para alcanzar una probabilidad acumulada dada (pac) en un experimento binomial. rbinom(m, n, p): números aleatorios simulados: Genera m números aleatorios siguiendo una distribución binomial.

Ejemplo: Lanzamiento de Dado

Tirar un dado 10 veces. ¿Probabilidad de obtener exactamente 4 veces el número 6?

n <- 10
p <- 1/6
k <- 4

# Probabilidad exacta
prob_exacta <- dbinom(k, n, p)

Probabilidad de exactamente 4 seises: 0.0543

Gráficamente, la distribución es:

# Gráfica de la distribución
x <- 0:10
y <- dbinom(x, n, p)

ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_point(size = 3, color = "blue") +
  geom_segment(aes(xend = x, yend = 0), linetype = "dashed") +
  geom_point(data = data.frame(x = k, y = dbinom(k, n, p)), 
             size = 4, color = "red") +
  scale_x_continuous(breaks = 0:10) +
  labs(
       x = "Número de veces que sale 6", 
       y = "Probabilidad") +
  theme_minimal()

FIGURA 3. Distribución binomial del número de veces que sale 6 al lanzar un dado 10 veces. El punto rojo indica la probabilidad de obtener exactamente 4 seises.

Ejemplo: Probabilidad Acumulada

¿Probabilidad de obtener al menos 4 seises?

# P(X >= 4) = 1 - P(X <= 3)
prob_acum <- pbinom(3, n, p, lower.tail = FALSE)

Probabilidad de al menos 4 seises: 0.0697

Ejemplo: Fibrosis Quística (FQ)

El gen de fibrosis quística es autosómico recesivo. Si dos portadores heterocigotos tienen hijos, el riesgo de un bebé homocigoto con FQ es 0.25.
¿Cuál es la probabilidad de que en una familia con 3 hijos, 2 o más tengan FQ?

n_hijos <- 3
p_fc <- 0.25

# ¿Probabilidad de 2 o más afectados?
prob_2_o_mas <- pbinom(1, n_hijos, p_fc, lower.tail = FALSE)

Probabilidad de 2 o más afectados: 0.1562

Ahora, si consideramos 100 familias con 3 hijos cada una, ¿cuál es la probabilidad de encontrar exactamente 20 familias con 2 o más afectados?

# Ahora, de 100 familias con 3 hijos, ¿probabilidad de encontrar exactamente 20 
# familias con 2 o más afectados?
n_familias <- 100
k_familias <- 20
p_familia <- prob_2_o_mas

prob_20_familias <- dbinom(k_familias, n_familias, p_familia)

Probabilidad de exactamente 20 familias: 0.0504

Gráfica de la distribución binomial para 100 familias:

x_fam <- 0:40
y_fam <- dbinom(x_fam, n_familias, p_familia)
ggplot(data.frame(x = x_fam, y = y_fam), aes(x = x, y = y)) +
  geom_bar(stat = "identity", fill = "lightblue", alpha = 0.7, width = 0.6) +
  geom_point(data = data.frame(x = k_familias, y = dbinom(k_familias, n_familias, p_familia)), 
             size = 4, color = "red") +
  labs(
       x = "Número de familias con 2 o más afectados", 
       y = "Probabilidad") +
  theme_minimal()

FIGURA 4. Distribución binomial del número de familias de tres hijos con 2 o más afectados por fibrosis quística en 100 familias. El punto rojo indica la probabilidad de encontrar exactamente 20 familias con 2 o más afectados.

EJERCICIO 2. Un microbiólogo analiza 12 aislamientos bacterianos para detectar resistencia a un antibiótico específico. Estudios previos muestran que la probabilidad de que un aislamiento sea resistente es el 30%.

  • ¿Cuál es la probabilidad de que exactamente 5 aislamientos sean resistentes?
  • ¿Cuál es la probabilidad de que 5 o menos aislamientos sean resistentes?

4. Distribución de Poisson

Características

La distribución de Poisson describe el número de eventos que ocurren en un intervalo fijo de tiempo o espacio, con una tasa promedio conocida.

Condiciones:

  1. Eventos independientes
  2. Tasa de ocurrencia constante
  3. Probabilidad de más de un evento en intervalo infinitesimal es despreciable

Función de Probabilidad

\[P(X = k) = \frac{\lambda^k e^{-\lambda}}{k!}\]

donde:

  • λ = tasa promedio de eventos
  • k = número de eventos
  • e = base del logaritmo natural

Funciones en R

  • dpois(k, lambda): función de probabilidad
  • ppois(k, lambda): función de distribución acumulada

Ejemplo: Llamadas Telefónicas

Una oficina recibe 5 llamadas por hora en promedio. ¿Probabilidad de recibir exactamente 3 llamadas?

lambda <- 5
k <- 3

prob_3_llamadas <- dpois(k, lambda)

Probabilidad de exactamente 3 llamadas: 0.1404

# Gráfica de la distribución
x <- 0:15
y <- dpois(x, lambda)

ggplot(data.frame(x = x, y = y), aes(x = x, y = y)) +
  geom_point(size = 3, color = "blue") +
  geom_line(color = "blue") +
  geom_point(data = data.frame(x = k, y = dpois(k, lambda)), 
             size = 4, color = "red") +
  labs(
       x = "Número de llamadas", 
       y = "Probabilidad") +
  theme_minimal()

FIGURA 5. Distribución de Poisson con λ = 5. El punto rojo indica la probabilidad de recibir exactamente 3 llamadas en una hora.

Ejemplo: Plántulas por Parcela

# Datos observados
plantulas <- 0:10
frecuencia <- c(35, 20, 50, 10, 3, 1, 0, 0, 0, 1, 0)

# Calcular lambda
lambda_obs <- sum(plantulas * frecuencia) / sum(frecuencia)

Lambda estimado: 1.467

# Frecuencias esperadas según Poisson
n_total <- sum(frecuencia)
freq_esperada <- dpois(plantulas, lambda_obs) * n_total

# Crear tabla comparativa
comparacion <- data.frame(
  "Plántulas" = plantulas,
  "Observado" = frecuencia,
  "Esperado (Poisson)" = round(freq_esperada, 1),
  check.names = FALSE
)

comparacion %>%
  gt() %>%
  tab_header(title = "TABLA 3. Comparación: Datos Observados vs Distribución de Poisson")
TABLA 3. Comparación: Datos Observados vs Distribución de Poisson
Plántulas Observado Esperado (Poisson)
0 35 27.7
1 20 40.6
2 50 29.8
3 10 14.6
4 3 5.3
5 1 1.6
6 0 0.4
7 0 0.1
8 0 0.0
9 1 0.0
10 0 0.0
# Gráfica comparativa
data_frame <- data.frame(
  x = plantulas,
  Observado = frecuencia,
  Poisson = freq_esperada
)

ggplot(data_frame, aes(x = x)) +
  geom_bar(aes(y = Observado), stat = "identity", 
           fill = "lightblue", alpha = 0.7, width = 0.6) +
  geom_line(aes(y = Poisson), color = "red", size = 1.2) +
  geom_point(aes(y = Poisson), color = "red", size = 3) +
  labs(
       x = "Número de Plántulas por Parcela",
       y = "Frecuencia") +
  theme_minimal()

FIGURA 6. Comparación entre las frecuencias observadas y las esperadas según una distribución de Poisson con λ = 1.4666667 (línea roja).

Prueba de Bondad de Ajuste

Para evaluar si los datos siguen una distribución de Poisson, se puede realizar una prueba de bondad de ajuste chi-cuadrado.

# Prueba chi-cuadrado
chisq_test <- chisq.test(frecuencia, p = freq_esperada/n_total, rescale.p = TRUE)
chisq_test
## 
##  Chi-squared test for given probabilities
## 
## data:  frecuencia
## X-squared = 444.67, df = 10, p-value < 2.2e-16
if (chisq_test$p.value < 0.05) {
  cat("Se rechaza H0: Los datos NO siguen una distribución de Poisson")
} else {
  cat("No se rechaza H0: Los datos siguen una distribución de Poisson")
}
## Se rechaza H0: Los datos NO siguen una distribución de Poisson

Ejemplo: Bacteriófagos

En un experimento, el número medio de infecciones por bacteriófagos es 2 por hora. ¿Probabilidad de 3 o más infecciones?

lambda_bac <- 2
x <- 3

# P(X >= 3) = 1 - P(X <= 2)
prob_3_o_mas <- ppois(2, lambda_bac, lower.tail = FALSE)
cat("Probabilidad de 3 o más infecciones:", round(prob_3_o_mas, 3))
## Probabilidad de 3 o más infecciones: 0.323

Probabilidad de 3 o más infecciones: 0.323

# Gráfica
x_vals <- 0:10
y_vals <- dpois(x_vals, lambda_bac)

ggplot(data.frame(x = x_vals, y = y_vals), aes(x = x, y = y)) +
  geom_point(aes(color = x >= 3), size = 3, show.legend = FALSE) +
  geom_segment(aes(xend = x, yend = 0, color = x >= 3), show.legend = FALSE) +
  scale_color_manual(values = c("blue", "red")) +
  labs(title = "Distribución de Poisson - Bacteriófagos (λ = 2)",
       x = "Número de infecciones", 
       y = "Probabilidad") +
  theme_minimal()

FIGURA 7. Distribución de Poisson con λ = 2. El área en rojo indica la probabilidad de 3 o más infecciones.

5. Distribución Normal

Características

La distribución normal es una distribución continua con forma de campana, unimodal y simétrica.

Ecuación de la función de densidad:

\[f(x) = \frac{1}{\sigma \sqrt{2\pi}} e^{-\frac{(x - \mu)^2}{2\sigma^2}}\]

Propiedades:

  • Media = μ
  • Desviación estándar = σ
  • Notación: N(μ, σ)

Distribución Normal Estándar.

La distribución normal estándar es una distribución normal con:

Media = 0, Desviación estándar = 1: N(0,1)

Estandarización (Puntuaciones o Valores Z):

Para convertir una variable normal X en una variable Z con distribución normal estándar, se usa la fórmula:

\[Z = \frac{X - \mu}{\sigma}\]

Funciones en R

  • dnorm(x, mean, sd): función de densidad
  • pnorm(x, mean, sd): función de distribución acumulada
  • qnorm(prob, mean, sd): función cuantil

Ejemplo: Visualización desde Histograma

# Simular datos con distribución normal
set.seed(123)
datos_glucosa <- rnorm(1000, mean = 120, sd = 30)

# Histograma con curva de densidad
ggplot(data.frame(x = datos_glucosa), aes(x = x)) +
  geom_histogram(aes(y = ..density..), bins = 30, 
                 fill = "lightblue", color = "black", alpha = 0.7) +
  geom_density(color = "red", size = 1.2) +
  stat_function(fun = dnorm, args = list(mean = 120, sd = 30), 
                color = "blue", size = 1.2, linetype = "dashed") +
  labs(
       x = "Glucosa", y = "Densidad") +
  theme_minimal()

FIGURA 8. Histograma de niveles de glucosa con curva de densidad estimada (línea roja) y distribución normal teórica, N(120,30) (línea azul discontinua).

Ejemplos: Cálculos de Probabilidad

# P(Z < 1.5)
p1 <- pnorm(1.5)
cat("P(Z < 1.5) =", round(p1, 4))
## P(Z < 1.5) = 0.9332
# P(Z > 1.5)
p2 <- pnorm(1.5, lower.tail = FALSE)
cat("\nP(Z > 1.5) =", round(p2, 4))
## 
## P(Z > 1.5) = 0.0668
# P(-1 < Z < 0.5)
p3 <- pnorm(0.5) - pnorm(-1)
cat("\nP(-1 < Z < 0.5) =", round(p3, 4))
## 
## P(-1 < Z < 0.5) = 0.5328
# Gráfica de P(Z < 1.5)
ggplot(data.frame(x = c(-3, 3)), aes(x)) +
  stat_function(fun = dnorm, size = 1.2) +
  stat_function(fun = dnorm, xlim = c(-3, 1.5), 
                geom = "area", fill = "blue", alpha = 0.5) +
  geom_vline(xintercept = 1.5, linetype = "dashed", color = "red") +
  labs(
       x = "Z", y = "f(Z)") +
  theme_minimal()

FIGURA 9. Distribución normal estándar con la región P(Z < 1.5) sombreada en azul y la línea roja indica el valor Z = 1.5.

# Gráfica de P(Z > 1.5)
ggplot(data.frame(x = c(-3, 3)), aes(x)) +
  stat_function(fun = dnorm, size = 1.2) +
  stat_function(fun = dnorm, xlim = c(1.5, 3), 
                geom = "area", fill = "blue", alpha = 0.5) +
  geom_vline(xintercept = 1.5, linetype = "dashed", color = "red") +
  labs(
       x = "Z", y = "f(Z)") +
  theme_minimal()

FIGURA 10. Distribución normal estándar con la región P(Z > 1.5) sombreada en azul y la línea roja indica el valor Z = 1.5.

# Gráfica de P(-1 < Z < 0.5)
ggplot(data.frame(x = c(-3, 3)), aes(x)) +
  stat_function(fun = dnorm, size = 1.2) +
  stat_function(fun = dnorm, xlim = c(-1, 0.5), 
  geom = "area", fill = "blue", alpha = 0.5) +
  geom_vline(xintercept = -1, linetype = "dashed", color = "red") +
  geom_vline(xintercept = 0.5, linetype = "dashed", color = "red") +
  labs(
       x = "Z", y = "f(Z)") +
  theme_minimal()

FIGURA 11. Distribución normal estándar con la región P(-1 < Z < 0.5) sombreada en azul y las líneas rojas indican los valores Z = -1 y Z = 0.5.

Ejemplo: Comparación SAT vs ACT

Nila obtuvo 1800 en el SAT (μ = 1500, σ = 300) y Sean obtuvo 24 en el ACT (μ = 21, σ = 5). ¿Quién tuvo mejor puntuación relativa?

Usaremos Z-scores y percentiles para comparar.

# Datos
mu_sat <- 1500; sigma_sat <- 300; x_sat <- 1800
mu_act <- 21; sigma_act <- 5; x_act <- 24

# Cálculo de Z-scores
z_sat <- (x_sat - mu_sat) / sigma_sat
z_act <- (x_act - mu_act) / sigma_act

cat("Z-score SAT:", z_sat)
## Z-score SAT: 1
cat("\nZ-score ACT:", z_act)
## 
## Z-score ACT: 0.6
# Percentiles
p_sat <- pnorm(x_sat, mean = mu_sat, sd = sigma_sat)
p_act <- pnorm(x_act, mean = mu_act, sd = sigma_act)

cat("\nPercentil SAT:", round(p_sat * 100, 1), "%")
## 
## Percentil SAT: 84.1 %
cat("\nPercentil ACT:", round(p_act * 100, 1), "%")
## 
## Percentil ACT: 72.6 %
if (z_sat > z_act) {
  cat("\n\nNila (SAT) obtuvo mejor puntuación relativa")
} else {
  cat("\n\nSean (ACT) obtuvo mejor puntuación relativa")
}
## 
## 
## Nila (SAT) obtuvo mejor puntuación relativa

Ejemplo: Semillas de Thespesia populnea

Para 487 semillas con μ = 10.15 mm y σ = 1.60 mm, ¿cuántas tienen longitud > 11 mm?

n_semillas <- 487
mu_semillas <- 10.15
sigma_semillas <- 1.60
x_limite <- 11

# Probabilidad de X > 11
prob_mayor_11 <- pnorm(x_limite, mu_semillas, sigma_semillas, lower.tail = FALSE)

# Número esperado de semillas
n_esperado <- n_semillas * prob_mayor_11

cat("Probabilidad P(X > 11) =", round(prob_mayor_11, 4))
## Probabilidad P(X > 11) = 0.2976
cat("\nNúmero esperado de semillas > 11 mm:", round(n_esperado, 0))
## 
## Número esperado de semillas > 11 mm: 145

Ejemplo: Selección de las 100 Semillas Más Grandes

# Queremos el percentil que deje 100 semillas arriba
percentil_objetivo <- (n_semillas - 100) / n_semillas

# Valor crítico
valor_critico <- qnorm(percentil_objetivo, mu_semillas, sigma_semillas)

cat("Percentil objetivo:", round(percentil_objetivo * 100, 1), "%")
## Percentil objetivo: 79.5 %
cat("\nTamaño mínimo para las 100 más grandes:", round(valor_critico, 2), "mm")
## 
## Tamaño mínimo para las 100 más grandes: 11.47 mm

EJERCICIO 3. La presión arterial sistólica (PAS) en adultos sanos sigue una distribución aproximadamente normal, con una media (μ) de 120 mmHg y una desviación estándar (σ) de 15 mmHg.

Preguntas:

  • ¿Qué proporción de adultos tiene una PAS superior a 140 mmHg?
  • ¿Qué proporción tiene una PAS entre 110 y 130 mmHg?

Aproximación Normal a la Binomial

Cuando n es grande y np ≥ 5 y n(1-p) ≥ 5, la binomial se aproxima a la normal.

Ejemplo: Duración de bombillas

Un fabricante de bombillas afirma que el 95% duran más de 1000 horas. En una muestra de 100 bombillas, 90 duraron más de 1000 horas. ¿Es esta evidencia suficiente para rechazar la afirmación del fabricante al nivel α = 0.05?

# Ejemplo: Fabricante de bombillas
n <- 100
p <- 0.95
p_hat <- 0.90
alpha <- 0.05

# Verificar condiciones
cat("np =", n*p, "n(1-p) =", n*(1-p))
## np = 95 n(1-p) = 5
# Estadístico Z
Z <- (p_hat - p) / sqrt(p * (1 - p) / n)
Z_alpha <- qnorm(alpha)

cat("\nZ =", round(Z, 3))
## 
## Z = -2.294
cat("\nZ_alpha =", round(Z_alpha, 3))
## 
## Z_alpha = -1.645
# Decisión
if (Z < Z_alpha) {
  cat("\nRechazamos H0: La afirmación del fabricante es falsa")
} else {
  cat("\nNo rechazamos H0")
}
## 
## Rechazamos H0: La afirmación del fabricante es falsa

Gráfica de la Aproximación

# Gráfica de la distribución binomial y su aproximación normal
x_binom <- 0:100
y_binom <- dbinom(x_binom, n, p)
y_norm <- dnorm(x_binom, mean = n*p, sd = sqrt(n*p
*(1-p)))
data_frame <- data.frame(
  x = x_binom,
  Binomial = y_binom,
  Normal = y_norm
)
ggplot(data_frame, aes(x = x)) +
  geom_bar(aes(y = Binomial), stat = "identity", 
           fill = "lightblue", alpha = 0.7, width = 0.6) +
  geom_line(aes(y = Normal), color = "red", size = 0.5) +
  geom_point(aes(y = Normal), color = "red", size = 1) +
  labs(
       x = "Número de éxitos", 
       y = "Probabilidad / Densidad") +
  scale_x_continuous(limits = c(60, 100)) +
  theme_minimal() +
# marcar 90 éxitos
  geom_vline(xintercept = 90, linetype = "dashed", color = "darkgreen") +
  annotate("text", x = 90, y = max(y_binom)*0.8, label = "90 de 100", 
           color = "darkgreen", angle = 90, vjust = -0.5)

FIGURA 12. Comparación entre la distribución binomial (barras azules) y su aproximación normal (línea roja) para n = 100 y p = 0.95. La línea verde discontinua indica 90 éxitos.

Resumen de Distribuciones

data.frame(
  "Distribución" = c("Binomial", "Poisson", "Normal"),
  "Tipo" = c("Discreta", "Discreta", "Continua"),
  "Parámetros" = c("n, p", "λ", "μ, σ"),
  "Aplicación" = c("Éxitos en n ensayos", "Eventos raros", "Mediciones continuas"),
  check.names = FALSE
) %>%
  gt() %>%
  tab_header(title = "Resumen de Distribuciones de Probabilidad")
Resumen de Distribuciones de Probabilidad
Distribución Tipo Parámetros Aplicación
Binomial Discreta n, p Éxitos en n ensayos
Poisson Discreta λ Eventos raros
Normal Continua μ, σ Mediciones continuas

Las distribuciones de probabilidad son herramientas fundamentales en bioestadística:

  1. Variables aleatorias nos permiten modelar fenómenos con incertidumbre
  2. Distribución binomial es ideal para conteos de éxitos/fracasos
  3. Distribución de Poisson modela eventos raros en tiempo/espacio
  4. Distribución normal describe muchas mediciones biológicas

Cada distribución tiene sus condiciones de aplicación específicas y sus funciones en R correspondientes para cálculos y visualizaciones.