La distribución binomial describe la probabilidad de obtener un número fijo de éxitos en una serie de ensayos independientes, donde cada ensayo tiene dos resultados posibles: éxito o fracaso.
La fórmula de la probabilidad binomial es:
\[P(X=x)=\binom{{size}}{{x}}prob^x(1-prob)^{n-x}\]
donde \(size\) (o \(n\)) es el número total de ensayos, \(prob\) (o \(p\)) es la probabilidad de éxito, y \(x\) es el número de éxitos deseados.
La distribución binomial es útil cuando se cumplen las siguientes condiciones:
Hay un número fijo de ensayos \(size\) (o \(n\)).
Cada ensayo tiene dos posibles resultados (éxito o fracaso).
Los ensayos son independientes.
La probabilidad de éxito \(prob\) (o \(p\)) es la misma en cada ensayo.
El combinatorio calcula cuántas formas hay de elegir \(x\) elementos de un conjunto de \(size\) (o \(n\)) elementos, sin importar el orden:
\[\binom{{n}}{{x}} = \frac{{n!}}{{x!(n-x)!}}\]
Ejemplo: ¿De cuántas formas puedo elegir 3 personas de un grupo de 5 para un comité?
choose(n = 5, k = 3)
## [1] 10
El factorial de un número \(size\) (o \(n\)) se define como el producto de todos los números enteros positivos hasta \(size\) (o \(n\)):
\[n! = n(n-1)(n-2)...1\]
Ejemplo: ¿Cuántas formas hay de organizar 5 atletas en una fila?
factorial(5)
## [1] 120
Supongamos que lanzamos 5 monedas al aire y deseamos calcular la probabilidad de obtener un número específico de caras. La variable aleatoria \(X\) representa el número de caras obtenidas.
La fórmula de la distribución binomial es:
\[P(X = x) = \binom{{5}}{{x}}(0.5)^x(1-0.5)^{5-x}\]
Cálculo de las probabilidades para obtener entre 0 y 5 caras:
binomial <- function(x, size, prob){
choose(size, x) * prob**x * (1 - prob)**(size - x)
}
binomial(x = 0:5, size = 5, prob = 0.5)
## [1] 0.03125 0.15625 0.31250 0.31250 0.15625 0.03125
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
data.frame(
caras = 0:5,
probabilidades = dbinom(
x = 0:5,
size = 5,
prob = 0.5
)
) %>%
ggplot(
mapping = aes(
x = caras,
y = probabilidades
)
) +
geom_col(
fill = "darkblue",
color = "green"
) +
geom_text(
aes(
label = round(
x = probabilidades,
digits = 3
)
),
vjust = -0.5
) +
labs(
title = "Distribución Binomial: Número de Caras en 5 Lanzamientos",
x = "Número de Caras",
y = "Probabilidad"
) +
theme_minimal()
Probabilidad de que el número que caiga sea primo:
dbinom(x = 1, size = 1, prob = 3 / 6)
## [1] 0.5
El valor esperado de una distribución binomial es:
\[E[X] = size \cdot prob\]
Ejemplo: Valor esperado de obtener caras al lanzar 5 monedas:
size <- 5
prob <- 0.5
size * prob
## [1] 2.5
La varianza de una distribución binomial es:
\[Var[X] = size \cdot prob \cdot (1 - prob)\]
Ejemplo de varianza para el lanzamiento de monedas:
size * prob * (1 - prob)
## [1] 1.25
La desviación estándar es la raíz cuadrada de la varianza:
sqrt(size * prob * (1 - prob))
## [1] 1.118034
Se sabe que 2 de cada 5 personas pagan su crédito en un banco. Si en un día se presentan 5 solicitudes, ¿cuál es la probabilidad de que todas sean rechazadas?
size <- 5
prob <- 3 / 5
x <- 5
dbinom(x = x, size = size, prob = prob)
## [1] 0.07776
Un grupo de 400 familias fue seleccionado para verificar el cumplimiento de medidas preventivas de aislamiento. Se sabe que el 80% de los habitantes se queda en casa. Calcular la probabilidad de que exactamente 320 familias cumplan con la medida.
size <- 400
prob <- 0.8
x <- 320
dbinom(x = x, size = size, prob = prob)
## [1] 0.04981327
Supongamos que lanzamos un dado 10 veces. Calcular la probabilidad de que salga un número primo exactamente 4 veces, considerando que hay 3 números primos en un dado.
size <- 10
prob <- 3 / 6
x <- 4
dbinom(x = x, size = size, prob = prob)
## [1] 0.2050781