Ver código
library(tidyverse)
library(kableExtra)
library(ggplot2)
library(knitr)
library(dplyr)
library(tibble)Activar paquetes
library(tidyverse)
library(kableExtra)
library(ggplot2)
library(knitr)
library(dplyr)
library(tibble)[@kableExtra-2; @tidyverse-2; @ggplot2-2; @knitr-2; @dplyr-2; @tibble-2]
¿Qué son modelos probabilísticos?
Los modelos probabilísticos son herramientas matemáticas que se usan para representar y analizar fenómenos o situaciones donde interviene el azar o la incertidumbre. En otras palabras, son modelos que permiten predecir o estimar resultados posibles, asignándoles una probabilidad a cada uno.
Ejemplo:
Si lanzamos una moneda, no sabemos si saldrá cara o sello, pero sí sabemos que cada uno tiene una probabilidad de ½ (o 50%).
Componenetes básicos de un modelo probabilístico:
Tipos de modelos probabilísticos:
Los modelos probabilísticos discretos se utilizan para analizar variables que pueden tomar un número finito o contable de valores distintos, asignando una probabilidad a cada uno. Algunos de los modelos más comunes son: el de Bernoulli, que modela resultados binarios; el Binomial, que extiende Bernoulli a múltiples ensayos independientes; el Geométrico, que se centra en el número de ensayos hasta el primer éxito; el Binomial Negativo, que es una generalización del geométrico; el Hipergeométrico, utilizado en muestreos sin reemplazo; y el de Poisson, que modela la ocurrencia de eventos en un intervalo de tiempo o espacio.
Distribución uniforme discreta
La distribución uniforme discreta describe una variable aleatoria que puede tomar un número finito de valores, donde cada valor tiene la misma probabilidad de ser elegido. Esto significa que no hay variaciones en las probabilidades de los resultados, y la probabilidad de cada resultado es (1/n), donde (n) es el número total de valores posibles.
Caracteristícas principales:
Espacio muestral finito

Probabilidad constantes


Suma de probabilidades = 1

Propiedades:
Valor esperado (media)

donde aaa y bbb son el menor y el mayor valor posible.
Varianza

Ejemplo: Un estudiante de estadística realiza un experimento que consiste en lanzar un dado justo una vez. Cada cara del dado está numerada del 1 al 6.
Se pide: 1. Determinar la distribución de probabilidad de la variable aleatoria 𝑋, donde𝑋representa el número que aparece en la cara superior.
Verificar que se cumplan las propiedades de una distribución de probabilidad.
Calcular el valor esperado, la varianza y la desviación estándar de la variable aleatoria𝑋.
Interpretar los resultados obtenidos.
1. Definición de la variable aleatoria
Sea 𝑋=“número que aparece al lanzar el dado”
El dado es justo, por lo tanto, todas las caras tienen igual probabilidad de ocurrir.
Espacio muestral: 𝑆= {1,2,3,4,5,6}
Número total de resultados posibles: 𝑛= 6

2. Tabla de distribución de probabilidad
library(dplyr)
library(knitr)
library(kableExtra)
library(MASS)
valores <- 1:6
fx <- rep(1/6, 6)
Fx <- cumsum(fx)
df <- data.frame(
"Resultado (X)" = valores,
"Probabilidad f(x)" = fx,
"Distribución acumulada F(x)" = Fx,
check.names = FALSE
)
# Mostrar la tabla con formato tipo kableExtra
kable(df, align = "c", caption = "Tabla de distribución de probabilidad - Dado justo") %>%
kable_styling("striped", full_width = F, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0:6, bold = TRUE, color = "#0d0d0d", background = "#b38be0")| Resultado (X) | Probabilidad f(x) | Distribución acumulada F(x) |
|---|---|---|
| 1 | 0.1666667 | 0.1666667 |
| 2 | 0.1666667 | 0.3333333 |
| 3 | 0.1666667 | 0.5000000 |
| 4 | 0.1666667 | 0.6666667 |
| 5 | 0.1666667 | 0.8333333 |
| 6 | 0.1666667 | 1.0000000 |
Verificación:

Se cumple la propiedad fundamental de toda distribución de probabilidad.
3. Cálculos
Cálculo del valor esperado (media):

El promedio teórico del número que se espera obtener al lanzar el dado muchas veces es 3.5.
E_X <- sum(valores * fx)
cat(" Valor esperado (media): ", round(E_X, 4), "\n") Valor esperado (media): 3.5

# Varianza
Var_X <- sum((valores - E_X)^2 * fx)
cat(" Varianza: ", round(Var_X, 4), "\n") Varianza: 2.9167
# Desviación estándar
Desv_X <- sqrt(Var_X)
cat(" Desviación estándar: ", round(Desv_X, 4), "\n") Desviación estándar: 1.7078
4. Interpretación de los resultados obtenidos
Cada número del dado tiene una probabilidad igual de 0.1667 (16.67%).
El valor esperado (3.5) indica el promedio teórico del resultado esperado en múltiples lanzamientos.
La varianza (2.92) muestra la dispersión de los resultados respecto al promedio.
La desviación estándar (1.71) representa, en promedio, cuánto se alejan los resultados del valor medio.
La distribución de Bernoulli representa la forma más sencilla de una distribución de probabilidad discreta, y capta los resultados de experimentos que sólo pueden dar lugar a dos resultados posibles, típicamente etiquetados como éxito o fracaso. Sirve de base para comprender las variables binarias en estadística y se caracteriza por un único parámetro, p, que denota la probabilidad de éxito. Se considera la distribución de Bernoulli como el marco matemático subyacente al lanzamiento de una moneda, donde p representa la probabilidad de que salga cara (éxito) o sello (fracaso).
Esta distribución debe su nombre al matemático suizo James Bernoulli. Es el caso más sencillo de una distribución binomial en la que se realiza un único ensayo (n=1). Su sencillez y, a la vez, su profunda utilidad en la modelización estadística la hacen fundamental en los estudios que implican resultados binarios, como las hipótesis pasa/no pasa, gana/perde o sí/no.
Los dos posibles resultados de esta distribución son:
Éxito (1) con probabilidad 𝑝
Fracaso (0) con probabilidad 𝑞 = 1 − 𝑝
Fórmula de distribución de Bernoulli
La función de masa de probabilidad (FMP) de una variable aleatoria con distribución de Bernoulli viene dada por:

Ejemplo: Por ejemplo, si la probabilidad de que una bombilla sea defectuosa (éxito en este contexto) es de 0,05, la PMF puede utilizarse para calcular las probabilidades de resultados específicos (defectuosa o no defectuosa) en un único ensayo de inspección.
Media de la distribución Bernoulli
La media, o valor esperado, de una distribución Bernoulli proporciona un resultado medio a lo largo de numerosos ensayos, lo que ofrece información valiosa sobre el comportamiento esperado de los sucesos binarios. La media de una distribución de Bernoulli viene dada por la fórmula:

Esto significa que el resultado medio de muchos ensayos es directamente proporcional a la probabilidad de éxito en un único ensayo.
Ejemplo: Para un juego en el que la probabilidad de ganar es 0,7, la media o el número esperado de victorias en un gran número de juegos es 0,7. Esto subraya la previsibilidad y la importancia de la probabilidad “p” para determinar los resultados a largo plazo.
Varianza de la distribución Bernoulli
Comprender la varianza de una distribución Bernoulli ayuda a medir cuánto difieren los resultados de la media. Esto es especialmente útil para evaluar la fiabilidad de los resultados esperados y la dispersión de la distribución. La varianza de una distribución de Bernoulli se calcula como:

Ejemplo: Considera un proceso de fabricación en el que la probabilidad de crear un artículo perfecto es de 0,95. La varianza de los resultados de este proceso puede calcularse mediante la fórmula, indicando la fluctuación de la calidad a lo largo de una serie de producciones.
Ejemplo Distribución Bernoulli: Supongamos que lanzamos una moneda equilibrada, donde:
𝑝= 0.5 (probabilidad de obtener cara = “éxito”)
𝑞= 0.5 (probabilidad de obtener sello = “fracaso”)
Solución: Dado que la moneda es equilibrada, la probabilidad de obtener cara es 𝑝 = 0.5 y la de obtener sello es 𝑞 = 1 − 𝑝 = 0.5.
library(dplyr)
library(knitr)
library(kableExtra)
library(MASS)
valores <- c(0, 1) # 0 = fracaso, 1 = éxito
# Probabilidades
p <- 0.5
fx <- c(1 - p, p)
# Función de distribución acumulada
Fx <- cumsum(fx)
# Crear la tabla
df <- data.frame(
"Resultado (X)" = valores,
"Probabilidad f(x)" = fx,
"Distribución acumulada F(x)" = Fx,
check.names = FALSE
)
kable(df, align = "c", caption = "Tabla de distribución de probabilidad - Bernoulli (p = 0.5)") %>%
kable_styling("striped", full_width = F, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0:2, bold = TRUE, color = "#0d0d0d", background = "#b2a1c4")| Resultado (X) | Probabilidad f(x) | Distribución acumulada F(x) |
|---|---|---|
| 0 | 0.5 | 0.5 |
| 1 | 0.5 | 1.0 |
E_X <- p # Valor esperado
cat(" Valor esperado (media): ", round(E_X, 4), "\n") Valor esperado (media): 0.5
Var_X <- p * (1 - p) # Varianza
cat(" Varianza: ", round(Var_X, 4), "\n") Varianza: 0.25
Desv_X <- sqrt(Var_X) # Desviación estándar
cat(" Desviación estándar: ", round(Desv_X, 4), "\n") Desviación estándar: 0.5
Gráfico de la función de probabilidad
ggplot(data.frame(valores, fx), aes(x = factor(valores), y = fx, fill = factor(valores))) +
geom_col(color = "#2b1d3b", width = 0.5) +
scale_fill_manual(values = c("#855bb3", "#c813e8")) +
geom_text(aes(label = fx), vjust = -0.5, color = "#2b1d3b", size = 5) +
labs(title = "Distribución de Probabilidad",
x = "X",
y = "Probabilidad f(x)",
fill = "Resultado") +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(hjust = 0.5, face = "bold", color = "#4b2c6e"),
panel.background = element_rect(fill = "#f6effd", color = NA),
plot.background = element_rect(fill = "#f6effd", color = NA),
legend.position = "none"
)Interpretación: El valor esperado 𝐸(𝑋) = 0.5 indica que, en promedio, se espera obtener un éxito la mitad de las veces. La varianza 𝑉𝑎𝑟(𝑋) = 0.25 y la desviación estándar 𝜎 = 0.5 muestran que los resultados se desvían moderadamente del valor medio, lo cual tiene sentido dado que solo hay dos posibles resultados (0 o 1).
En términos prácticos, si este experimento (por ejemplo, lanzar una moneda) se repitiera muchas veces, se obtendrían aproximadamente la mitad de los resultados como “éxitos” y la otra mitad como “fracasos”.
La distribución binomial es un modelo estadístico que permite calcular la probabilidad de obtener un número determinado de éxitos en un número fijo de pruebas. Esta distribución nos permite calcular cuántas veces es probable que ocurra un resultado concreto (por ejemplo, sacar cara) cuando repetimos un experimento un número determinado de veces (por ejemplo, lanzar una moneda varias veces).
Para estudiar la distribución binomial, se debe tener conocimiento acerca de los experimentos binomiales, los cuales deben cumplir las siguientes condiciones:
Antes de resolver un ejercicio aplicando la fórmula de probabilidad binomial, se debe verificar que se cumplen estas cuatro condiciones, pues esta fórmula solo funciona para experimentos binomiales.
Fórmula de distribución Binomial
Para un experimento binomial, sea p la probabilidad de “éxito” y 1-p la probabilidad de un “fracaso” en un solo ensayo; entonces la probabilidad de obtener x éxitos en n ensayos, está dada por la función de probabilidad f(x):

Siendo el coeficiente binomial o número combinatorio:

Media de distribución Binomial

Varianza de distribución Binomial

Desviación estándar de distribución Binomial

Ejemplo: Una empresa tecnológica está implementando un nuevo sistema de autenticación en línea. Durante la fase de pruebas, los ingenieros determinan que cada intento de inicio de sesión tiene una probabilidad del 0.4 de ser exitoso debido a fallos temporales del servidor.
Se desea analizar el comportamiento del sistema durante un período de observación en el que se realizan 5 intentos de inicio de sesión independientes, todos con la misma probabilidad de éxito 𝑝 = 0.4.
Definimos la variable aleatoria 𝑋 como:
“El número de inicios de sesión exitosos durante los 5 intentos.”
Solución:
Datos conocidos: 𝑛 = 5, 𝑝 = 0.4, 𝑞 = 1−𝑝 = 0.6 La variable aleatoria 𝑋 puede tomar los valores: 𝑋 = 0, 1, 2, 3, 4, 5
Cálculo de la distribución de probabilidad:
Usando la fórmula

Tabla de distribución de probabilidad:
library(dplyr)
library(knitr)
library(kableExtra)
library(ggplot2)
library(MASS)
n <- 5
p <- 0.4
x <- 0:n
fx <- dbinom(x, n, p)
Fx <- pbinom(x, n, p)
# Crear tabla
df <- data.frame(
"Número de éxitos (X)" = x,
"Probabilidad f(x)" = fx,
"Distribución acumulada F(x)" = Fx,
check.names = FALSE
)
# Mostrar tabla
kable(df, align = "c", caption = "Tabla de distribución de probabilidad - Binomial (n = 5, p = 0.4)") %>%
kable_styling("striped", full_width = F, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0:6, bold = TRUE, color = "#0d0d0d", background = "#3b81db")| Número de éxitos (X) | Probabilidad f(x) | Distribución acumulada F(x) |
|---|---|---|
| 0 | 0.07776 | 0.07776 |
| 1 | 0.25920 | 0.33696 |
| 2 | 0.34560 | 0.68256 |
| 3 | 0.23040 | 0.91296 |
| 4 | 0.07680 | 0.98976 |
| 5 | 0.01024 | 1.00000 |
Cálculos:

E_X <- n * p
cat(" Valor esperado (media): ", round(E_X, 4), "\n") Valor esperado (media): 2
Var_X <- n * p * (1 - p)
cat(" Varianza: ", round(Var_X, 4), "\n") Varianza: 1.2
Desv_X <- sqrt(Var_X)
cat(" Desviación estándar: ", round(Desv_X, 4), "\n") Desviación estándar: 1.0954
Gráfico:
# Función de probabilidad y distribución acumulada binomial
library(ggplot2)
# Parámetros
n <- 8
p <- 0.5
x <- 0:n
fx <- dbinom(x, n, p)
Fx <- pbinom(x, n, p)
# ---- F. PROBABILIDAD ----
ggplot(data.frame(x, fx), aes(x = x, y = fx)) +
geom_segment(aes(x = x, xend = x, y = 0, yend = fx),
color = "#c813e8", linewidth = 2) +
geom_point(color = "#855bb3", size = 3) +
labs(title = "Función de probabilidad binomial",
x = "X",
y = "f(x)") +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5, color = "#4b2c6e"),
panel.background = element_rect(fill = "white", color = NA)
)# ---- F. DISTRIBUCIÓN ----
ggplot(data.frame(x, Fx), aes(x = x, y = Fx)) +
geom_step(color = "#855bb3", linewidth = 1.5) +
geom_point(color = "#c813e8", size = 3) +
labs(title = "Función de distribución binomial acumulada",
x = "X",
y = "F(x)") +
theme_minimal(base_size = 14) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5, color = "#4b2c6e"),
panel.background = element_rect(fill = "white", color = NA)
)El experimento representa 5 intentos de inicio de sesión, cada uno con una probabilidad de éxito del 40%. La variable 𝑋 cuenta cuántos de esos intentos son exitosos.
El valor esperado (E[X] = 2) indica que, en promedio, se espera que 2 de los 5 intentos sean exitosos. La varianza (1.2) y la desviación estándar (≈1.095) muestran que los resultados pueden variar moderadamente entre 0 y 4 éxitos. El valor más probable de 𝑋 (la moda) es 2, lo cual también coincide con el promedio esperado. En el gráfico, las barras más altas se concentran alrededor de 𝑋 = 2, disminuyendo progresivamente hacia los extremos (0 y 5). Esto refleja que es más probable obtener entre 1 y 3 éxitos que obtener todos los intentos fallidos o todos exitosos.
Se sabe que el 60% de los alumnos de una universidad asisten a clases el viernes. En una encuesta a 8 alumnos de la universidad. ¿Cuál es la probabilidad de que: a) por lo menos siete asistan a clase el viernes? b) por lo menos dos no asistan a clase?
Solución
Este ejercicio pertenece al modelo Binomial ya que hay un número fijo de ensayos independientes (n = 8 alumnos), cada ensayo tiene dos resultados (asiste / no asiste) y la probabilidad de éxito (asistir) es constante 𝑝 = 0.6
Tabla de distribución de probabilidad
# Ejercicio 1
library(tidyverse)
library(kableExtra)
library(scales)
# Parámetros
n <- 8
p <- 0.60
x <- 0:n
# Cálculo de la función de probabilidad y distribución acumulada
fx <- round(dbinom(x, n, p), 4)
Fx <- round(cumsum(fx), 4)
# Crear data frame
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x", "f(x)", "F(x)")
# Mostrar tabla
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución de probabilidad") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#A9DDF3", color = "black") %>%
row_spec(1:nrow(df), background = "#D6F1FA", color = "black") %>%
column_spec(1:3, bold = TRUE)| x | f(x) | F(x) |
|---|---|---|
| 0 | 0.0007 | 0.0007 |
| 1 | 0.0079 | 0.0086 |
| 2 | 0.0413 | 0.0499 |
| 3 | 0.1239 | 0.1738 |
| 4 | 0.2322 | 0.4060 |
| 5 | 0.2787 | 0.6847 |
| 6 | 0.2090 | 0.8937 |
| 7 | 0.0896 | 0.9833 |
| 8 | 0.0168 | 1.0001 |
La tabla presenta todos los valores posibles que puede tomar la variable aleatoria, en este caso, el número de estudiantes que asisten a clases el viernes. En ella se observa la probabilidad puntual de cada resultado, lo que permite identificar cuáles escenarios son más o menos probables.
Además, la última columna muestra la probabilidad acumulada, que indica cómo se van sumando las probabilidades hasta llegar al 100%. Esto facilita analizar situaciones del tipo “a lo más” o “por lo menos” cierta cantidad de asistentes.
En conjunto, la tabla permite entender la distribución completa del fenómeno y ofrece una forma organizada de visualizar la incertidumbre que caracteriza este tipo de situaciones aleatorias.
Gráficas
Función de probabilidad
# Función de probabilidad
plot(
x = x,
y = fx,
xlab = "x (Número de asistentes)",
ylab = "f(x)",
main = "Función de Probabilidad — Distribución Binomial",
pch = 19,
col = "#02b8fa",
cex = 1.3,
ylim = c(0, max(fx) + 0.05)
)
segments(
x0 = x,
y0 = 0,
x1 = x,
y1 = fx,
lwd = 3,
col = "#b349f5"
)
mtext("n = 8, p = 0.6", side = 1, line = 3, cex = 0.9)El gráfico de la función de probabilidad muestra visualmente la posibilidad de cada resultado. Cada barra representa la probabilidad de que asista un número específico de estudiantes, y su altura indica qué tan probable es ese valor en comparación con los demás.
La forma del gráfico refleja la tendencia de la distribución: los valores más altos se concentran alrededor del promedio esperado, mientras que los extremos son menos probables. De esta manera, el gráfico facilita una comprensión rápida e intuitiva de los resultados más esperados en el experimento.
Función de distribución acumulada
# Función de distribución acumulada
Fx <- cumsum(fx)
plot(
x = c(0, x),
y = c(0, Fx),
type = "s",
xlab = "x (Número de asistentes)",
ylab = "F(x)",
main = "Función de Distribución Acumulada — Binomial",
col = "#e149f5",
lwd = 2,
ylim = c(0, 1.05)
)
points(
x,
Fx,
col = "#49f5ec",
pch = 19,
cex = 1.3
)
abline(h = 0, col = "gray70", lty = 2)
mtext("n = 8, p = 0.6", side = 1, line = 3, cex = 0.9)La gráfica de la función de distribución acumulada muestra cómo se incrementa la probabilidad total a medida que aumenta el número de estudiantes que asisten. Cada escalón representa la probabilidad acumulada hasta ese punto, evidenciando cómo los resultados se van sumando progresivamente.
Incisos
# a)
prob_a <- sum(dbinom(7:n, size = n, prob = p))
prob_a_num <- round(prob_a, 6)
cat("Resultado a) P(X >= 7) =", prob_a_num, "\n")Resultado a) P(X >= 7) = 0.106376
La probabilidad de que por lo menos siete estudiantes asistan es 10.64%
Gráfica
# Gráfico inciso (a)
library(ggplot2)
rango <- 0:n
df_a <- data.frame(
x = rango,
y = dbinom(rango, size = n, prob = p)
)
ggplot(df_a, aes(x = x, y = y, fill = factor(ifelse(x >= 7, "Evento: X ≥ 7", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de asistentes)") +
ylab("f(x) = P(X = x)") +
ggtitle("Distribución Binomial") +
scale_fill_manual(name = "", values = c("Evento: X ≥ 7" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5),
legend.position = "top"
)El gráfico resalta en color violeta las barras correspondientes a los valores de 𝑋 mayores o iguales a 7, que representan el evento de interés. Visualmente, se observa que estos casos tienen una probabilidad baja, pero significativa, dentro de la distribución total.
# b)
prob_b <- pbinom(6, size = n, prob = p)
prob_b_num <- round(prob_b, 6)
cat("Resultado b) P(al menos 2 no asistan) = P(X <= 6) =", prob_b_num, "\n")Resultado b) P(al menos 2 no asistan) = P(X <= 6) = 0.893624
La probabilidad de que por lo menos dos no asistan a clase es 89.36%
Gráfica
# Gráfico inciso (b)
df_b <- data.frame(
x = rango,
y = dbinom(rango, size = n, prob = p)
)
ggplot(df_b, aes(x = x, y = y, fill = factor(ifelse(x <= 6, "Evento: X ≤ 6", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de asistentes)") +
ylab("f(x) = P(X = x)") +
ggtitle("Distribución Binomial — Evento P(X ≤ 6)") +
scale_fill_manual(name = "", values = c("Evento: X ≤ 6" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(
plot.title = element_text(face = "bold", hjust = 0.5),
legend.position = "top"
)Las barras violetas representan los valores de 𝑋 menores o iguales a 6, es decir, los escenarios donde al menos dos estudiantes no asisten a clase. Este gráfico permite visualizar de forma clara el rango de resultados que componen el evento y su peso dentro de la distribución total.
Según los registros universitarios fracasa el 5% de los alumnos de cierto curso. ¿cuál es la probabilidad de que, de 6 estudiantes seleccionados al azar, menos de 3 hayan fracasado?
Solución
Este ejercicio pertenece al modelo Binomial ya que presenta un número fijo de ensayos independientes (𝑛 = 6), cada ensayo tiene dos resultados (fracasa / no fracasa) y la probabilidad de “éxito” (fracasar) es constante 𝑝 = 0.05. La variable 𝑋 = número de estudiantes que fracasan sigue 𝑋∼ Binomial.
Tabla de distribución de probabilidad
# Ejercicio 2
library(tidyverse)
library(kableExtra)
library(scales)
library(ggplot2)
# Parámetros
n <- 6
p <- 0.05
x <- 0:n
# PMF y CDF
fx <- round(dbinom(x, size = n, prob = p), 4)
Fx <- round(cumsum(fx), 4)
# Data frame
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x (Valores posibles)", "f(x)", "F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución de probabilidad — Binomial") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#a82fed", color = "black") %>%
row_spec(1:nrow(df), background = "#d9a3f7", color = "black") %>%
column_spec(1:3, bold = TRUE)| x (Valores posibles) | f(x) | F(x) |
|---|---|---|
| 0 | 0.7351 | 0.7351 |
| 1 | 0.2321 | 0.9672 |
| 2 | 0.0305 | 0.9977 |
| 3 | 0.0021 | 0.9998 |
| 4 | 0.0001 | 0.9999 |
| 5 | 0.0000 | 0.9999 |
| 6 | 0.0000 | 0.9999 |
La tabla muestra los posibles números de estudiantes que pueden fracasar (de 0 a 6) y la probabilidad asociada a cada uno. La columna de probabilidad puntual permite ver qué escenarios son más probables — en este caso, es mucho más probable que haya 0 o 1 fracasos debido a la baja probabilidad individual de fracasar. La columna acumulada indica cómo esas probabilidades se suman a medida que consideramos valores crecientes; por ejemplo, la probabilidad de que haya como máximo 2 fracasos (evento de interés) ya acumula casi toda la masa de probabilidad.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = x, y = dbinom(x, n, p))
ggplot(df_pmf, aes(x = x, y = y)) +
geom_col(aes(fill = y), width = 0.3, color = "black") +
scale_fill_gradient(low = "#d9a3f7", high = "#a82fed", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(
title = "Distribución Binomial",
x = "x (Número de fracasos)",
y = "f(x)"
) +
theme_bw(base_size = 13)Las barras muestran la probabilidad puntual de cada número de fracasos. Las barras más altas (0 y 1) evidencian que esos son los resultados esperados con mayor frecuencia. El gráfico facilita identificar visualmente que los valores extremos (3 o más fracasos) son extremadamente improbables.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = cumsum(dbinom(x, n, p)))
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", color = "#d9a3f7", size = 1.2) +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.6, size = 3) +
scale_color_gradient(low = "#a82fed", high = "#a82fed") +
labs(
title = "Distribución acumulada Binomial",
x = "x (Número de fracasos)",
y = "F(x)"
) +
theme_bw(base_size = 13)La curva escalonada muestra cómo se va acumulando la probabilidad al considerar valores crecientes de fracasos. Aquí se observa que la mayor parte de la probabilidad se concentra en los primeros escalones (0, 1 y 2), lo que confirma que la probabilidad de “menos de 3” es prácticamente total.
¿cuál es la probabilidad de que, de 6 estudiantes seleccionados al azar, menos de 3 hayan fracasado?
prob_less3 <- pbinom(2, size = n, prob = p)
cat("P(X < 3) = P(X <= 2) =", round(prob_less3, 6), "\n")P(X < 3) = P(X <= 2) = 0.99777
Si la probabilidad individual de fracasar es 5%, la probabilidad de que menos de 3 de los 6 seleccionados hayan fracasado es prácticamente segura (≈ 99.8%).
En promedio, el 10% de las varillas de madera usadas en cierto producto presentan problemas para ser usadas. ¿cuál es la probabilidad de que en un paquete de 15 varillas, a) encuentre exactamente 5 con defectos. b) por lo menos 10 estén nudosas, c) no más de 4 estén nudosas.
Solución
Tabla de distribución de probabilidad
n <- 15
p <- 0.10
x <- 0:n
fx <- round(dbinom(x, size = n, prob = p), 6)
Fx <- round(cumsum(dbinom(x, size = n, prob = p)), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x", "f(x)", "F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución de probabilidad — Binomial") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#685ef2", color = "black") %>%
row_spec(1:nrow(df), background = "#8982f5", color = "black") %>%
column_spec(1:3, bold = TRUE)| x | f(x) | F(x) |
|---|---|---|
| 0 | 0.205891 | 0.205891 |
| 1 | 0.343152 | 0.549043 |
| 2 | 0.266896 | 0.815939 |
| 3 | 0.128505 | 0.944444 |
| 4 | 0.042835 | 0.987280 |
| 5 | 0.010471 | 0.997750 |
| 6 | 0.001939 | 0.999689 |
| 7 | 0.000277 | 0.999966 |
| 8 | 0.000031 | 0.999997 |
| 9 | 0.000003 | 1.000000 |
| 10 | 0.000000 | 1.000000 |
| 11 | 0.000000 | 1.000000 |
| 12 | 0.000000 | 1.000000 |
| 13 | 0.000000 | 1.000000 |
| 14 | 0.000000 | 1.000000 |
| 15 | 0.000000 | 1.000000 |
La tabla enumera todos los posibles números de varillas defectuosas en un paquete de 15 y muestra, primero, la probabilidad exacta de cada caso y, luego, cómo se van sumando esas probabilidades. Esto permite ver de forma ordenada qué escenarios son habituales y cuáles son prácticamente imposibles, y facilita responder preguntas como “exactamente 5” o “no más de 4”.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = x, y = dbinom(x, size = n, prob = p))
ggplot(df_pmf, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#8982f5", high = "#8982f5", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.5, size = 3) +
labs(
title = "Distribución Binomial",
x = "x (Número de varillas defectuosas)",
y = "f(x)"
) +
theme_bw(base_size = 13)El gráfico de barras muestra la probabilidad puntual de cada número de varillas defectuosas. Las barras más altas se ubican en los valores cercanos a la media esperada 𝑛𝑝 = 1.5, lo que indica que es mucho más probable observar 0, 1 o 2 defectos que números altos. La barra resaltada en el inciso a visualiza dónde cae exactamente el evento 𝑋 = 5.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = cumsum(dbinom(x, size = n, prob = p)))
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", color = "#8982f5", size = 1.2) +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#685ef2") +
labs(
title = "Función de distribución acumulada",
x = "x (Número de varillas defectuosas)",
y = "F(x)"
) +
theme_bw(base_size = 13)La gráfica escalonada muestra cómo se acumula la probabilidad al aumentar el número de defectos. En este caso, se aprecia que ya con 𝑋 ≤ 4 se concentra la casi totalidad de la probabilidad, lo que se traduce en una alta confianza de que no habrá más de cuatro varillas defectuosas por paquete.
Incisos
# a)
prob_a <- dbinom(5, size = n, prob = p)
cat("a) P(X = 5) = ", round(prob_a, 6), "\n")a) P(X = 5) = 0.010471
La probabilidad de hallar exactamente cinco varillas con defecto en un paquete de 15 es baja ≈1.05%.
Gráfica
rango <- 0:n
df_a <- data.frame(x = rango, y = dbinom(rango, size = n, prob = p))
ggplot(df_a, aes(x = x, y = y, fill = factor(ifelse(x == 5, "Evento: X = 5", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de varillas defectuosas)") +
ylab("f(x)") +
ggtitle("Distribución Binomial") +
scale_fill_manual(name = "", values = c("Evento: X = 5" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")En el gráfico se destacan con color violeta las barras correspondientes al evento 𝑋 = 5, es decir, la probabilidad de que exactamente cinco varillas estén defectuosas. Visualmente se puede observar que la altura de esta barra es pequeña comparada con las de los valores más cercanos a cero, lo que indica que el suceso tiene una baja probabilidad de ocurrir.
El gráfico permite apreciar que los valores más concentrados de la distribución se encuentran entre 0 y 3 defectos, por lo que encontrar cinco varillas defectuosas sería un evento poco frecuente en este contexto. La visualización refuerza la interpretación numérica del cálculo, mostrando el lugar que ocupa ese resultado dentro de toda la distribución.
# b)
prob_b <- 1 - pbinom(9, size = n, prob = p)
cat("b) P(X ≥ 10) =", format(prob_b, scientific = TRUE, digits = 6), "\n")b) P(X ≥ 10) = 1.8662e-07
La probabilidad de que suceda este evento es prácticamente imposible dada la baja tasa de defectos individuales; la probabilidad es prácticamente cero.
Gráfica
df_b <- data.frame(x = rango, y = dbinom(rango, size = n, prob = p))
ggplot(df_b, aes(x = x, y = y, fill = factor(ifelse(x >= 10, "Evento: X ≥ 10", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de varillas defectuosas)") +
ylab("f(x)") +
ggtitle("Distribución Binomial") +
scale_fill_manual(name = "", values = c("Evento: X ≥ 10" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")En esta gráfica se resaltan las barras violetas que representan los casos en los que diez o más varillas resultan defectuosas. Se observa claramente que estas barras son prácticamente imperceptibles en el eje vertical, lo que visualmente confirma que el evento tiene una probabilidad extremadamente baja.
La interpretación es que, dada la baja proporción de defectos individuales (10%), es casi imposible encontrar diez o más defectuosas en un solo paquete de 15. La gráfica resalta visualmente esta rareza y ayuda a comprender la magnitud de lo improbable que resulta el evento.
# c)
prob_c <- pbinom(4, size = n, prob = p)
cat("c) P(X ≤ 4) =", round(prob_c, 6), "\n")c) P(X ≤ 4) = 0.98728
La probabilidad de que un paquete tenga como máximo cuatro varillas defectuosas es muy alta ≈98.7%.
Gráfica
df_c <- data.frame(x = rango, y = dbinom(rango, size = n, prob = p))
ggplot(df_c, aes(x = x, y = y, fill = factor(ifelse(x <= 4, "Evento: X ≤ 4", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de varillas defectuosas)") +
ylab("f(x) = P(X = x)") +
ggtitle("Distribución Binomial") +
scale_fill_manual(name = "", values = c("Evento: X ≤ 4" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")En este caso, las barras violetas corresponden a los valores de 𝑋 menores o iguales a 4, representando el evento “no más de 4 varillas defectuosas”. Se observa que la mayoría de la distribución se encuentra coloreada, lo cual refleja que este conjunto de valores abarca casi toda la probabilidad total.
El gráfico muestra de manera clara que los resultados con 0, 1, 2, 3 o 4 defectos son los más comunes y esperados en el experimento. Esto coincide con el resultado numérico obtenido, donde la probabilidad de que no haya más de cuatro varillas defectuosas es muy alta (cercana al 99%), reforzando visualmente la conclusión del análisis.
Una compañía de seguros considera que alrededor del 25% de los carros se accidentan cada año. ¿Cuál es la probabilidad de que por lo menos 3 de una muestra de 7 vehículos asegurados, se haya accidentado?
Solución
Tabla de distribución de probabilidad
library(tidyverse)
library(kableExtra)
library(scales)
library(ggplot2)
n <- 7
p <- 0.25
x <- 0:n
fx <- round(dbinom(x, size = n, prob = p), 6)
Fx <- round(cumsum(dbinom(x, size = n, prob = p)), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x", "f(x)", "F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución de probabilidad") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#961eba", color = "black") %>%
row_spec(1:nrow(df), background = "#da82f5", color = "black") %>%
column_spec(1:3, bold = TRUE)| x | f(x) | F(x) |
|---|---|---|
| 0 | 0.133484 | 0.133484 |
| 1 | 0.311462 | 0.444946 |
| 2 | 0.311462 | 0.756409 |
| 3 | 0.173035 | 0.929443 |
| 4 | 0.057678 | 0.987122 |
| 5 | 0.011536 | 0.998657 |
| 6 | 0.001282 | 0.999939 |
| 7 | 0.000061 | 1.000000 |
La tabla enumera todos los posibles números de carros accidentados en una muestra de siete y muestra, primero, la probabilidad puntual de cada caso y luego su acumulado. Esto permite ver qué resultados son más probables (por ejemplo 1 o 2 accidentes) y cuáles son raros (valores altos). La columna acumulada facilita responder preguntas del tipo “a lo más” o “por lo menos” y confirma visualmente cuánto de la probabilidad total está cubierta hasta cada valor.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = x, y = dbinom(x, size = n, prob = p))
ggplot(df_pmf, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#da82f5", high = "#961eba", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(
title = "Distribución Binomial",
x = "x",
y = "f(x)"
) +
theme_bw(base_size = 13)El gráfico muestra la probabilidad de ocurrencia de cada número exacto de carros accidentados. Las barras más altas indican los resultados más esperables; en este caso, la masa de probabilidad está concentrada en valores bajos (0–2). El gráfico ayuda a ubicar visualmente el evento 𝑋 ≥ 3 dentro de la distribución: sus barras tienen alturas moderadas y representan cerca de un cuarto de la probabilidad total.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = cumsum(dbinom(x, size = n, prob = p)))
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", color = "#961eba", size = 1.2) +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#da82f5") +
labs(
title = "Función de distribución acumulada",
x = "x",
y = "F(x)"
) +
theme_bw(base_size = 13)La gráfica escalonada muestra cómo se acumula la probabilidad cuando se consideran valores crecientes de 𝑋. Al observar el escalón en 𝑥 = 2 se puede ver qué proporción de probabilidad queda por encima (es decir, 𝑃(𝑋 ≥ 3). Este gráfico es práctico para responder con rapidez preguntas del tipo “¿qué probabilidad hay de que no haya más de 2 accidentes?” y visualmente confirma que aproximadamente el 75.64% está a la izquierda de 2 y el 24.36% restante corresponde a 𝑋 ≥ 3.
¿Cuál es la probabilidad de que por lo menos 3 de una muestra de 7 vehículos asegurados, se haya accidentado?
prob_ge3 <- sum(dbinom(3:n, size = n, prob = p))
cat("Resultado: P(X >= 3) =", round(prob_ge3, 6), "\n")Resultado: P(X >= 3) = 0.243591
La probabilidad de que por lo menos 3 asegurados se haya accidentado es de 24.35%
Los registros muestran que 30% de los pacientes admitidos en una clínica, no pagan sus facturas y eventualmente se condona la deuda. Suponga que llegan 4 nuevos pacientes a la clínica, a) cual es la probabilidad de que se tenga que perdonar la deuda de uno de los cuatro. b) los cuatro pacientes paguen sus facturas.
Solución
Tabla de distribución de probabilidad
library(tidyverse)
library(kableExtra)
library(scales)
library(ggplot2)
n <- 4
p <- 0.30
x <- 0:n
fx <- round(dbinom(x, size = n, prob = p), 6)
Fx <- round(cumsum(dbinom(x, size = n, prob = p)), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x", "f(x)", "F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución de probabilidad") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#1e9bba", color = "black") %>%
row_spec(1:nrow(df), background = "#66b8cc", color = "black") %>%
column_spec(1:3, bold = TRUE)| x | f(x) | F(x) |
|---|---|---|
| 0 | 0.2401 | 0.2401 |
| 1 | 0.4116 | 0.6517 |
| 2 | 0.2646 | 0.9163 |
| 3 | 0.0756 | 0.9919 |
| 4 | 0.0081 | 1.0000 |
La tabla lista todos los posibles números de pacientes que no pagan, junto con la probabilidad puntual y la probabilidad acumulada hasta cada valor. Esto permite ver de forma ordenada qué escenarios son usuales y cuáles son menos probables. En este caso la masa de probabilidad está concentrada en valores bajos (0, 1 o 2 deudores), reflejando la tasa individual moderada de impago (30%). La columna acumulada facilita responder preguntas del tipo “a lo más” o “por lo menos” y muestra cuánto porcentaje de la probabilidad total queda cubierto al llegar a cada valor.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = x, y = dbinom(x, size = n, prob = p))
ggplot(df_pmf, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#66b8cc", high = "#1e9bba", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(
title = "Distribución Binomial",
x = "x (Número de pacientes que no pagan)",
y = "f(x)"
) +
theme_bw(base_size = 13)El gráfico de barras muestra la probabilidad puntual de cada número de pacientes que no pagan. La barra para 𝑋 = 1 es la más alta, lo que indica que el caso más probable es que exactamente uno de los cuatro pacientes no pague. Las barras para 𝑋 = 0 y 𝑋 = 2 también tienen peso importante; los valores mayores (3 o 4) son poco frecuentes. Este gráfico ayuda a ver rápidamente cuál es el escenario típico y la dispersión de la distribución.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = cumsum(dbinom(x, size = n, prob = p)))
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", color = "#1e9bba", size = 1.2) +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#66b8cc") +
labs(
title = "Función de distribución acumulada",
x = "x (Número de pacientes que no pagan)",
y = "F(x)"
) +
theme_bw(base_size = 13)La función de distribución acumulada muestra cómo se acumula la probabilidad cuando incluimos más valores posibles de X. Por ejemplo, el escalón en 𝑥 = 1 indica que aproximadamente el 41% de la probabilidad total corresponde a tener a lo más un deudor. El gráfico es útil para responder preguntas como “¿qué probabilidad hay de que no haya más de uno que no pague?” y para comparar visualmente la porción de probabilidad que queda por encima o por debajo de un umbral.
Incisos
prob_a <- dbinom(1, size = n, prob = p)
cat("a) P(X = 1) =", round(prob_a, 6), "\n")a) P(X = 1) = 0.4116
Existe aproximadamente un 41.16% de probabilidad de que exactamente un paciente no pague su factura.
Gráfica
rango <- 0:n
df_a <- data.frame(x = rango, y = dbinom(rango, size = n, prob = p))
ggplot(df_a, aes(x = x, y = y, fill = factor(ifelse(x == 1, "Evento: X = 1", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de pacientes que no pagan)") +
ylab("f(x)") +
ggtitle("Distribución Binomial") +
scale_fill_manual(name = "", values = c("Evento: X = 1" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")En el gráfico que resalta 𝑋 = 1, la barra violeta deja claro que la probabilidad de que exactamente un paciente no pague es la más alta entre los posibles resultados. Visualmente se aprecia que este resultado domina a otros individuales, lo que coincide con el valor numérico 𝑃(𝑋 = 1 ) = 0.4116. La visualización facilita entender por qué, en la práctica, es más frecuente ver un único impago en una muestra de cuatro pacientes que ver múltiples impagos.
prob_b <- dbinom(0, size = n, prob = p)
cat("b) P(X = 0) =", round(prob_b, 6), "\n")b) P(X = 0) = 0.2401
Hay aproximadamente un 24.01% de probabilidad de que todos los pacientes paguen.
Gráfica
df_b <- data.frame(x = rango, y = dbinom(rango, size = n, prob = p))
ggplot(df_b, aes(x = x, y = y, fill = factor(ifelse(x == 0, "Evento: X = 0", "Resto")))) +
geom_bar(stat = "identity", width = 0.25, color = "black") +
xlab("x (Número de pacientes que no pagan)") +
ylab("f(x)") +
ggtitle("Distribución Binomial") +
scale_fill_manual(name = "", values = c("Evento: X = 0" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")En la gráfica que resalta 𝑋 = 0 se muestra en violeta la probabilidad de que ninguno de los cuatro pacientes deje de pagar; su barra es notable pero menor que la de 𝑋 = 1. Esto indica que, aunque es razonablemente probable que todos paguen (≈24%), es algo menos probable que ocurra exactamente eso que que ocurra un único impago. El gráfico ayuda a situar visualmente la probabilidad de «todos pagan» dentro del conjunto de opciones posibles.
La distribución geométrica es una distribución de probabilidad discreta que modela el número de ensayos independientes de Bernoulli necesarios para lograr el primer éxito. Cada ensayo tiene la misma probabilidad de éxito, y los ensayos son independientes entre sí.
Esta distribución se presenta en dos formas comunes: una que cuenta el número total de intentos hasta el primer éxito (incluido el éxito) y otra que cuenta solo el número de fallos antes del primer éxito. Ambas formas se utilizan ampliamente dependiendo del contexto específico de la aplicación.
La distribución geométrica requiere tres condiciones clave: ensayos independientes, probabilidad idéntica de éxito en todos los ensayos y una probabilidad fija p donde 0 < p ≤ 1. La notación estándar utiliza p para la probabilidad de éxito y q = 1-p para la probabilidad de fracaso.
La función de masa de probabilidad (PMF) para el número de intentos X hasta el primer éxito es:

Esta fórmula calcula la probabilidad de experimentar exactamente k-1 fallos seguidos de un éxito. Por ejemplo, si p = 0,3, la probabilidad de éxito en el tercer intento es P(X = 3) = (0,7)² × 0,3 = 0,147.
Ejemplo:
Una empresa de soporte técnico recibe llamadas de usuarios que intentan resolver un error en la instalación de un programa. La probabilidad de que un usuario logre resolver el problema en un solo intento es de 0.3. Cada intento es independiente de los anteriores.
Se desea calcular la probabilidad de que el usuario logre resolver el problema en el primer, segundo, … o décimo intento, y representar la distribución de probabilidades.
Solución:
p = 0.3 (éxito: resolver el problema)
1 − 𝑝 = 0.7 (fracaso)
𝑋: número de intentos hasta el primer éxito

Tabla de distribución de probabilidad:
library(dplyr)
library(knitr)
library(kableExtra)
library(MASS)
# Parámetros
p <- 0.3
x <- 1:10
fx <- dgeom(x - 1, p)
Fx <- pgeom(x - 1, p)
# Crear tabla
df <- data.frame(
"x (Intento del éxito)" = x,
"f(x) = P(X = x)" = fx,
"F(x) = P(X ≤ x)" = Fx,
check.names = FALSE
)
# Mostrar tabla
kable(df, align = "c") %>%
kable_styling("striped", full_width = F) %>%
column_spec(1, bold = T) %>%
row_spec(0:10, bold = T, color = "#0d0d0d", background = "#b55de8")| x (Intento del éxito) | f(x) = P(X = x) | F(x) = P(X ≤ x) |
|---|---|---|
| 1 | 0.3000000 | 0.3000000 |
| 2 | 0.2100000 | 0.5100000 |
| 3 | 0.1470000 | 0.6570000 |
| 4 | 0.1029000 | 0.7599000 |
| 5 | 0.0720300 | 0.8319300 |
| 6 | 0.0504210 | 0.8823510 |
| 7 | 0.0352947 | 0.9176457 |
| 8 | 0.0247063 | 0.9423520 |
| 9 | 0.0172944 | 0.9596464 |
| 10 | 0.0121061 | 0.9717525 |
Gráfico:
# Gráfico de la función de probabilidad geométrica
plot(x - 1, fx,
type = "h",
lwd = 3,
col = "#855bb3",
main = "Distribución Geométrica",
xlab = "Número de intentos hasta el primer éxito",
ylab = "Probabilidad",
ylim = c(0, max(fx) + 0.05))
points(x - 1, fx, pch = 19, col = "#c813e8", cex = 1.3)# Gráfico de la función de distribución acumulada geométrica
plot(x, Fx,
type = "s",
lwd = 3,
col = "#c813e8",
main = "Distribución acumulada - Geométrica",
xlab = "Número de intentos hasta el primer éxito (X)",
ylab = "Probabilidad acumulada F(x)",
ylim = c(0, 1),
xlim = c(1, max(x)))
points(x, Fx, pch = 19, col = "#855bb3", cex = 1.3)El gráfico muestra cómo disminuye la probabilidad a medida que aumenta el número de intentos. La mayor probabilidad ocurre en 𝑋 = 1, ya que lo más probable es tener éxito en el primer intento. Las probabilidades decrecen geométricamente, mostrando que cuanto más se repite el intento, menos probable es que el éxito ocurra recién después de muchos intentos. El valor esperado de la distribución es:

En promedio, el usuario necesitará alrededor de 3 intentos para resolver el problema por primera vez.
La probabilidad de que un estudiante de aviación pase la prueba escrita para obtener su licencia de piloto privado es de 0.7. encuentre la probabilidad de que una persona pase la prueba antes del cuarto intento.
Solución
Este ejercicio pertenece al modelo geométrico porque el evento de interés (“pasar la prueba”) tiene probabilidad fija 𝑝 = 0.7 en cada intento, los intentos son independientes y se requiere el número de intento en el que se obtiene el primer éxito.
Tabla de distribución de probabilidad
library(tidyverse)
library(kableExtra)
library(ggplot2)
library(scales)
p <- 0.7
x <- 1:10
fx <- round(dgeom(x - 1, prob = p), 6)
Fx <- round(pgeom(x - 1, prob = p), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x (Intento)",
"f(x)",
"F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución — Geométrica") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#A9DDF3") %>%
row_spec(1:nrow(df), background = "#D6F1FA") %>%
column_spec(1:3, bold = TRUE)| x (Intento) | f(x) | F(x) |
|---|---|---|
| 1 | 0.700000 | 0.700000 |
| 2 | 0.210000 | 0.910000 |
| 3 | 0.063000 | 0.973000 |
| 4 | 0.018900 | 0.991900 |
| 5 | 0.005670 | 0.997570 |
| 6 | 0.001701 | 0.999271 |
| 7 | 0.000510 | 0.999781 |
| 8 | 0.000153 | 0.999934 |
| 9 | 0.000046 | 0.999980 |
| 10 | 0.000014 | 0.999994 |
La tabla muestra las probabilidades de aprobar exactamente en cada intento, desde el primero hasta el décimo. Puede verse que la probabilidad disminuye conforme aumenta el número de intentos, lo cual es característico de la distribución geométrica. La columna acumulada indica la probabilidad de haber aprobado en o antes de cierto intento.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = factor(x), y = dgeom(x - 1, prob = p))
ggplot(df_pmf, aes(x = x, y = y, fill = y)) +
geom_col(color = "black", width = 0.6) +
scale_fill_gradient(low = "#AED6F1", high = "#1B4F72", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(
title = "Distribución Geométrica",
x = "Intento en que aprueba",
y = "f(x)"
) +
theme_bw(base_size = 13)El gráfico de barras muestra que la barra del primer intento es la más alta, ya que aprobar en el primer intento es el escenario más probable cuando 𝑝 = 0.7. A medida que avanzan los intentos, las barras decrecen rápidamente, reflejando que es cada vez menos probable tardar más en aprobar.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = Fx)
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", size = 1.2, color = "#E149F5") +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#D35400") +
labs(
title = "Función de distribución acumulada",
x = "Intento",
y = "F(x)"
) +
theme_bw(base_size = 13)La gráfica acumulada muestra cómo aumenta la probabilidad de haber aprobado conforme pasan los intentos. En el intento 3, la curva ya alcanza un valor cercano al 97%, lo cual confirma visualmente que la mayoría de los estudiantes aprobaría antes de llegar al cuarto intento.
encuentre la probabilidad de que una persona pase la prueba antes del cuarto intento.
prob_le3 <- pgeom(3 - 1, prob = p)
cat("Resultado: P(X ≤ 3) =", round(prob_le3, 6), "\n")Resultado: P(X ≤ 3) = 0.973
La probabilidad de que una persona pase la prueba antes del cuarto intento es 97.3%
Ejercicio #16
La experiencia mostró que, en promedio, solamente uno de diez pozos perforados llega a producir petróleo. Cuál es la probabilidad de que necesite ocho perforaciones para encontrar petróleo.
Solución
Este ejercicio pertenece al modelo geometrico porque cada perforación es un ensayo independiente, con probabilidad constante de éxito 𝑝 = 0.1.
Tabla de distribución de probabilidad
library(tidyverse)
library(kableExtra)
library(ggplot2)
library(scales)
p <- 0.1
x <- 1:15
fx <- round(dgeom(x - 1, prob = p), 6)
Fx <- round(pgeom(x - 1, prob = p), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x (Perforación)",
"f(x)",
"F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución — Geométrica") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#3987ed") %>%
row_spec(1:nrow(df), background = "#6d91bf") %>%
column_spec(1:3, bold = TRUE)| x (Perforación) | f(x) | F(x) |
|---|---|---|
| 1 | 0.100000 | 0.100000 |
| 2 | 0.090000 | 0.190000 |
| 3 | 0.081000 | 0.271000 |
| 4 | 0.072900 | 0.343900 |
| 5 | 0.065610 | 0.409510 |
| 6 | 0.059049 | 0.468559 |
| 7 | 0.053144 | 0.521703 |
| 8 | 0.047830 | 0.569533 |
| 9 | 0.043047 | 0.612580 |
| 10 | 0.038742 | 0.651322 |
| 11 | 0.034868 | 0.686189 |
| 12 | 0.031381 | 0.717570 |
| 13 | 0.028243 | 0.745813 |
| 14 | 0.025419 | 0.771232 |
| 15 | 0.022877 | 0.794109 |
La tabla presenta las probabilidades de que el primer pozo productor aparezca en cada intento. Se observa que la probabilidad disminuye conforme el número de perforaciones aumenta, porque es más probable encontrar petróleo temprano cuando el éxito tiene probabilidad 0.1. La columna acumulada permite ver qué tan probable es haber encontrado petróleo en o antes de cierto intento.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = factor(x), y = dgeom(x - 1, prob = p))
ggplot(df_pmf, aes(x = x, y = y, fill = y)) +
geom_col(color = "black", width = 0.6) +
scale_fill_gradient(low = "#AED6F1", high = "#1B4F72", guide = FALSE) +
geom_text(aes(label = round(y, 5)), vjust = -0.6, size = 3) +
labs(
title = "Distribución Geométrica",
x = "Perforación donde aparece el primer éxito",
y = "f(x)"
) +
theme_bw(base_size = 13)En el gráfico de barras puede verse que el valor más alto ocurre en el primer intento y que la probabilidad de éxito en perforaciones posteriores decrece geométricamente. La barra correspondiente al intento 8 aparece pequeña, indicando que es un evento posible pero relativamente poco común.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = Fx)
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", size = 1.2, color = "#1B4F72") +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 5)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#AED6F1") +
labs(
title = "Función de distribución acumulada",
x = "Perforación",
y = "F(x)"
) +
theme_bw(base_size = 13)La curva acumulada muestra cómo va aumentando la probabilidad de éxito conforme pasan los intentos. Para valores pequeños, la curva crece despacio por la baja probabilidad de éxito. Cerca del intento 8 se observa que el acumulado aún no es tan alto, lo cual sugiere que el evento solicitado no es muy frecuente.
¿Cuál es la probabilidad de que necesite ocho perforaciones para encontrar petróleo?
prob_eq8 <- dgeom(8 - 1, prob = p)
cat("Resultado: P(X = 8) =", round(prob_eq8, 6), "\n")Resultado: P(X = 8) = 0.04783
La probabilidad de que se deban hacer 8 perforaciones para encontrar petróleo es de 4.78%
La distribución binomial negativa es un modelo de probabilidad discreta que describe el número de ensayos independientes y repetidos necesarios para obtener un número específico de éxitos. Se utiliza para analizar situaciones en las que estamos interesados en el número de fracasos antes de alcanzar un cierto número de éxitos.
La importancia de la distribución binomial negativa en estadística radica en su capacidad para modelar eventos raros y poco comunes. A diferencia de la distribución binomial, que se utiliza cuando estamos interesados en un número fijo de éxitos en un número fijo de ensayos, la distribución binomial negativa es útil cuando queremos determinar cuántos ensayos se necesitan para lograr un número específico de éxitos.
Una variable aleatoria binomial negativa es un tipo de variable aleatoria discreta que se utiliza para modelar el número de fracasos que ocurren antes de obtener un número fijo de éxitos en una secuencia de ensayos independientes e idénticamente distribuidos.
La distribución binomial negativa se caracteriza por dos parámetros: el número de éxitos deseados (r) y la probabilidad de éxito en un solo ensayo (p). La variable aleatoria binomial negativa cuenta el número de fracasos (k) antes de alcanzar r éxitos en una secuencia de ensayos.
La importancia de la variable aleatoria binomial negativa radica en su capacidad para modelar eventos en los que se requiere un número específico de éxitos y la ocurrencia de fracasos antes de lograr ese objetivo.
La fórmula de la distribución binomial negativa se expresa de la siguiente manera:

Parámetros:

Ejemplo:
Una empresa está probando un nuevo sistema de autenticación. Cada vez que se ejecuta una prueba, existe una probabilidad de 0.4 de que el sistema falle y una probabilidad de 0.6 de que funcione correctamente.
El equipo desea saber la probabilidad de que sean necesarias entre 3 y 10 pruebas para lograr 3 inicios de sesión exitosos.
Entonces: * 𝑟 = 3 (éxitos requeridos) * p = 0.6 (probabilidad de éxito) * 𝑋 = número de pruebas necesarias para lograr 3 éxitos
Tabla de distribución de probabilidad
library(dplyr)
library(knitr)
library(kableExtra)
library(tibble)
# Parámetros
r <- 3
p <- 0.6
x <- r:10
# Funciones de probabilidad y acumulada
fx <- dnbinom(x - r, size = r, prob = p)
Fx <- pnbinom(x - r, size = r, prob = p)
tabla <- tibble(
"Número de pruebas (X)" = x,
"Probabilidad f(x)" = round(fx, 4),
"Distribución acumulada F(x)" = round(Fx, 4)
)
kable(tabla, align = "c", caption = "Tabla de distribución de probabilidad binomial negativa") %>%
kable_styling("striped", full_width = F) %>%
column_spec(1, bold = T) %>%
row_spec(0:8, bold = T, color = "#0d0d0d", background = "#2c8ff2")| Número de pruebas (X) | Probabilidad f(x) | Distribución acumulada F(x) |
|---|---|---|
| 3 | 0.2160 | 0.2160 |
| 4 | 0.2592 | 0.4752 |
| 5 | 0.2074 | 0.6826 |
| 6 | 0.1382 | 0.8208 |
| 7 | 0.0829 | 0.9037 |
| 8 | 0.0464 | 0.9502 |
| 9 | 0.0248 | 0.9750 |
| 10 | 0.0127 | 0.9877 |
Gráfico:
# Gráfico de líneas verticales con puntos
plot(x, fx,
type = "h",
lwd = 3,
col = "#163a5e",
main = "Distribución Binomial Negativa",
xlab = "Número de pruebas (X)",
ylab = "Probabilidad f(x)",
ylim = c(0, max(fx) + 0.05))
points(x, fx, pch = 19, col = "#78d1e3", cex = 1.3)# Gráfico de la función de distribución acumulada binomial negativa
plot(x, Fx,
type = "s",
lwd = 3,
col = "#78d1e3",
main = "Distribución acumulada - Binomial Negativa",
xlab = "Número de pruebas (X)",
ylab = "Probabilidad acumulada F(x)",
ylim = c(0, 1),
xlim = c(min(x), max(x)))
points(x, Fx, pch = 19, col = "#163a5e", cex = 1.3)La distribución muestra la probabilidad de necesitar cierta cantidad de pruebas para obtener 3 éxitos. La probabilidad es más alta cuando el número de pruebas es moderado (cerca de 4 o 5) y disminuye a medida que se requieren más intentos. En contextos reales, esto puede interpretarse como la persistencia necesaria en procesos donde los éxitos no ocurren inmediatamente.
La distribución hipergeométrica es especialmente útil en todos aquellos casos en los que se extraigan muestras o se realicen experiencias repetidas sin devolución del elemento extraído o sin retornar a la situación experimental inicial. Es una distribución fundamental en el estudio de muestras pequeñas de poblaciones pequeñas y en el cálculo de probabilidades de juegos de azar. Tiene grandes aplicaciones en el control de calidad para procesos experimentales en los que no es posible retornar a la situación de partida.
Las consideraciones a tener en cuenta en una distribución hipergeométrica: El proceso consta de “n” pruebas, separadas o separables de entre un conjunto de “N” pruebas posibles. Cada una de las pruebas puede dar únicamente dos resultados mutuamente excluyentes. El número de individuos que presentan la característica A (éxito) es “k”. En la primera prueba las probabilidades son: P(A)= p y P(A)= q; con p+q=1.
En estas condiciones, se define la variable aleatoria X = “nº de éxitos obtenidos”. La función de probabilidad de esta variable sería:

La media, varianza y desviación típica de esta distribución vienen dadas por:

Ejemplo:
Una empresa fabrica 100 dispositivos electrónicos, de los cuales 30 son defectuosos. Se seleccionan 10 dispositivos al azar para control de calidad, sin reemplazo. Queremos conocer la probabilidad de que exactamente 0, 1, 2, 3 o 4 dispositivos sean defectuosos en la muestra.
Solución:
Tabla de distribución de probabilidad
# Parámetros
N <- 100 # Tamaño de la población
K <- 30 # Número total de defectuosos (éxitos en la población)
n <- 10 # Tamaño de la muestra
# Valores posibles de X (número de defectuosos encontrados)
x <- 0:4
# Funciones de probabilidad e hipergeométrica acumulada
fx <- dhyper(x, K, N - K, n)
Fx <- phyper(x, K, N - K, n)
tabla <- tibble(
"Número de defectuosos (X)" = x,
"Probabilidad f(x)" = round(fx, 4),
"Distribución acumulada F(x)" = round(Fx, 4)
)
kable(tabla, align = "c", caption = "Tabla de distribución de probabilidad hipergeométrica") %>%
kable_styling("striped", full_width = F) %>%
column_spec(1, bold = T) %>%
row_spec(0:5, bold = T, color = "#0d0d0d", background = "#0258f7")| Número de defectuosos (X) | Probabilidad f(x) | Distribución acumulada F(x) |
|---|---|---|
| 0 | 0.0229 | 0.0229 |
| 1 | 0.1127 | 0.1356 |
| 2 | 0.2372 | 0.3729 |
| 3 | 0.2812 | 0.6540 |
| 4 | 0.2076 | 0.8616 |
Gráfico:
# Gráfico de f(x)
plot(x, fx, type = "h", lwd = 4, col = "#50afe6",
main = "Distribución Hipergeométrica",
xlab = "Número de defectuosos (X)", ylab = "Probabilidad f(x)")
points(x, fx, pch = 19, col = "#386ac7")# Gráfico de la función de distribución acumulada hipergeométrica
plot(x, Fx,
type = "s",
lwd = 4,
col = "#386ac7",
main = "Distribución acumulada - Hipergeométrica",
xlab = "Número de defectuosos (X)",
ylab = "Probabilidad acumulada F(x)",
ylim = c(0, 1))
points(x, Fx, pch = 19, col = "#50afe6", cex = 1.3)Los resultados muestran que la mayor probabilidad se concentra en obtener alrededor de 3 defectuosos dentro de la muestra de 10 dispositivos. A medida que aumenta el número de defectuosos seleccionados, la probabilidad disminuye rápidamente, ya que las extracciones se hacen sin reemplazo y el número de elementos defectuosos en la población es limitado.
Un jefe de almacén sabe que 6 de las 25 bicicletas que tiene para la venta presentan fallas en los frenos y necesitan ajuste. Si el vendedor que no tenía conocimiento de lo anterior vendió en el día 4 bicicletas, ¿cuál es la probabilidad de que vendiera dos de las que requerían ajuste?
Solución
Este ejercicio pertenece al modelo Hipergeometrico ya que existe un muestreo sin reemplazo de una población finita (25 bicicletas), con una cantidad fija de éxitos en la población (6 defectuosas).
Tabla de distribución de probabilidad
library(tidyverse)
library(kableExtra)
library(scales)
library(ggplot2)
N <- 25
m <- 6
k <- 4
x <- 0:k
fx <- round(dhyper(x, m = m, n = N - m, k = k), 6)
Fx <- round(cumsum(dhyper(x, m = m, n = N - m, k = k)), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x (Valores posibles)", "f(x)", "F(x)")
kable(df, align = "c", escape = FALSE,
caption = paste0("Tabla de distribución — Hipergeométrica", N, ", m=", m, ", k=", k, ")")) %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#A9DDF3", color = "black") %>%
row_spec(1:nrow(df), background = "#D6F1FA", color = "black") %>%
column_spec(1:3, bold = TRUE)| x (Valores posibles) | f(x) | F(x) |
|---|---|---|
| 0 | 0.306403 | 0.306403 |
| 1 | 0.459605 | 0.766008 |
| 2 | 0.202767 | 0.968775 |
| 3 | 0.030040 | 0.998814 |
| 4 | 0.001186 | 1.000000 |
La tabla muestra las probabilidades de vender 0, 1, 2, 3 o 4 bicicletas defectuosas en la muestra de 4. La columna puntual permite identificar qué casos son más probables; la acumulada indica qué fracción de la probabilidad total se cubre hasta cada valor. Aquí se ve que vender exactamente dos defectuosas ocurre con una probabilidad cercana al 20%.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = x, y = dhyper(x, m = m, n = N - m, k = k))
ggplot(df_pmf, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#AED6F1", high = "#1B4F72", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(
title = paste0("Hipergeométrica", N, ", m=", m, ", k=", k, ")"),
x = "x (Número de bicicletas defectuosas vendidas)",
y = "f(x)"
) +
theme_bw(base_size = 13)El gráfico de barras muestra la probabilidad puntual para cada posible número de defectuosas vendidas. La barra resaltada para 𝑋 = 2 permite ver de manera inmediata que este resultado tiene peso apreciable pero no domina la distribución.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = cumsum(dhyper(x, m = m, n = N - m, k = k)))
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", color = "#E149F5", size = 1.2) +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#D35400") +
labs(
title = "Función de distribución acumulada (Hipergeométrica)",
x = "x (Número de bicicletas defectuosas vendidas)",
y = "F(x)"
) +
theme_bw(base_size = 13)La gráfica escalonada presenta cómo se acumula la probabilidad hasta cada 𝑥; por ejemplo, 𝐹(2) indica la probabilidad de vender hasta dos defectuosas, útil para preguntas del tipo “no más de 2”.
¿cuál es la probabilidad de que vendiera dos de las que requerían ajuste?
prob_eq2 <- dhyper(2, m = m, n = N - m, k = k)
cat("Resultado: P(X = 2) =", round(prob_eq2, 6), "\n")Resultado: P(X = 2) = 0.202767
La probabilidad de que vendiera dos de estas que requerían ajuste es de 20.27%
Una distribución de Poisson es una distribución de probabilidad discreta, la cual da la probabilidad de que un evento ocurra un cierto número de veces ( k ) dentro de un intervalo de tiempo o espacio dado. La distribución de Poisson tiene un único parámetro, λ (lambda), que representa el número medio de eventos.
Se puede usar una distribución de Poisson para predecir o explicar la cantidad de eventos que ocurren en un intervalo de tiempo o espacio determinado. Los “eventos” pueden ser desde casos de enfermedades hasta compras de clientes o impactos de meteoritos. El intervalo puede ser cualquier cantidad específica de tiempo o espacio, como 10 días o 5 pulgadas cuadradas.
Se puede usar una distribución de Poisson si:
Cuando los eventos siguen una distribución de Poisson, λ es lo único que se necesita saber para calcular la probabilidad de que un evento ocurra un cierto número de veces.
La función de probabilidad de la distribución de Poisson es:

Una de las propiedades más distintivas de la distribución de Poisson es que su media (valor esperado) es igual a su varianza. Ambos están representados por el parámetro λ (lambda), que denota el número medio de sucesos en el intervalo. Esta propiedad es única y ayuda a identificar si un conjunto de datos sigue una distribución de Poisson. Matemáticamente, esto puede representarse en la siguiente ecuación:

Esta igualdad implica que, a medida que aumenta el número esperado de sucesos, también lo hace la variabilidad en el número real de sucesos.
Ejemplo:
En un centro de atención telefónica, se recibe un promedio de 4 llamadas por minuto. Se desea conocer la probabilidad de que en un minuto determinado se reciban 0, 1, 2, 3, 4, 5 o 6 llamadas.
Solución:
Tabla de distribución de probabilidad
# Parámetro de la distribución
lambda <- 4 # promedio de llamadas por minuto
# Valores posibles de X
x <- 0:6
# Cálculo de la función de probabilidad y acumulada
fx <- dpois(x, lambda)
Fx <- ppois(x, lambda)
library(dplyr)
library(knitr)
library(kableExtra)
library(tibble)
tabla <- tibble(
"Número de llamadas (X)" = x,
"Probabilidad f(x)" = round(fx, 4),
"Distribución acumulada F(x)" = round(Fx, 4)
)
kable(tabla, align = "c", caption = "Tabla de distribución de probabilidad de Poisson") %>%
kable_styling("striped", full_width = F) %>%
column_spec(1, bold = T) %>%
row_spec(0:7, bold = T, color = "#0d0d0d", background = "#be63f2")| Número de llamadas (X) | Probabilidad f(x) | Distribución acumulada F(x) |
|---|---|---|
| 0 | 0.0183 | 0.0183 |
| 1 | 0.0733 | 0.0916 |
| 2 | 0.1465 | 0.2381 |
| 3 | 0.1954 | 0.4335 |
| 4 | 0.1954 | 0.6288 |
| 5 | 0.1563 | 0.7851 |
| 6 | 0.1042 | 0.8893 |
Gráfico:
# Gráfico de f(x)
plot(x, fx, type = "h", lwd = 4, col = "#7a37a1",
main = "Distribución de Poisson",
xlab = "Número de llamadas (X)", ylab = "Probabilidad f(x)")
points(x, fx, pch = 19, col = "#cb88f2")# Gráfico de F(x) (acumulada)
plot(x, Fx, type = "s", lwd = 3, col = "#cb88f2",
main = "Función de distribución acumulada de Poisson",
xlab = "Número de llamadas (X)",
ylab = "Probabilidad acumulada F(x)")
points(x, Fx, pch = 19, col = "#7a37a1")Los resultados indican que la probabilidad más alta ocurre alrededor de 4 llamadas por minuto, que corresponde al valor promedio λ. Las probabilidades disminuyen simétricamente a medida que se observan menos o más llamadas que el promedio. Esto refleja un patrón típico de la distribución de Poisson, donde los valores cercanos a la media son los más probables y los extremos (muy pocos o muchos eventos) son menos frecuentes.
El conmutador de un hospital recibe en promedio 20 llamadas cada dos minutos. Cuál es la probabilidad de que lleguen como máximo dos llamadas en un periodo de 15 segundos.
Solución
Este ejercicio pertenece al modelo Poisson ya que las llamadas llegan de forma aleatoria en el tiempo con una tasa promedio constante; el número de llegadas en intervalos de tiempo es apropiadamente modelado por una Poisson.
Tabla de distribución de probabilidad
library(tidyverse)
library(kableExtra)
library(scales)
library(ggplot2)
lambda <- 2.5
x <- 0:10
fx <- round(dpois(x, lambda = lambda), 6)
Fx <- round(cumsum(dpois(x, lambda = lambda)), 6)
df <- data.frame(x, fx, Fx)
colnames(df) <- c("x (Valores posibles)", "f(x)", "F(x)")
kable(df, align = "c", escape = FALSE,
caption = "Tabla de distribución de probabilidad — Poisson") %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 13) %>%
row_spec(0, bold = TRUE, background = "#6333e8", color = "black") %>%
row_spec(1:nrow(df), background = "#9e89d9", color = "black") %>%
column_spec(1:3, bold = TRUE)| x (Valores posibles) | f(x) | F(x) |
|---|---|---|
| 0 | 0.082085 | 0.082085 |
| 1 | 0.205212 | 0.287297 |
| 2 | 0.256516 | 0.543813 |
| 3 | 0.213763 | 0.757576 |
| 4 | 0.133602 | 0.891178 |
| 5 | 0.066801 | 0.957979 |
| 6 | 0.027834 | 0.985813 |
| 7 | 0.009941 | 0.995753 |
| 8 | 0.003106 | 0.998860 |
| 9 | 0.000863 | 0.999723 |
| 10 | 0.000216 | 0.999938 |
La tabla enumera los posibles números de llamadas que pueden llegar en 15 segundos (desde 0 hacia arriba) junto con la probabilidad puntual y la probabilidad acumulada hasta cada valor. Permite ver con orden qué conteos son más frecuentes y cuánto se acumula la probabilidad cuando se consideran valores crecientes. En este caso, se aprecia que la mayor parte de la probabilidad está concentrada en valores bajos (0–3 llamadas), lo que es consistente con la media λ = 2.5.
Gráficas
Función de probabilidad
df_pmf <- data.frame(x = x, y = dpois(x, lambda = lambda))
ggplot(df_pmf, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#a633e8", high = "#6333e8", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(
title = "Distribución Poisson",
x = "x (Número de llamadas en 15 s)",
y = "f(x)"
) +
theme_bw(base_size = 13)El gráfico de barras (PMF) indica la probabilidad de que lleguen exactamente 𝑥 llamadas en 15 segundos. Las barras más altas muestran los valores más probables — alrededor de 2 llamadas— mientras que conteos mayores decrecen rápidamente. La visualización permite ubicar rápidamente la masa de probabilidad y comparar la frecuencia relativa de cada posible resultado.
Función de distribución acumulada
df_cdf <- data.frame(x = x, Fx = cumsum(dpois(x, lambda = lambda)))
ggplot(df_cdf, aes(x = x, y = Fx)) +
geom_step(direction = "hv", color = "#6333e8", size = 1.2) +
geom_point(aes(color = Fx), size = 3, show.legend = FALSE) +
geom_text(aes(label = round(Fx, 4)), vjust = -0.7, size = 3) +
scale_color_gradient(low = "#FDEBD0", high = "#a633e8") +
labs(
title = "Función de distribución acumulada (Poisson)",
x = "x (Número de llamadas en 15 s)",
y = "F(x)"
) +
theme_bw(base_size = 13)La curva escalonada (CDF) muestra cómo se acumula la probabilidad a medida que consideramos valores crecientes de 𝑥. Por ejemplo, el valor en 𝑥 = 2 nos da directamente 𝑃(𝑋 ≤ 2). La gráfica facilita responder preguntas tipo “¿qué probabilidad hay de que lleguen como máximo 2 llamadas?” y muestra que dicho evento abarca algo más de la mitad de la probabilidad total.
¿Cuál es la probabilidad de que lleguen como máximo dos llamadas en un periodo de 15 segundos?
prob_le2 <- ppois(2, lambda = lambda)
cat("Resultado: P(X ≤ 2) =", round(prob_le2, 6), "\n")Resultado: P(X ≤ 2) = 0.543813
La probabilidad de que lleguen como máximo dos llamadas en un periodo de 15 segundos es de 54.38%
Los clientes llegan a una exhibición a razón de 6,8 clientes / hora Calcule la probabilidad de que: a) en la primera media hora por lo menos lleguen dos clientes; b) en cualquier hora dada llegue más de uno.
Solución
Este ejercicio pertenece al modelo Poisson ya que consiste en llegadas aleatorias en el tiempo con tasa constante.
Tabla de distribución de probabilidad
# Ejercicio 7
library(tidyverse)
library(kableExtra)
library(scales)
library(ggplot2)
lambda_hour <- 6.8
lambda_half <- lambda_hour * 0.5
x_half <- 0:10
x_hour <- 0:15
# media hora
fx_half <- round(dpois(x_half, lambda = lambda_half), 6)
Fx_half <- round(cumsum(dpois(x_half, lambda = lambda_half)), 6)
df_half <- data.frame(x_half, fx_half, Fx_half)
colnames(df_half) <- c("x (Valores posibles)", "f(x)", "F(x)")
# Tabla (media hora)
kable(df_half, align = "c", escape = FALSE,
caption = paste0("Tabla — Poisson (λ = ", lambda_half, " en 15/30 min)")) %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 12) %>%
row_spec(0, bold = TRUE, background = "#A9DDF3", color = "black") %>%
row_spec(1:nrow(df_half), background = "#D6F1FA", color = "black") %>%
column_spec(1:3, bold = TRUE)| x (Valores posibles) | f(x) | F(x) |
|---|---|---|
| 0 | 0.033373 | 0.033373 |
| 1 | 0.113469 | 0.146842 |
| 2 | 0.192898 | 0.339740 |
| 3 | 0.218617 | 0.558357 |
| 4 | 0.185825 | 0.744182 |
| 5 | 0.126361 | 0.870542 |
| 6 | 0.071604 | 0.942147 |
| 7 | 0.034779 | 0.976926 |
| 8 | 0.014781 | 0.991707 |
| 9 | 0.005584 | 0.997291 |
| 10 | 0.001899 | 0.999190 |
# hora
fx_hour <- round(dpois(x_hour, lambda = lambda_hour), 6)
Fx_hour <- round(cumsum(dpois(x_hour, lambda = lambda_hour)), 6)
df_hour <- data.frame(x_hour, fx_hour, Fx_hour)
colnames(df_hour) <- c("x (Valores posibles)", "f(x)", "F(x)")
# Tabla (hora)
kable(df_hour, align = "c", escape = FALSE,
caption = paste0("Tabla — Poisson (λ = ", lambda_hour, " en 1 hora)")) %>%
kable_styling("striped", full_width = FALSE, position = "center", font_size = 12) %>%
row_spec(0, bold = TRUE, background = "#A9DDF3", color = "black") %>%
row_spec(1:nrow(df_hour), background = "#D6F1FA", color = "black") %>%
column_spec(1:3, bold = TRUE)| x (Valores posibles) | f(x) | F(x) |
|---|---|---|
| 0 | 0.001114 | 0.001114 |
| 1 | 0.007574 | 0.008687 |
| 2 | 0.025750 | 0.034438 |
| 3 | 0.058368 | 0.092806 |
| 4 | 0.099225 | 0.192031 |
| 5 | 0.134946 | 0.326977 |
| 6 | 0.152939 | 0.479916 |
| 7 | 0.148569 | 0.628486 |
| 8 | 0.126284 | 0.754770 |
| 9 | 0.095415 | 0.850184 |
| 10 | 0.064882 | 0.915066 |
| 11 | 0.040109 | 0.955175 |
| 12 | 0.022728 | 0.977903 |
| 13 | 0.011889 | 0.989792 |
| 14 | 0.005774 | 0.995566 |
| 15 | 0.002618 | 0.998184 |
La tabla lista los posibles conteos de llegadas y su probabilidad puntual, junto con la probabilidad acumulada hasta cada valor. Esto permite ver de forma ordenada cuáles conteos son comunes y cuánto se acumula la probabilidad hasta un cierto umbral; por ejemplo, al inspeccionar la columna acumulada se puede responder directamente preguntas del tipo “¿qué probabilidad hay de que lleguen como máximo k clientes?”.
Gráficas
# Gráfico (media hora)
df_pmf_half <- data.frame(x = x_half, y = dpois(x_half, lambda = lambda_half))
ggplot(df_pmf_half, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#AED6F1", high = "#1B4F72", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(title = paste0("Poisson (λ = ", lambda_half, " en 30 min)"),
x = "x (Número de clientes en 30 min)",
y = "f(x)") +
theme_bw(base_size = 13)# Gráfico (hora)
df_pmf_hour <- data.frame(x = x_hour, y = dpois(x_hour, lambda = lambda_hour))
ggplot(df_pmf_hour, aes(x = factor(x), y = y, fill = y)) +
geom_col(color = "black", width = 0.5) +
scale_fill_gradient(low = "#FDEBD0", high = "#D35400", guide = FALSE) +
geom_text(aes(label = round(y, 4)), vjust = -0.6, size = 3) +
labs(title = paste0("Poisson (λ = ", lambda_hour, " en 1 hora)"),
x = "x (Número de clientes en 1 hora)",
y = "f(x)") +
theme_bw(base_size = 13)Incisos
# Cálculo inciso (a) para media hora
prob_a <- 1 - ppois(1, lambda = lambda_half)
cat("Inciso (a) - P(X >= 2) (media hora, λ = ", lambda_half, ") = ", round(prob_a, 6), "\n", sep = "")Inciso (a) - P(X >= 2) (media hora, λ = 3.4) = 0.853158
Hay aproximadamente 85.32% de probabilidad de que lleguen por lo menos 2 clientes en la primera media hora.
# Gráfico inciso (a)
rango_h <- x_half
df_event_a <- data.frame(x = rango_h, y = dpois(rango_h, lambda = lambda_half))
ggplot(df_event_a, aes(x = x, y = y, fill = factor(ifelse(x >= 2, "Evento: X ≥ 2", "Resto")))) +
geom_bar(stat = "identity", width = 0.35, color = "black") +
xlab("x (Número de clientes en 30 min)") +
ylab("f(x)") +
ggtitle(paste0("Poisson (λ = ", lambda_half, ") — Evento: P(X ≥ 2)")) +
scale_fill_manual(name = "", values = c("Evento: X ≥ 2" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")El gráfico resalta los valores 𝑥 ≥ 2 en color violeta; esas barras representan la probabilidad de que en la primera media hora lleguen al menos dos clientes. Visualmente se aprecia que la mayoría de la masa está concentrada a la derecha de 1, por lo que la probabilidad de observar dos o más clientes en 30 segundos es alta (≈85%). El gráfico ayuda a ubicar la magnitud del evento en relación con los demás conteos posibles.
# Cálculo inciso (b) para 1 hora
prob_b <- 1 - ppois(1, lambda = lambda_hour)
cat("Inciso (b) - P(X > 1) (1 hora, λ = ", lambda_hour, ") = ", round(prob_b, 6), "\n", sep = "")Inciso (b) - P(X > 1) (1 hora, λ = 6.8) = 0.991313
Hay aproximadamente 99.13% de probabilidad de que llegue más de 1 cliente en una hora.
# Gráfico inciso (b)
rango_H <- x_hour
df_event_b <- data.frame(x = rango_H, y = dpois(rango_H, lambda = lambda_hour))
ggplot(df_event_b, aes(x = x, y = y, fill = factor(ifelse(x >= 2, "Evento: X ≥ 2", "Resto")))) +
geom_bar(stat = "identity", width = 0.35, color = "black") +
xlab("x (Número de clientes en 1 hora)") +
ylab("f(x)") +
ggtitle(paste0("Poisson (λ = ", lambda_hour, ") — Evento: P(X > 1) = P(X ≥ 2)")) +
scale_fill_manual(name = "", values = c("Evento: X ≥ 2" = "#b349f5", "Resto" = "#02b8fa")) +
theme_bw(base_size = 13) +
theme(plot.title = element_text(face = "bold", hjust = 0.5), legend.position = "top")La gráfica que resalta 𝑥 ≥ 2 para 𝜆 = 6.8 muestra que prácticamente toda la probabilidad se concentra en valores mayores o iguales a 2; las barras para 0 y 1 son casi nulas comparadas con el resto. Esto confirma la intuición de que, con una media de 6.8 clientes por hora, es casi seguro que llegue más de un cliente en una hora (≈99.13%). El gráfico evidencia la muy baja probabilidad de observar 0 o 1 cliente en ese intervalo.
Los modelos probabilísticos continuos se utilizan para describir la probabilidad de variables aleatorias que pueden tomar cualquier valor dentro de un rango infinito, como la estatura o el tiempo. Se caracterizan por una función de densidad de probabilidad (FDP) en lugar de una función de masa de probabilidad, y algunos ejemplos comunes incluyen las distribuciones Normal, Exponencial, Uniforme y Chi Cuadrado.
A diferencia de los modelos discretos (donde se cuentan casos), en los continuos se trabaja con densidades de probabilidad, y la probabilidad de que la variable tome un valor exacto es 0. En cambio, se calcula la probabilidad de que la variable esté entre dos valores.

donde 𝑓(𝑥) es la función de densidad de probabilidad (FDP).
Características principales
Variables continuas: A diferencia de las variables discretas que tienen valores contables, las variables continuas pueden tomar un número teóricamente infinito de valores en un continuo, como el peso o la altura.
Función de densidad de probabilidad (FDP): Representa la distribución de la probabilidad de una variable continua. El área bajo la curva de la FDP entre dos puntos indica la probabilidad de que la variable caiga dentro de ese rango.
Probabilidad de un punto específico: La probabilidad de que una variable aleatoria continua tome un valor exacto es siempre cero.
Ejemplos de modelos continuos
Distribución Normal: A menudo llamada “curva de campana”, es ampliamente utilizada para modelar muchos fenómenos naturales, como la altura o el peso de las personas, y es muy útil para muestras grandes.
Distribución Exponencial: Se utiliza para modelar el tiempo que transcurre entre eventos, como el tiempo de espera entre clientes en una tienda o la vida útil de un componente.
Distribución Uniforme: Asume que todos los resultados dentro de un intervalo tienen la misma probabilidad. Se usa en simulaciones donde se necesita uniformidad, como en la selección aleatoria de un punto dentro de un segmento de línea.
Distribución Chi Cuadrado: Se utiliza frecuentemente en el análisis de datos y en muestras pequeñas.
Gráfico Representativo:
# Ejemplo de una función de densidad continua
x <- seq(-4, 4, by = 0.1)
fx <- dnorm(x, mean = 0, sd = 1)
plot(x, fx, type = "l", lwd = 3, col = "#6b5b95",
main = "Ejemplo de modelo probabilístico continuo",
xlab = "Valores posibles de X",
ylab = "f(x) - Densidad de probabilidad")
polygon(c(-4, x, 4), c(0, fx, 0), col = "#b3a3d3", border = NA)